J'utilise une Amazon Machine Image (AMI) paravirtuelle (PV) Amazon Linux sur Amazon Elastic Compute Cloud (EC2). Comment migrer vers une AMI de machine virtuelle matérielle (HVM) Amazon Linux ?

Nous vous recommandons de migrer vers des instances HVM pour obtenir une sécurité renforcée, de nouvelles fonctions et des avantages en termes de performances. Pour en savoir plus sur les AMI PV et HVM, consultez Types de virtualisation d'AMI Linux.

En matière de sécurité, les protections du système d'exploitation ne sont pas suffisantes pour traiter les problèmes de processus à processus des instances PV à partir de CVE-2017-5754, comme décrit dans l'AWS Security Bulletin AWS-2018-013. Si les instances PV sont protégées des problèmes d'instance à instance par les hyperviseurs AWS, nous recommandons aux utilisateurs d'instances PV concernés par l'isolation des processus (comme le traitement de données non approuvées, l'exécution de code non approuvé ou l'hébergement d'utilisateurs non approuvés) de migrer vers les types d'instances HVM pour obtenir des avantages de sécurité à long terme.

Pour migrer des données d'une instance PV à une instance HVM, utilisez l'une des procédures suivantes :

  • (Recommandé) Copier les données et déplacer les applications d'une instance PV vers une nouvelle instance HVM.
  • Convertir l'instance PV en instance HVM.

(Recommandé) Copier les données et déplacer les applications d'une instance PV vers une nouvelle instance HVM

1.    Lancez une nouvelle instance à partir d'une nouvelle HVM AMI.

2.    Copiez les données de l'instance PV à la nouvelle instance HVM en utilisant l'une des méthodes suivantes :

  • Exécutez les utilitaires Linux comme rsync, scp ou drbd pour copier les données en toute sécurité entre les instances.
  • Copiez les données de l'instance PV vers un volume EBS et détachez le volume. Puis, attachez le volume à la nouvelle instance HVM.

3.    Installez et configurez vos applications sur l'AMI HVM.

Convertir l'instance PV en instance HVM

Si copier les données de l'instance PV vers une nouvelle instance HVM ne répond pas à vos besoins, vous pouvez convertir une instance PV en instance HVM en suivant les étapes ci-dessous :

Remarque : ce sont des conseils d'ordre général. Adaptez-les à vos configurations.

1.    Arrêtez l'instance PV.
Remarque : nous vous recommandons de réaliser cette étape sur une instance PV de test. Pour créer l'instance de test, commencez par créer une image de votre instance PV. Puis, lancez une nouvelle instance PV à partir de l'image.

2.    Créez un instantané du volume racine de l'instance PV.

3.    Restaurez l'instantané du volume racine de l'instance PV en tant que nouveau volume EBS. Le volume doit être restauré dans la même zone de disponibilité que l'instance PV.

4.    Lancez une nouvelle instance à partir d'une AMI HVM Amazon Linux. L'instance doit être lancée dans la même zone de disponibilité que l'instance PV.

5.    Sélectionnez le volume EBS restauré à partir de l'instantané racine de l'instance PV. Puis, attachez le volume à la nouvelle instance HVM en tant que /dev/xvdf.

6.    Créez un nouveau volume EBS vide de la même taille que le volume restauré depuis l'instantané racine de l'instance PV. Attachez le nouveau volume EBS vide à l'instance HVM en tant que /dev/xvdg.
Remarque : suite à cette étape, votre nouvelle instance HVM comprendra trois volumes.

7.    Connectez-vous à votre nouvelle instance HVM à l'aide de SSH.
Remarque : vous devez disposer de privilèges d'utilisateur racine pour les étapes suivantes.

8.    Exécutez cette commande pour afficher vos volumes :

# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
xvda 202:0 0 8G 0 disk
└─xvda1 202:1 0 8G 0 part /
xvdf 202:80 0 8G 0 disk
xvdg 202:96 0 8G 0 disk

