Migrer une instance Linux vers le Cloud OUTSCALE

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

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 l’instance 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 à l’instance

  1. Créez une instance Linux OUTSCALE. Pour en savoir plus, voir Créer / Lancer des instances.

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

    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 instance Linux non OUTSCALE vers le volume de votre instance 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 instance Linux non OUTSCALE sont migrés vers l’instance Linux OUTSCALE.

Migrer l’instance 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 à l’instance

  1. Créez une instance Linux OUTSCALE. Pour en savoir plus, voir Créer / Lancer des instances.

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

    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 instance Linux AWS.

  7. Attachez le bootdisk de votre nouvelle instance Linux AWS à l’instance 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 à l’instance Linux AWS.

  9. Compressez les volumes de l’instance 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 l’instance Linux AWS dans l’instance 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 instance Linux AWS sont migrés vers l’instance Linux OUTSCALE.

Configurer l’instance 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 instance. Pour en savoir plus, voir Nettoyage des instances 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 l’instance

  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. Lancez l’instance depuis l’OMI que vous avez créée. Pour en savoir plus, voir Créer / Lancer des instances.

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.