La réponse de @divyenduz fonctionne mais nécessite un peu de nettoyage et de clarification pour les AWS EC2 modernes (vers 2019). Il est important de noter que les classes d'instance modernes traduisent le nom du périphérique différemment.
Voici mes étapes modifiées.
Pour plus de clarté, les nœuds sont :
- Le nœud PVM d'origine que vous voulez mettre à niveau vers le HVM est "PVM01".
- Le nouveau nœud HVM vers lequel vous allez migrer le disque racine de PVM01 est "HVM01".
AVANT DE POURSUIVRE : Sauvegarde du nœud original PVM01
-
Installer les pré-requis sur le nœud PVM01
-
Nœud d'arrêt PVM01
- Créer un snapshot de /dev/sda1
- OU créer une AMI de tout le noeud
-
Créer un snapshot du volume Root original sur PVM01 et créer un nouveau volume à partir de ce snapshot.
- Créer un snap de /dev/sda1 sur PVM01
- Créer un vol à partir de ce cliché
-
Étiqueter chaque ressource en conséquence
- Tag : Nom ; Valeur : pvm01:/dev/sda1:snapshot-for-conversion-to-hvm:2019-07-01
- Etc
-
créer une instance : Nouvelle instance HVM Ubuntu "HVM01". N'importe quelle classe d'instance devrait fonctionner ; cependant, le nom du périphérique peut être différent, voir les notes ci-dessous.
- J'ai utilisé Bionic Ubuntu 18.04 HVM AMI ID ami-0a313d6098716f372 et la classe d'instance C5.XLARGE.
-
Attachez la partition racine de PVM01 (nouveau volume de l'étape précédente) au nouveau HVM01 /dev/sdf
-
NOTE : Les anciennes classes d'instance telles que C3 traduiront le nom du volume en /dev/xvdf.
-
NOTE : Les classes d'instance plus récentes telles que C5 traduiront le nom du volume en /dev/nvme1
- Sur les classes d'instance plus récentes, le Vol de racine sera /dev/nvme0 -- ZERO
- Sur les classes d'instance plus récentes, le attaché, vol secondaire sera /dev/nvme1 -- UN
- Notez le nom du périphérique de volume attaché
ssh PVM01 sudo fdisk -l
-
Sur HVM01 :
# For xvdf, e.g. on C3.XLARGE
DEVNAME=xvdf1
# For nvme, e.g. on C5.XLARGE
DEVNAME=nvme1n1
mkdir -p /mnt/${DEVNAME} && mount /dev/${DEVNAME} /mnt/${DEVNAME}
rsync -avzXA /boot/ /mnt/${DEVNAME}/boot/
mount -o bind /dev /mnt/${DEVNAME}/dev && mount -o bind /dev/pts /mnt/${DEVNAME}/dev/pts && mount -o bind /proc /mnt/${DEVNAME}/proc && mount -o bind /sys /mnt/${DEVNAME}/sys
chroot /mnt/${DEVNAME}
grub-install --no-floppy --recheck --force /dev/${DEVNAME}
update-grub2
-
Quitter le chroot avec CTRL+D
-
Arrêt HVM01
-
Détacher les deux volumes
- detach /dev/nvme0 PVM01 Root
- NOTE : Ce serait /dev/sda1 sur une classe d'instance C3
- detach /dev/${DEVNAME} (DEVNAME du script ci-dessus)
-
attachez le volume racine de PVM01 à HVM01 comme /dev/sda1
- Une fois encore, le nom /dev/sda1 est dans la console ; ce nom sera traduit en /dev/nvme0 ou /dev/xvda1 selon la modernité de la classe d'instance
-
Début HVM01
-
FACULTATIF : Créez une nouvelle image AMI à partir de la HVM01 en cours d'exécution, elle sera virtualisée par HVM.
3 votes
Je viens d'essayer avec CentOS mais je me retrouve avec l'erreur suivante dans la version 10 : /dev/xvdf n'a pas de lecteur BIOS correspondant.
0 votes
Pour faire suite à ce que @ROMANARMY a dit, je pense que la réponse est la suivante devrait être réparti dans une réponse appropriée. Vous pouvez ensuite l'accepter pour que la question n'apparaisse pas comme sans réponse. Voir stackoverflow.com/help/self-answer
0 votes
@Tobias Zander avez-vous réussi à le faire fonctionner avec CentOS ?
1 votes
@dennis.hempler Nous n'avons pas investi beaucoup plus de temps et avons juste créé de nouvelles instances.