Importer des images de disque virtuel vers Oracle Cloud Infrastructure Block Volumes à l'aide d'Apache Airflow

Alors que les entreprises continuent à migrer vers le cloud, elles sont souvent confrontées au défi du transfert et de la gestion transparents de leurs volumes de blocs existants. Que ce soit pour migrer des charges de travail sur site, implémenter des stratégies de récupération après sinistre ou optimiser leur infrastructure cloud, la possibilité d'importer facilement des disques virtuels devient un besoin critique.

C'est là que la synergie des architectures Oracle Cloud Infrastructure Functions (OCI Functions), OCI Object Storage, Apache Airflow, qemu-img et orientées événements permet aux utilisateurs d'automatiser l'import de fichiers d'image de disque virtuel dans Oracle Cloud Infrastructure Block Volumes.

Remarques :

Comme cette solution utilise Apache Airflow pour l'orchestration, l'expérience préalable permettra aux utilisateurs de surveiller les workflows d'importation de disque virtuel, de dépanner et de réessayer tout flux de conversion interrompu.

Architecture

L'architecture d'un workflow standard d'importation d'images de disque virtuel est décrite dans la section suivante.

  1. L'utilisateur télécharge une nouvelle image de disque virtuel vers le bucket OCI Object Storage.
  2. Lorsque le téléchargement du fichier d'image de disque virtuel est finalisé, l'événement déclenche l'exécution d'une fonction OCI.
  3. La fonction va extraire les métadonnées de l'objet disque virtuel et appeler l'API Apache Airflow pour démarrer l'exécution DAG (Directed Acyclic Graph).
  4. Le DAG de flux d'air Apache gère l'import de l'image de disque virtuel dans OCI Block Volume en 14 étapes. Voici quelques-unes des étapes les plus importantes :
    • Créez une instance de calcul de processus actif qui gère l'import d'images de disque virtuel.
    • Configurez les outils requis sur la nouvelle instance : qemu-img, oci-cli.
    • Téléchargez l'image de disque virtuel du bucket vers l'instance de processus actif.
    • Déterminez la taille réelle de l'image de disque virtuel à l'aide de qemu-img et provisionnez un nouveau volume de blocs OCI (nommé image de disque virtuel).
    • Attachez le volume de blocs OCI à l'instance de calcul de processus actif.
    • Ecrivez le contenu de l'image de disque virtuel dans OCI Block Volume.
    • Exécutez fsck sur OCI Block Volume.
    • Détache le volume de blocs OCI.
    • Mettez fin à l'instance de salarié.
    • (Facultatif) Mettez à jour la stratégie de sauvegarde sur OCI Block Volume.
  5. Les utilisateurs peuvent surveiller l'exécution du DAG en se connectant à Apache Airflow.

Le diagramme suivant illustre cette architecture de référence.



virtual-disk-import-arch-oracle.zip

L'architecture comporte les composants suivants :

  • Région

    Une région Oracle Cloud Infrastructure est une zone géographique précise qui contient un ou plusieurs centres de données, appelés domaines de disponibilité. Les régions sont indépendantes les unes des autres et de grandes distances peuvent les séparer (dans des pays voire des continents).

  • Domaines de disponibilité

    Les domaines de disponibilité sont des centres de données autonomes indépendants au sein d'une région. Les ressources physiques de chaque domaine de disponibilité sont isolées de celles des autres, ce qui garantit la tolérance aux pannes. Les domaines de disponibilité ne partagent ni infrastructure (par exemple, alimentation, système de refroidissement), ni réseau de domaine de disponibilité interne. Ainsi, il est peu probable qu'une panne sur un domaine de disponibilité affecte les autres domaines de disponibilité de la région.

  • Réseau cloud virtuel (VCN) et sous-réseaux

    Un VCN est un réseau personnalisable défini par logiciel que vous configurez dans une région Oracle Cloud Infrastructure. Comme les réseaux de centre de données traditionnels, les réseaux cloud virtuels vous donnent un contrôle total sur l'environnement réseau. Un réseau cloud virtuel peut comporter plusieurs blocs CIDR qui ne se chevauchent pas et que vous pouvez modifier après l'avoir créé. Vous pouvez segmenter un réseau cloud virtuel en plusieurs sous-réseaux ciblant une région ou un domaine de disponibilité. Chaque sous-réseau est composé d'une plage contiguë d'adresses qui ne chevauchent pas celles des autres sous-réseaux du réseau cloud virtuel. Vous pouvez modifier la taille d'un sous-réseau après sa création. Un sous-réseau peut être public ou privé.

  • Stockage d'objet

    Object Storage fournit un accès rapide à de grandes quantités de données, structurées ou non, de tout type de contenu, y compris des sauvegardes de base de données, des données analytiques et du contenu enrichi tel que des images et des vidéos. Vous pouvez stocker les données, puis les extraire directement à partir d'Internet ou de la plate-forme cloud, et ce, en toute sécurité. Vous pouvez facilement faire évoluer le stockage sans dégradation des performances ni de la fiabilité des services. Utilisez le stockage standard pour le stockage "à chaud" auquel vous devez accéder rapidement, immédiatement et fréquemment. Utilisez le stockage d'archive pour le stockage "à froid" que vous conservez pendant de longues périodes et auquel vous accédez rarement.

  • Evénements

    Les services Oracle Cloud Infrastructure émettent des événements, qui sont des messages structurés décrivant les modifications apportées dans les ressources. Les événements sont émis pour les opérations de création, de lecture, de mise à jour ou de suppression (CRUD), les modifications d'état de cycle de vie des ressources et les événements système qui affectent les ressources cloud.

  • Functions

    Oracle Cloud Infrastructure Functions est une plate-forme Functions-as-a-Service (FaaS) entièrement gérée, colocative, hautement évolutive et à la demande. Il est alimenté par le moteur open source du projet Fn. Les fonctions vous permettent de déployer votre code, et de l'appeler directement ou de le déclencher en réponse à des événements. Oracle Functions utilise des conteneurs Docker hébergés dans Oracle Cloud Infrastructure Registry.

  • DevOps

    Le service DevOps est une plate-forme d'intégration continue et de livraison continue (CI/CD) de bout en bout destinée aux développeurs qui facilite le processus de création d'artefacts et de déploiement vers les services de calcul OCI (fonctions, Oracle Container Engine (OKE) ou instances de calcul).

  • Règle

    Une stratégie Oracle Cloud Infrastructure Identity and Access Management spécifie qui peut accéder à quelles ressources et comment. L'accès est accordé au niveau du groupe et du compartiment. Vous pouvez donc écrire une stratégie qui offre à un groupe un type d'accès spécifique dans un compartiment spécifique ou dans la location.

  • Volume de blocs

    Avec les volumes de stockage de blocs, vous pouvez créer, attacher, connecter et déplacer des volumes de stockage, et modifier leurs performances pour répondre à vos exigences en matière de stockage, de performances et d'application. Une fois un volume attaché et connecté à une instance, vous pouvez l'utiliser comme un disque dur classique. Vous pouvez également déconnecter un volume et l'attacher à une autre instance sans perdre de données.

  • Machines virtuelles

    Les machines virtuelles de calcul Oracle Cloud Infrastructure (OCI) fournissent une capacité de calcul sécurisée et élastique dans le cloud pour les workloads allant des petits projets de développement aux applications globales à grande échelle telles que les plates-formes de communication en temps réel. Les formes flexibles permettent aux utilisateurs d'optimiser les ressources de machine virtuelle avec des valeurs de processeur et de mémoire personnalisées pour un meilleur rapport prix/performances.