Remarque : xvda est le volume racine de l'instance HVM. xvdf est le volume EBS restauré à partir de l'instantané racine de l'instance PV. xvdg est le nouveau volume vide.

9.    Exécutez ces commandes pour créer une nouvelle partition sur xvdg (le nouveau volume).

# parted /dev/xvdg --script 'mklabel msdos mkpart primary 1M -1s print quit'
# partprobe /dev/xvdg
# udevadm settle

Remarque : ces commandes créent xvdg1.

10.   Exécutez les commandes suivantes pour vérifier la taille de xvdf (le volume racine PV) et réduire la taille du système de fichiers initial. Pour accélérer le processus, ne copiez pas l'espace disque libre au cours de l'étape suivante.

# e2fsck -f /dev/xvdf ; resize2fs -M /dev/xvdf

11.   Exécutez ces commandes pour copier xvdf (le volume racine PV) vers xvdg1 (le nouveau volume) :

# dd if=/dev/xvdf of=/dev/xvdg1 bs=$(blockdev --getbsz /dev/xvdf) conv=sparse count=$(dumpe2fs /dev/xvdf | grep "Block count:" | cut -d : -f2 | tr -d "\\ ")

12.   Exécutez cette commande pour redimensionner xvdg1 (le nouveau volume) à sa taille maximale :

# e2fsck -f /dev/xvdg1 && resize2fs /dev/xvdg1

13.   Exécutez cette commande pour préparer xvdg1 (le nouveau volume) pour la conversion en volume racine de l'instance HVM :

# mount /dev/xvdg1 /mnt/ && mount -o bind /dev/ /mnt/dev && mount -o bind /sys /mnt/sys && mount -o bind /proc /mnt/proc

14.   Exécutez cette commande pour convertir xvdg1 (le nouveau volume) en volume racine de l'instance HVM :

# chroot /mnt/

15.   Exécutez ces commandes pour réinstaller grub sur le nouveau volume racine :

# yum reinstall grub -y
# rm -f /boot/grub/*stage* /boot/grub/device.map
# grub-install /dev/xvdg

16.   La commande « grub-install » renvoie le message suivant. C'est tout à fait normal, ignorez-le et passez à l'étape suivante.

Probing devices to guess BIOS drives. This may take a long time.
Unknown partition table signature
/dev/xvdg does not have any corresponding BIOS drive.

17.   Exécutez ces commandes pour mettre à jour la configuration grub :

# cat <<EOF | grub --batch
device (hd0) /dev/xvdg
root (hd0,0)
setup (hd0)
EOF
# sed -i 's/root\ (hd0)/root (hd0,0)/g' /etc/grub.conf
# sed -i 's/root\ (hd0)/root (hd0,0)/g' /boot/grub/menu.lst
# sed -i 's/console=hvc0/console=ttyS0/g' /etc/grub.conf
# sed -i 's/console=hvc0/console=ttyS0/g' /boot/grub/menu.lst

18.   Exécutez cette commande pour quitter la fonction « chroot » :

# exit

19.   Exécutez cette commande pour arrêter l'instance :

# halt

20.   Détachez les trois volumes attachés précédemment à l'instance HVM.

21.   Sélectionnez le volume attaché antérieurement en tant que /dev/xvdg (le nouveau volume). Attachez à nouveau ce volume en tant que /dev/xvda à l'instance HVM.

22.   Démarrez l'instance HVM.

La nouvelle instance HVM est une copie exacte de l'instance PV source. Après avoir vérifié le bon fonctionnement de l'instance HVM, vous pouvez résilier l'instance PV source. Vous pouvez également supprimer les deux volumes temporaires : le volume racine initial de l'instance HVM et le volume restauré à partir de l'instantané racine de l'instance PV.


Cette page vous a-t-elle été utile ? Oui | Non

Retour au Centre de connaissances AWS Support

Vous avez besoin d'aide ? Consultez le site du Centre AWS Support.

Date de publication : 19/02/2018