Note :
- Ce tutoriel nécessite l'accès à Oracle Cloud. Pour vous inscrire à un compte gratuit, voir Introduction à l' niveau gratuit d'Oracle Cloud Infrastructure.
- Il utilise des exemples de valeurs pour les données d'identification, la location et les compartiments Oracle Cloud Infrastructure. À la fin de votre laboratoire, remplacez ces valeurs par celles propres à votre environnement en nuage.
Migrer une machine virtuelle Red Hat Enterprise Linux d'Amazon Web Services vers Oracle Cloud Infrastructure
Présentation
La migration d'Amazon Web Services (AWS) vers Oracle Cloud Infrastructure (OCI) est une entreprise de plus en plus fréquente pour de nombreuses organisations, car OCI est un nuage de nouvelle génération qui permet aux applications d'être exécutées plus rapidement et de façon plus sécurisée, à moindre coût.
La migration de machines virtuelles est souvent un élément central d'une telle entreprise, ce qui pousse 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 des machines virtuelles exécutant l'une des distributions Linux les plus utilisées au monde (Red Hat Enterprise Linux) d'AWS vers OCI.
Ce tutoriel fournit aux clients des conseils sur les exigences relatives à la migration de machine virtuelle vers OCI et sur la façon de préparer et de migrer une machine virtuelle Red Hat Enterprise Linux d'AWS vers OCI, afin qu'elle puisse être lancée dans OCI en mode paravirtualisé. OCI permet également le lancement des instances en mode émulé, mais les machines virtuelles utilisant des appareils paravirtualisés offrent des performances beaucoup plus rapides que l'exécution en mode émulé, avec une performance d'E/S disque au moins six fois plus rapide.
Le processus global consiste à préparer la machine virtuelle dans AWS, à l'exporter vers Amazon Simple Storage Service (Amazon S3), à la transférer vers le stockage d'objets OCI, à créer une image personnalisée dans OCI et à lancer une instance à partir de celle-ci. Le transfert d'image entre Amazon S3 et le service de stockage d'objets d'OCI est effectué à l'aide de l'outil à code source libre rclone. Si vous essayez simplement d'utiliser des images de petite taille, vous pouvez le faire manuellement. Nous recommandons toutefois d'utiliser rclone, car le transfert d'images est beaucoup plus rapide et simple.
Objectifs
-
Préparez une machine virtuelle Red Hat Enterprise Linux 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 une instance à partir de celle-ci.
Préalables
-
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édez à une location et à un compartiment OCI pour la migration d'image et le lancement de l'instance.
-
Politiques Oracle Cloud Infrastructure Identity and Access Management (OCI IAM) pour :
-
Autoriser l'accès au stockage d'objets OCI.
-
Provisionner une machine virtuelle dans OCI (pour la machine virtuelle rclone et les machines virtuelles basées sur une image personnalisée).
-
Autoriser la création de clés d'API OCI.
-
Hypothèses
-
Machine virtuelle AWS provisionnée avec la clé publique
pem
. -
La machine virtuelle AWS RHEL n'a que 1 volume : volume de démarrage.
-
L'image AWS est exportable; l'image de machine Amazon (AMI) utilisée dans ce tutoriel est l'image de plate-forme AWS pour RHEL
9.3.0
à partir de mars 2024. -
Connectivité SSH avec l'utilisateur fournie par défaut par AWS :
ec2-user
. -
Opérations de ligne de commande AWS effectuées sur AWS CloudShell. Vous pouvez également utiliser l'outil d'interface de ligne de commande AWS.
-
Machine virtuelle Oracle Linux provisionnée dans OCI et avec connectivité SSH à Amazon S3. Il s'agit de la machine virtuelle dans laquelle vous allez installer et configurer rclone pour le transfert d'images entre Amazon S3 et le stockage d'objets OCI.
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'image par Internet entre Amazon S3 et le stockage d'objets OCI effectué par rclone. Pour un déploiement de niveau production, l'utilisation d'un RPV site-à-site Oracle Cloud Infrastructure ou de FastConnect est recommandée. Pour plus d'informations, voir Connexion RPV à AWS et FastConnect.
-
Rclone configuré avec l'authentification de principal d'utilisateur pour un accès sécurisé à Amazon S3 et au stockage d'objets OCI.
Tâche 1.1 : Préparer les seaux de stockage d'objets Amazon S3 et OCI
Dans cette tâche, nous allons créer un seau dans :
- Amazon S3 pour les images à exporter.
- Stockage d'objets OCI pour stocker les images de disque de machine virtuelle transférées depuis Amazon S3.
Créez un seau dans Amazon S3 avec les propriétés suivantes :
- Listes de contrôle d'accès activées. Nous devrons attacher une liste de contrôle d'accès personnalisée pour permettre l'exportation d'une image vers Amazon S3.
- Bloquer tous les accès publics.
Dans les autorisations de seau Amazon S3, attachez une liste de contrôle d'accès au seau, à l'aide de l'autorisation correspondant à la région AWS sur laquelle vous travaillez, comme illustré dans l'image suivante. Consultez les ID compte canonique propres à la région du bénéficiaire ici : Exportation d'une instance en tant que machine virtuelle à l'aide de l'importation/exportation de machine virtuelle.
Terminez cette tâche en créant un seau dans le stockage d'objets OCI sur le niveau de stockage standard. Il s'agit du seau vers lequel vous transférerez plus tard l'image de machine virtuelle d'Amazon S3.
Tâche 1.2 : Installer et configurer Rclone
Dans cette tâche, nous installerons rclone dans une machine virtuelle s'exécutant 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 le stockage d'objets OCI.
-
Installez rclone et SSH sur la machine virtuelle Oracle Linux dans OCI.
sudo -v ; curl https://rclone.org/install.sh | sudo bash
-
Effectuez la configuration des télécommandes dans rclone. Pour ce faire, démarrez une session de configuration rclone. Exécutez la commande suivante dans la ligne de commande.
rclone config
-
Pour la configuration distante d'Amazon S3, entrez les informations suivantes.
- Nom distant : Entrez un nom distant.
- Type distant : Sélectionnez le type S3.
- Fournisseur : Sélectionnez AWS.
- access_key_id : Entrez l'ID 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 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 (comme Francfort), cela pourrait être vide.
- ACL : Sélectionnez privé pour vous assurer que vous créez une liste de contrôle d'accès prédéfinie plus restreinte. Pour plus d'informations, voir LCA en conserve.
-
Pour l'accès rclone au service de stockage d'objets OCI, ce tutoriel utilise des clés de signature d'utilisateur et d'API OCI. Vous pouvez également utiliser des groupes dynamiques. Pour plus d'informations, voir Appel de services à partir d'une instance.
Avant de configurer le service de stockage d'objets OCI distant, nous allons :
-
Créez des clés de signature d'API OCI pour que rclone s'authentifie dans le stockage d'objets OCI 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, voir Comment générer une clé de signature d'API.
-
Créez un fichier de configuration OCI. Ce fichier de configuration nécessite les clés de signature d'API OCI. Pour plus d'informations, voir Fichier de configuration des trousses SDK et de l'interface de ligne de commande.
Pour comprendre les options d'authentification pour rclone avec le fournisseur OCI, voir Présentation de la prise en charge dorsale du fournisseur de stockage d'objets OCI natif 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 du service de stockage d'objets pour OCI.
- Nom distant : Entrez un nom distant.
- Type : Sélectionnez le service de stockage d'objets Oracle.
- Fournisseur : Sélectionnez
user_principal_auth
(comme vous allez utiliser des clés de signature d'utilisateur et d'API OCI), 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 du seau OCI.
- Région : Entrez la région dans laquelle vous travaillez dans OCI.
- Point d'extrémité : Laissez vide ou entrez le point d'extrémité dans le 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 de démarrage de la machine virtuelle source
Tâche 2.1 : Effectuer un instantané obligatoire du volume de démarrage de machine virtuelle AWS
Effectuez un instantané du volume de démarrage de la machine virtuelle AWS. Cette opération est obligatoire avant de démarrer une activité de configuration de volume de démarrage.
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 général, pour préparer une machine virtuelle pour la console série, le fichier de chargement de démarrage GRUB doit être configuré. Ce fichier se trouve dans /etc/default/grub
.
Les paramètres de configuration GRUB les plus importants sont :
- 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
.sudo vi /etc/default/grub
Modifiez le fichier de sorte 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 chargeur de démarrage GRUB est correctement mis à jour.
sudo grub2-mkconfig -o /boot/grub2/grub.cfg
Tâche 2.3 : Vérifier les inducteurs de paravirtualisation
Pour importer une machine virtuelle dans 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 vérifierons à la fois le noyau et le système de fichiers temporaires initramfs pour confirmer la présence des pilotes. Notez que les systèmes d'exploitation Linux exécutant la version 3.4 du noyau ou les versions ultérieures prennent en charge les pilotes paravirtualisés; par conséquent, souvent, il vous suffit de vérifier et de confirmer qu'ils sont présents.
Le jeu minimal de pilotes VirtIO requis comprend pci
, scsi
. Ces pilotes doivent être présents dans le noyau ou dans les initramfs.
-
Vérifiez le noyau de la machine virtuelle AWS à l'aide de la commande suivante.
sudo grep -i virtio /boot/config-$(uname -r)
Note : 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 lsinitrd /boot/initramfs-$(uname -r).img | grep virtio
Note : Le pilote
scsi
VirtIO est présent dans initramfs. -
Si le volume de démarrage de votre machine virtuelle ne contient pas les pilotes, vous devrez recréer 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 de réseau
Pour la configuration du réseau, assurez-vous :
- La machine virtuelle utilise DHCP.
- Toutes les références codées en dur d'adresse MAC dans la configuration réseau sont supprimées.
Il existe plusieurs façons d'effectuer la configuration réseau sous Linux. Plus précisément dans RHEL, la configuration des connexions Ethernet peut être effectuée soit en modifiant les fichiers de configuration de réseau dans /etc/sysconfig/network-scripts/ifcfg-eth0
, soit en utilisant NetworkManager. Ce tutoriel utilise ce dernier pour effectuer la configuration réseau nécessaire. Pour plus d'informations, voir Configuration d'une connexion Ethernet.
-
Exécutez l'outil de ligne de commande NetworkManager (
nmcli
) pour voir un sommaire de la configuration de réseau de la machine virtuelle. -
Pour lister les connexions disponibles dans la machine virtuelle, exécutez la commande suivante.
nmcli connection show
Vous trouverez une liste des connexions. La machine virtuelle utilisée dans ce tutoriel comporte les connexions suivantes.
-
Confirmez la connexion Ethernet associée à
eth0
à l'aide du protocole DHCP (Dynamic Host Configuration Protocol).nmcli connection show <connection UUID>
Faites défiler jusqu'à ce que vous trouviez le paramètre
ipv4.method
. Il doit avoir la valeurauto
. -
Modifiez la connexion associée à l'interface
eth0
. Vous allez supprimer l'adresse MAC de la configuration de l'interface à l'aide de la commande suivante.sudo nmcli connection modify <connection UUID> 802-3-ethernet.mac-address ''
-
Appliquez ces modifications à l'aide de la commande suivante.
sudo nmcli con up <connection UUID>
-
En outre, vérifiez le répertoire
/etc/udev/rules
pour voir s'il existe des fichiers de règles udev contenant des règles codées en dur d'adresse MAC et supprimez-les. L'image AWS utilisée dans ce tutoriel contient l'un de ces fichiers70-persistent-net.rules
. Exécutez la commande suivante pour supprimer ce fichier.sudo rm /etc/udev/rules.d/70-persistent-net.rules
La configuration du réseau est maintenant terminée. Vous pouvez confirmer en vérifiant le fichier /etc/sysconfig/network-scripts/ifcfg-eth0
.
Tâche 3 : Exporter l'image de machine virtuelle vers Amazon S3
Cette tâche nécessite l'utilisation de l'interface de ligne de commande AWS. Ce tutoriel utilise AWS CloudShell, car il ignore les tâches de configuration de l'interface de ligne de commande AWS.
-
Arrêtez la VM. 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>
-
Entrez les informations suivantes .
- Format d'image de disque : Entrez VMDK, car il s'agit du seul format d'exportation AWS pris en charge par OCI.
- Format de conteneur : Entrez OVA pour combiner l'image de disque avec les métadonnées sur 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'exportation 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 se trouve à l'état actif. Une fois qu'il est terminé, vous le trouverez à l'état Terminé.
Tâche 4 : Transférer l'image vers le stockage d'objets OCI
Accédez par 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 seau AWS S3 vers le seau de stockage d'objets OCI.
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, allez à Images personnalisées dans le service de calcul et sélectionnez Importer l'image
-
Entrez les informations suivantes .
- Compartiment : Sélectionnez le compartiment où créer l'image personnalisée.
- Nom : Entrez le nom de l'image personnalisée.
- Système d'exploitation : Sélectionnez RHEL.
- Source : Importation à partir d'un seau du service de stockage d'objets. Sélectionnez le seau que vous avez configuré dans la tâche 1.1.
- Nom de l'objet : Sélectionnez l'image que vous avez transférée depuis Amazon S3.
- Mode de lancement : Sélectionnez le mode paravirtualisé.
-
Cliquez sur Importer l'image pour lancer l'importation de l'image.
-
Une fois l'image créée, vous êtes prêt à lancer une instance à partir de celle-ci. Dans la page des détails de l'image personnalisée, sélectionnez Créer une instance et entrez les informations suivantes.
- Nom : Entrez le nom de l'instance.
- Compartiment : Sélectionnez le compartiment où lancer l'instance.
- Domaine de disponibilité.
- VCN et sous-réseau. Aux fins de ce tutoriel, vous pouvez utiliser un sous-réseau public pour ignorer la connectivité RPV.
- Clés SSH : Vous disposez de deux options : générer de nouvelles clés SSH ou utiliser le même jeu de clés que celui que vous avez utilisé dans AWS. Si vous souhaitez continuer à utiliser le même jeu de clés, chargez la même clé publique que celle que vous avez utilisée dans AWS pour la machine virtuelle source. En supposant que votre clé publique AWS soit au format de clé
.pem
, remplacez-la par.pem.pub
afin de la charger dans 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 ec2-user et non opc.
ssh -i pathToKey/keyfile ec2-user@<publicIp>
Liens connexes
-
Activation de l'accès à la console série pour des images Linux importées
-
Dépannage des instances à partir des connexions à la console d'instance
-
Déplacer les données vers le stockage d'objets dans le nuage à l'aide de rclone
-
Migrer les données vers Oracle Cloud Infrastructure Object Storage à l'aide de Rclone
Confirmation
- Auteur - Ricardo Malhado (architecte principal de solution en nuage)
Autres ressources d'apprentissage
Explorez d'autres laboratoires sur la page docs.oracle.com/learn ou accédez à plus de contenu d'apprentissage gratuit sur le canal YouTube d'Oracle Learning. De plus, visitez 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 Red Hat Enterprise Linux Virtual Machine from Amazon Web Services to Oracle Cloud Infrastructure
F95988-01
April 2024