Recommandations

Utilisez les recommandations suivantes comme point de départ. Vos exigences peuvent différer de l'architecture décrite ici.
  • VCN

    Lorsque vous créez un VCN, déterminez le nombre de blocs CIDR requis et la taille de chaque bloc en fonction du nombre de ressources que vous prévoyez d'attacher aux sous-réseaux du VCN. Utilisez des blocs CIDR qui se trouvent dans l'espace d'adressage IP privé standard.

    Sélectionnez des blocs CIDR qui ne chevauchent aucun autre réseau (dans Oracle Cloud Infrastructure, votre centre de données sur site ou un autre fournisseur cloud) vers lequel vous souhaitez configurer des connexions privées.

    Après avoir créé un VCN, vous pouvez modifier, ajouter et supprimer ses blocs CIDR.

    Lorsque vous concevez les sous-réseaux, tenez compte de vos exigences en matière de flux de trafic et de sécurité. Attachez toutes les ressources d'un niveau ou d'un rôle spécifique au même sous-réseau, qui peut servir de limite de sécurité.

  • Sécurité

    Il est vivement recommandé que l'utilisateur qui déploie la pile soit membre du groupe d'administrateurs. Si l'utilisateur expose Apache Airflow à Internet à l'aide de la variable allowed_source_cidr, il est fortement recommandé de remplir un bloc CIDR de sous-réseau IP spécifique.

Points à prendre en compte

Tenez compte des points suivants lors du déploiement de cette architecture de référence.

  • Sécurité

    L'instance exécutant Apache Airflow et les instances de processus actif temporaire sont autorisées à l'aide d'un groupe dynamique pour gérer les instances, les volumes de blocs et lire les objets dans le compartiment auquel elles appartiennent. La fonction est autorisée à effectuer des opérations de lecture sur les ressources d'objet dans le compartiment.

  • Disponibilité

    L'API Apache Airflow sur le port 8080 de l'instance Apache Airflow est accessible à partir d'Internet uniquement lorsqu'un nouveau VCN est créé, que l'instance dispose d'une adresse IP publique et que la variable allowed_source_cidr inclut l'adresse IP source à partir de laquelle la connexion est tentée.

  • Coût

    Une instance de calcul temporaire est créée pour gérer chaque opération d'import de disque virtuel vers Oracle Cloud Infrastructure Block Volumes. Une fois le workflow terminé, l'instance prend fin.

  • Placement

    Le placement de volume de blocs peut être personnalisé à l'aide des métadonnées "ad_number": 1/2/3 sur le fichier d'image de disque virtuel téléchargé vers OCI Object Storage.

Déployez

Le code Terraform permettant de configurer et de déployer les ressources de cette architecture de référence est disponible dans GitHub.

  1. Accédez à GitHub.
  2. Clonez ou téléchargez le référentiel sur votre ordinateur local.
  3. Suivez les instructions du document README.

En savoir plus

Pour en savoir plus sur Oracle Cloud Infrastructure, Apache Airflow et qemu-img, reportez-vous aux ressources suivantes.

Remerciements

Author: Andrei Ilas