Migrer une VM Linux vers le Cloud OUTSCALE

Vous pouvez migrer une machine virtuelle (VM) Linux VMWare, VirtualBox ou Amazon Web Services (AWS) vers une VM Linux OUTSCALE. Pour en savoir plus sur les machines virtuelles (VM) OUTSCALE, voir À propos des VM.

Les procédures suivantes sont des instructions génériques que vous pouvez suivre selon votre situation. Vous pouvez les ajustez selon vos besoins.

Migrer la VM depuis VMWare ou VirtualBox

Avant de commencer : Assurez-vous d’avoir :

  • Le service SSH installé

  • La clé SSH ou le login/password autorisé à distance (/etc/sshd/sshd_config)

  • Le security group paramétré pour autoriser les connexions à la VM

  1. Créez une VM Linux OUTSCALE. Pour en savoir plus, voir Créer des VM.

  2. Attachez deux volumes xvdb et xvdc à cette VM. Pour en savoir plus, voir Attacher un volume à une VM.

    Vous pouvez augmenter la vitesse de la copie en utilisant un volume io1.

  3. Formatez le volume xvdb au format ext4 :

    $ mkfs -t ext4 /dev/xvdb
  4. Créez le point de montage :

    $ mkdir -p /mnt/source
  5. Montez le volume xvdb :

    $ mount /dev/xvdb /mnt/source

    Le volume est monté.

  6. Copiez le volume principal de votre VM Linux non OUTSCALE vers le volume de votre VM Linux OUTSCALE en utilisant la commande suivante :

    $ scp -i keypair.rsa convertible.vmdk user@outscale_ip:/mnt/source

    Le nom de l’utilisateur par défaut dépend de l’OMI utilisée :

    • outscale pour les OMI Ubuntu 18 et Centos 7 publiées depuis le 20 décembre 2018

    • ubuntu pour les OMI Ubuntu plus anciennes

    • centos pour les OMI Centos 7 et OMI Centos 6 plus anciennes

    Le volume est copié.

  7. Installez le package qemu and et convertissez vos fichiers :

    $ qemu-img convert -f vmdk /mnt/source/convertible.vmdk -O raw /mnt/source/converted.raw
  8. Copiez vos fichiers vers la partition cible (le volume /dev/xvdc) bit par bit :

    $ dd if=/root/converted.raw of=/dev/xvdc bs=16k status=progress

    Les fichiers de votre VM Linux non OUTSCALE sont migrés vers la VM Linux OUTSCALE.

Migrer la VM depuis AWS

Avant de commencer : Assurez-vous d’avoir :

  • Le service SSH installé

  • La clé SSH ou le login/password autorisé à distance (/etc/sshd/sshd_config)

  • Le security group paramétré pour autoriser les connexions à la VM

  1. Créez une VM Linux OUTSCALE. Pour en savoir plus, voir Créer des VM.

  2. Attachez deux volumes xvdb et xvdc à cette VM. Pour en savoir plus, voir Attacher un volume à une VM.

    Vous pouvez augmenter la vitesse de la copie en utilisant un volume io1.

  3. Formatez le volume xvdb au format ext4 :

    $ mkfs -t ext4 /dev/xvdb
  4. Créez le point de montage :

    $ mkdir -p /mnt/source
  5. Montez le volume xvdb :

    $ mount /dev/xvdb /mnt/source

    Le volume est monté.

  6. Créez une autre VM Linux AWS.

  7. Attachez le bootdisk de votre nouvelle VM Linux AWS à la VM que vous voulez migrer.

    Si vous n’attachez pas le bootdisk, l’accès r/w est demandé pendant la copie et ralentit le processus

    Le bootdisk est attaché.

  8. Ajoutez un troisième volume à la VM Linux AWS.

  9. Compressez les volumes de la VM Linux AWS dans un fichier au format zip, en utilisant les commandes suivantes :

    $ sudo chown -r ec2-user:root /mnt
    $ sudo mkfs -t ext4 /dev/hdc
    $ sudo mount /dev/hdc
    $ sudo dd if=/dev/hdb | gzip -c > /mnt/aws.raw

    Le volume est compressé dans un fichier zip.

  10. Copiez le fichier aws.raw reçu depuis la VM Linux AWS dans la VM Linux OUTSCALE :

    $ scp -i keypair.rsa aws.raw user@outscale_ip:/mnt/source

    Le nom de l’utilisateur par défaut dépend de l’OMI utilisée :

    • outscale pour les OMI Ubuntu 18 et Centos 7 publiées depuis le 20 décembre 2018

    • ubuntu pour les OMI Ubuntu plus anciennes

    • centos pour les OMI Centos 7 et OMI Centos 6 plus anciennes

    Le fichier est copié.

  11. Décompressez les données :

    $ gunzip -c /mnt/source/aws.raw > /dev/xvdc

    Les fichiers de votre VM Linux AWS sont migrés vers la VM Linux OUTSCALE.

