Remarques :
- Ce tutoriel nécessite un accès à Oracle Cloud. Pour vous inscrire à un compte gratuit, reportez-vous à Introduction au niveau gratuit d'Oracle Cloud Infrastructure.
- Il utilise des exemples de valeur pour les informations d'identification, la location et les compartiments Oracle Cloud Infrastructure. A la fin de l'exercice, remplacez ces valeurs par des valeurs propres à votre environnement cloud.
Migration d'une machine virtuelle Debian d'Amazon Web Services vers Oracle Cloud Infrastructure
Introduction
La migration d'Amazon Web Services (AWS) vers Oracle Cloud Infrastructure (OCI) est une entreprise de plus en plus fréquente pour de nombreuses entreprises, car OCI est un cloud de nouvelle génération qui permet aux applications de s'exécuter plus rapidement et en toute sécurité, à moindre coût.
La migration de machines virtuelles est souvent un élément central de cette entreprise, ce qui amène les clients à rechercher des conseils appropriés sur la façon de les migrer d'AWS vers OCI. De plus, pour de nombreuses entreprises, Linux constitue la majeure partie de leur infrastructure. Ce tutoriel est donc axé sur la migration de machines virtuelles exécutant l'une des distributions Linux les plus utilisées (Debian) d'AWS vers OCI.
Ce tutoriel fournit aux clients des conseils sur les exigences de la migration de machine virtuelle vers OCI et sur la préparation et la migration d'une machine virtuelle Debian d'AWS vers OCI, afin qu'elle puisse être lancée dans OCI en mode paravirtualisé. OCI permet également de lancer des instances en mode émulé, mais les machines virtuelles utilisant des périphériques paravirtualisés offrent des performances beaucoup plus rapides par rapport à l'exécution en mode émulé, avec des performances d'E/S de disque au moins six fois plus rapides.
Le processus global consiste à préparer la machine virtuelle dans AWS, à l'exporter vers Amazon Simple Storage Service (Amazon S3), à la transférer vers OCI Object Storage, à créer une image personnalisée dans OCI et à lancer une instance à partir de celle-ci. Le transfert d'images entre Amazon S3 et OCI Object Storage est effectué à l'aide de l'outil open source rclone. Si vous testez uniquement des images de petite taille, vous pouvez le faire manuellement. Nous vous recommandons d'utiliser rclone, car le transfert d'images est un processus beaucoup plus rapide et plus simple.
Pour plus d'informations sur le processus d'import d'images personnalisées dans OCI, reportez-vous à Import d'images Linux personnalisées.
Objectifs
-
Préparez une machine virtuelle Debian dans AWS pour la migration vers OCI.
-
Exportez la machine virtuelle préparée en tant qu'image vers Amazon S3.
-
Transférez l'image vers OCI et créez-en une instance.
Prérequis
-
Accès à un compte AWS qui peut créer ou possède déjà des clés API et a accès à Amazon S3 et Amazon Elastic Compute Cloud (Amazon EC2).
-
Accès à une location et à un compartiment OCI pour la migration d'image et le lancement d'instance.
-
Stratégies Oracle Cloud Infrastructure Identity and Access Management (OCI IAM) pour :
-
Autorisez l'accès à OCI Object Storage.
-
Provisionnez une machine virtuelle dans OCI (pour la machine virtuelle de clonage et les machines virtuelles personnalisées basées sur une image).
-
Autorisez la création de clés d'API OCI.
-
hypothèses
-
Machine virtuelle AWS provisionnée avec une clé publique
pem
. -
La VM AWS Debian n'a que 1 volume : son volume d'initialisation.
-
L'image AWS est exportable ; l'image de machine Amazon (AMI) utilisée dans ce tutoriel est l'image de plate-forme AWS pour Debian 12 à partir de mars 2024.
-
Opérations de ligne de commande AWS effectuées sur AWS CloudShell. Vous pouvez également utiliser l'outil AWS CLI.
-
Machine virtuelle Oracle Linux provisionnée dans OCI avec connectivité SSH à Amazon S3. Il s'agit de la machine virtuelle sur laquelle vous allez installer et configurer rclone pour le transfert d'images entre Amazon S3 et OCI Object Storage.
Tâche 1 : préparer l'infrastructure de transfert de données
Ce tutoriel utilise l'architecture de transfert de données suivante :
-
Transfert d'images via Internet entre Amazon S3 et OCI Object Storage effectué par rclone. Pour un déploiement adapté à la production, l'utilisation du VPN site à site Oracle Cloud Infrastructure ou de FastConnect est recommandée. Pour plus d'informations, reportez-vous à Connexion VPN à AWS et à FastConnect.
-
Cloner configuré avec l'authentification par principal d'utilisateur pour un accès sécurisé à Amazon S3 et OCI Object Storage.
Tâche 1.1 : préparation des buckets Amazon S3 et OCI Object Storage
Dans cette tâche, nous allons créer un bucket dans :
-
Amazon S3 pour les images à exporter.
-
OCI Object Storage pour stocker les images de disque de machine virtuelle transférées à partir d'Amazon S3.
Créez un bucket dans Amazon S3 avec les propriétés suivantes :
-
Liste de contrôle d'accès (ACL) activée. Nous devrons attacher une ACL personnalisée pour permettre l'exportation d'une image vers Amazon S3.
-
Bloquer tout accès public.
Dans les droits d'accès du bucket Amazon S3, attachez une liste de contrôle d'accès au bucket à l'aide de l'octroi correspondant à la région AWS sur laquelle vous travaillez, comme indiqué dans l'image suivante. Consultez les ID de compte canonique propres à la région du bénéficiaire ici : Export d'une instance en tant que machine virtuelle à l'aide de l'import/export de machine virtuelle.
Terminez cette tâche en créant un bucket dans OCI Object Storage sur le niveau de stockage standard. Il s'agit du bucket vers lequel vous transférerez ultérieurement l'image de machine virtuelle à partir d'Amazon S3.
Tâche 1.2 : installation et configuration de Rclone
Dans cette tâche, nous allons installer rclone dans une machine virtuelle exécutée sur OCI. Vous pouvez installer rclone sur votre machine locale si vous testez des machines virtuelles de petite taille et configurez rclone avec 2 télécommandes : Amazon S3 et OCI Object Storage.
-
Installez rclone et SSH dans la machine virtuelle Oracle Linux dans OCI.
sudo -v ; curl https://rclone.org/install.sh | sudo bash
-
Effectuez la configuration à distance dans rclone. Pour ce faire, démarrez une session de configuration du clone. Exécutez la commande suivante dans la ligne de commande.
rclone config
-
Pour la configuration à distance d'Amazon S3, entrez les informations suivantes.
- Nom distant : saisissez un nom distant.
- Type distant : sélectionnez le type S3.
- Fournisseur : sélectionnez AWS.
- access_key_id : entrez l'ID de clé d'accès associé à l'utilisateur AWS que vous avez décidé d'utiliser.
- secret_access_key : entrez la clé d'accès secrète correspondant à l'ID de clé d'accès.
- Région : sélectionnez la région AWS sur laquelle vous travaillez.
- location_constraint : sélectionnez la contrainte d'emplacement qui correspond à la région Web Amazon sur laquelle vous travaillez. Pour certaines régions (telles que Francfort), ce champ peut être vide.
- acl : sélectionnez private pour vous assurer que vous créez l'ACL prédéfinie la plus restreinte. Pour plus d'informations, reportez-vous à la section Canned ACL.
-
Pour l'accès rclone à OCI Object Storage, ce tutoriel utilise un utilisateur OCI et des clés de signature d'API. Vous pouvez également utiliser des groupes dynamiques. Pour plus d'informations, reportez-vous à appel de services à partir d'une instance.
Avant de configurer OCI Object Storage distant, nous effectuerons les opérations suivantes :
-
Créez des clés de signature d'API OCI pour que rclone s'authentifie dans OCI Object Storage et effectue le transfert de données d'image. Pour créer les clés de signature d'API et prendre note du répertoire dans lequel vous stockez les clés sur la machine virtuelle, car vous devrez les fournir dans le fichier de configuration OCI, reportez-vous à Procédure de génération d'une clé de signature d'API.
-
Créez un fichier de configuration OCI. Ce fichier de configuration requiert les clés de signature d'API OCI. Pour plus d'informations, reportez-vous à Fichier de configuration du kit SDK et de l'interface de ligne de commande.
Afin de comprendre les options d'authentification pour rclone auprès du fournisseur OCI, reportez-vous à Annonce de la prise en charge back-end native du fournisseur OCI Object Storage dans rclone.
-
-
Le fichier de configuration OCI est généralement stocké en tant que fichier nommé
config
dans le répertoire.~/.oci/
-
Une fois que vous avez créé les clés de signature d'API OCI et le fichier de configuration OCI, vous pouvez configurer la télécommande OCI dans rclone. Exécutez la commande suivante pour démarrer la session de configuration.
rclone config
-
Entrez les informations suivantes pour la configuration distante OCI Object Storage.
- Nom distant : entrez un nom distant.
- Type : sélectionnez Oracle Object Storage.
- Fournisseur : sélectionnez
user_principal_auth
(comme vous allez utiliser un utilisateur OCI et des clés de signature d'API), si vous utilisez un groupe dynamique, sélectionnezinstance_principal_auth
. - Namespace : entrez l'espace de noms de la location.
- Compartiment : entrez l'identificateur Oracle Cloud (OCID) du compartiment de bucket OCI.
- Région : entrez la région dans laquelle vous travaillez dans OCI.
- Adresse : laissez le champ vide ou entrez l'adresse au format suivant :
https://<namespace>.objectstorage.<region-code>.oci.customer-oci.com/n/<namespace>
.
-
Vérifiez le fichier de configuration distant rclone à l'aide de la commande suivante.
cat ~/.config/rclone/rclone.conf
Tâche 2 : préparer le volume d'initialisation de machine virtuelle source
Tâche 2.1 : exécution d'un instantané obligatoire du volume d'initialisation de machine virtuelle AWS
Effectuez un instantané du volume d'initialisation de machine virtuelle AWS. Cette opération est obligatoire avant de démarrer une activité de configuration de volume d'initialisation.
Tâche 2.2 : activer la console série
Les connexions à la console série permettent à un utilisateur de dépanner une machine virtuelle, en effectuant des activités telles que la modification des fichiers de configuration système et la réinitialisation des mots de passe. En règle générale, pour préparer une machine virtuelle pour la console série, le fichier du programme d'initialisation GRUB doit être configuré. Ce fichier se trouve dans /etc/default/grub
. L'image de plate-forme AWS Debian nécessite une configuration non seulement dans le fichier /etc/default/grub
, mais également dans le fichier /etc/default/grub.d/15_timeout.cfg
. Ce dernier fichier est modifié par le processus de création d'image cloud et remplace la configuration etc/default/grub
.
Les paramètres de configuration GRUB les plus importants sont les suivants :
- GRUB_TIMEOUT_STYLE: Make sure it is commented if its value is "hidden"; alternatively, change it to "menu".
- GRUB_TIMEOUT: Make sure it is higher than 0 to allow boot mode selection without skipping directly to the default option. Specify this value in both files.
- GRUB_CMDLINE_LINUX: Make sure "console=tty1 console=ttyS0, 115200" is appended to it.
- GRUB_TERMINAL: Make sure its value is "serial console".
- GRUB_SERIAL_COMMAND: Make sure its value is "serial -- unit=0 --speed=115200".
-
Ouvrez
/etc/default/grub.d/15_timeout.cfg
.sudo vi /etc/default/grub.d/15_timeout.cfg
Modifiez le fichier pour qu'il ressemble au fichier affiché dans l'image suivante.
-
Ouvrez
/etc/default/grub
.sudo vi /etc/default/grub
Modifiez le fichier pour qu'il ressemble au fichier affiché dans l'image suivante.
-
Après avoir modifié le fichier, exécutez la commande suivante pour vous assurer que le programme d'initialisation GRUB est correctement mis à jour.
sudo update-grub
Tâche 2.3 : vérifier les pilotes de paravirtualisation
Pour importer une machine virtuelle vers OCI afin qu'elle puisse être lancée en mode paravirtualisé, les pilotes VirtIO de paravirtualisation doivent être présents dans l'image. Dans cette tâche, nous allons vérifier à la fois le noyau et le système de fichiers temporaire initramfs pour confirmer la présence des pilotes. Notez que les systèmes d'exploitation basés sur Linux exécutant la version 3.4 ou ultérieure du noyau prennent en charge les pilotes paravirtualisés ; par conséquent, il vous suffit souvent de vérifier et de confirmer leur présence.
L'ensemble minimal de pilotes VirtIO requis inclut pci
et scsi
. Ces pilotes doivent être présents dans le noyau ou dans initramfs.
-
Vérifiez le noyau de la machine virtuelle AWS à l'aide de la commande suivante.
sudo grep -i virtio /boot/config-$(uname -r)
Remarque : le pilote
pci
VirtIO est présent dans le noyau. -
Vérifiez le noyau de la machine virtuelle AWS à l'aide de la commande suivante.
sudo lsinitramfs /boot/initrd.img-$(uname -r) | grep virtio
Remarque : le pilote
scsi
VirtIO est présent dans initramfs. -
Si le volume d'initialisation de votre machine virtuelle ne dispose pas des pilotes, vous devrez reconstruire les initramfs avec
dracut
.sudo dracut -v -f --add-drivers “virtio virtio_pci virtio_scsi” /boot/initramfs-$(uname -r).img $(uname -r)
Tâche 2.4 : configurer les paramètres réseau
Pour la configuration réseau, vérifiez les points suivants :
-
La machine virtuelle utilise le protocole DHCP (Dynamic Host Configuration Protocol).
-
Toute référence d'adresse MAC codée en dur dans la configuration réseau est supprimée.
Il existe plusieurs façons d'effectuer une configuration réseau sous Linux. L'image de la plate-forme AWS Debian permet d'utiliser l'utilitaire Netplan comme moyen de simplifier cette tâche. Ce tutoriel utilise Netplan, mais vous pouvez également modifier les fichiers de configuration réseau si vous le souhaitez.
-
L'image de plate-forme AWS Debian spécifie sa configuration Netplan dans le fichier
/etc/netplan/50-cloud-init.yaml
. Ouvrez le fichier avec l'autorisation sudo pour pouvoir le modifier.sudo vi /etc/netplan/50-cloud-init.yaml
Vous trouverez un fichier de configuration comme indiqué dans l'image suivante.
-
Modifiez le fichier, supprimez l'adresse MAC et le nom d'interface correspondant par l'adresse MAC. Votre configuration doit ressembler à ce qui suit :
-
Exécutez la commande Netplan
apply
pour mettre à jour et terminer la configuration réseau.sudo netplan apply
Tâche 3 : export d'une image de machine virtuelle vers Amazon S3
Cette tâche nécessite l'utilisation de l'interface de ligne de commande (CLI) AWS. Ce tutoriel utilise AWS CloudShell, car il ignore les tâches de configuration de la CLI AWS.
-
Arrêtez la machine virtuelle. Ouvrez AWS CloudShell et exécutez la commande suivante pour exporter l'image.
aws ec2 create-instance-export-task --instance-id <instance-id> --target-environment vmware --export-to-s3-task DiskImageFormat=vmdk,ContainerFormat=ova,S3Bucket=<bucket name>
-
Saisissez les informations suivantes .
- Format d'image de disque : entrez VMDK car il s'agit du seul format d'export AWS pris en charge par OCI.
- Format de conteneur : entrez OVA pour combiner l'image de disque avec les métadonnées relatives à la machine virtuelle. Vous pouvez également exporter ce paramètre.
- Environnement cible : entrez vmware, car il s'agit du seul environnement cible pris en charge dans OCI.
-
Vous pouvez surveiller l'état de la tâche d'export en exécutant la commande suivante dans AWS CloudShell.
aws ec2 describe-export-tasks --export-task-ids <export task id>s
Lorsque vous lancez la tâche pour la première fois, elle est à l'état Actif. Une fois terminé, vous le trouverez à l'état Terminé.
Tâche 4 : transfert d'image vers OCI Object Storage
Connectez-vous via SSH à la machine virtuelle OCI dans laquelle rclone a été configuré dans la tâche 1.2. Effectuez la copie de l'image exportée du bucket Amazon S3 vers le bucket OCI Object Storage.
rclone copy <aws-remote>:<bucket>/<imagefile> <oci-remote>:<bucket> -vv
Tâche 5 : créer une image personnalisée dans OCI et lancer l'instance
-
Dans la console OCI, accédez à Images personnalisées sur le service Compute et sélectionnez Importer l'image.
-
Saisissez les informations suivantes .
- Compartiment : sélectionnez le compartiment dans lequel créer l'image personnalisée.
- Nom : entrez le nom de l'image personnalisée.
- Système d'exploitation : sélectionnez Debian.
- Source : effectuez une importation à partir d'un bucket Object Storage. Sélectionnez le bucket que vous avez configuré dans la tâche 1.1.
- Nom d'objet : sélectionnez l'image que vous avez transférée à partir d'Amazon S3.
- Mode de lancement : sélectionnez le mode paravirtualisé.
-
Cliquez sur Import d'image pour lancer l'import d'image.
-
Une fois l'image créée, vous êtes prêt à lancer une instance à partir de celle-ci. Sur la page de détails de l'image personnalisée, sélectionnez Créer une instance et entrez les informations suivantes.
- Nom : saisissez le nom de l'instance.
- Compartiment : sélectionnez le compartiment dans lequel lancer l'instance.
- Domaine de disponibilité.
- VCN et Sous-réseau. Dans le cadre de ce tutoriel, vous pouvez utiliser un sous-réseau public pour ignorer la connectivité VPN.
- Clés SSH : vous avez deux options : générer de nouvelles clés SSH ou utiliser le même ensemble de clés que celui utilisé dans AWS. Si vous souhaitez continuer à utiliser le même ensemble de clés, téléchargez la même clé publique que celle utilisée dans AWS pour la machine virtuelle source. En supposant que votre clé publique AWS est au format de clé
.pem
, remplacez-la par.pem.pub
afin de la télécharger vers l'instance OCI. Cela vous permettra de continuer à utiliser la même clé privée pour SSH dans la machine virtuelle.
-
Lancez la machine virtuelle. Une fois le provisionnement terminé, vous pouvez vous y connecter. Notez que l'utilisateur avec lequel vous êtes connecté est admin, et non opc.
ssh -i pathToKey/keyfile admin@<publicIp>
Liens connexes
-
Export d'une instance en tant que machine virtuelle à l'aide de l'import/export de machine virtuelle
-
Autorisation de l'accès via la console série pour les images Linux importées
-
Dépannage des instances à l'aide des connexions à la console pour une instance
-
Annonce de la prise en charge native du back-end du fournisseur OCI Object Storage dans rclone
-
Déplacer des données vers Object Storage dans le cloud en utilisant rclone
-
Migration de données vers Oracle Cloud Infrastructure Object Storage à l'aide de Rclone
Remerciements
- Auteur - Ricardo Malhado (architecte principal de solutions cloud)
Ressources de formation supplémentaires
Parcourez d'autres ateliers sur docs.oracle.com/learn ou accédez à davantage de contenus de formation gratuits sur le canal Oracle Learning YouTube. De plus, rendez-vous sur education.oracle.com/learning-explorer pour devenir un explorateur Oracle Learning.
Pour obtenir de la documentation sur le produit, visitez Oracle Help Center.
Migrate a Debian Virtual Machine from Amazon Web Services to Oracle Cloud Infrastructure
F96033-01
April 2024