Configurer la VM Linux migrée

Faire un chroot sur la partition

  1. Créez le point de montage/target :

    $ mkdir -p /mnt/target
  2. Tapez les commandes suivantes pour monter les différents fichiers obligatoires, où X est le numéro de la partition contenant le système d’exploitation :

    $ mount /dev/xvdcX /mnt/target
    $ mount --rbind /dev /mnt/target/dev
    $ mount -t proc /proc /mnt/target/proc
    $ mount --rbind /sys /mnt/target/sys
  3. Créez le nouveau chemin :

    $ export PATH=$PATH:/bin:/sbin
  4. Faites un chroot sur la partition que vous avez créée :

    $ chroot /mnt/target

    Le chroot est fait sur la partition.

Autoriser l’identification en root

Autorisez l’identification en root uniquement avec SSH et une clé dans /etc/ssh_config.

Configurer GRUB

  1. Changez la configuration de GRUB (peut être en grub2 si celui-ci est appliqué) :

    $ /boot/grub/grub.cfg
  2. Vérifiez les paramètres de GRUB dans le fichier /etc/default/grub.

    1. Vérifiez si le nom du volume est vda au lieu de sda ou hda. Si ce n’est pas le cas, changez-le.

    2. Ajoutez les options suivantes à votre ligne kernel dans GRUB :

      $ GRUB_CMDLINE_LINUX_DEFAULT="elevator=deadline console=tty0 console=ttyS0,38400n8"

      GRUB est modifié.

  3. Appliquez la configuration de GRUB :

    $ grub-mkconfig
  4. Installez la nouvelle configuration de GRUB :

    $ grub-install

Vérifier les derniers éléments

  1. Vérifiez si les noms de volumes sont alignés dans le dossier /etc/fstab.

  2. Mettez en place le package de règles udev. Pour en savoir plus, voir Installer les packages pour les noms de périphériques Linux.

  3. Si votre /etc/rc.local ne contient pas la clé SSH, utilisez le script suivant pour rafraîchir le fichier authorized_keys :

    $  sed -i '/^exit 0/d' /etc/rc.local
        cat >> /etc/rc.local <<EOF
        /bin/mkdir -p /root/.ssh #LINE_TO_STRIP
        wget http://169.254.169.254/latest/meta-data/public-keys/0/openssh-key -O - > /root/.ssh/authorized_keys
        /bin/chmod 700 /root/.ssh -R
        wget http://169.254.169.254/latest/meta-data/local-hostname -O - | cut -d '.' -f 1 > /etc/hostname; #LINE_TO_STRIP
        hostname -F /etc/hostname #LINE_TO_STRIP
        sed -i '/^.*LINE_TO_STRIP.*$/d' /etc/rc.local; #LINE_TO_STRIP
        EOF
  4. Nettoyez les éléments sensibles de votre VM. Pour en savoir plus, voir Nettoyage des VM Linux pour créer des OMI.

    Vous pouvez vérifier le nettoyage avec soit yum -y clean all, soit apt-get -y clean all.

Démarrer la VM

  1. Vérifiez et nettoyez les programmes autorisés au démarrage à l’exception du ssh.

  2. Créez un snapshot de votre volume. Pour en savoir plus, voir Créer un snapshot d’un volume.
    Votre snapshot est créé.

  3. Créez une OUTSCALE machine image (OMI) à partir du snapshot que vous avez créé. Pour en savoir plus, voir Créer une OMI depuis un snapshot.
    L’OMI est créée.

  4. Créez la VM depuis l’OMI que vous avez créée. Pour en savoir plus, voir Créer des VM.

Pages connexes

AWS™ et Amazon Web Services™ sont des marques de commerce d’Amazon Technologies, Inc. ou de ses affiliées aux États-Unis et/ou dans les autres pays.