Mise à jour
AWS a activé cette fonctionnalité dans l'API EC2. Il est disponible comme --virtualization-type
option aws ec2 register-image
dans le nouvel awscli basé sur Boto.
Réponse originale
Oui! Malheureusement, il n'y a pas de moyen direct de le faire. De plus, certaines instances PV peuvent nécessiter des modifications du noyau et du chargeur de démarrage.
- Créez un volume à partir de votre AMI PV existante. S'il s'agissait de votre propre AMI PV, vous pouvez créer un volume à partir de l'instantané. S'il s'agit d'une AMI tierce, vous devrez lancer une instance et prendre un instantané.
- Lancez une instance HVM avec n'importe quelle AMI.
- Arrêtez cette instance HVM.
- Détachez le volume racine de cette instance.
- Associez le volume PV en tant que volume racine (/ dev / sda1 ou / dev / sda s'il a été partitionné) à l'instance HVM.
- Exécuter
ec2-create-image
sur l'instance HVM.
- Lancez d'autres instances avec votre nouvelle AMI HVM.
Si cela ne fonctionne pas, avant l'étape 5, vous devrez associer ce volume à une instance en cours d'exécution, configurer un chroot, puis installer un noyau et un chargeur de démarrage pour votre distribution. Vous pouvez également vouloir effacer les journaux et tout cache en nuage-init.
aws ec2 register-image
avec l'indicateur --virtualization-type sur l'instantané de l'image PV. Voiraws ec2 register-image help
pour plus de détails.aws ec2 register-image
. Ensuite, j'ai lancé une nouvelle instance HVM à partir de cette image. Cependant, le système ne démarre pas.Dans mon cas, je devais faire la conversion manuellement car l'instance que je crée en utilisant
aws ec2 register-image
ne démarrait pas. Ma solution est basée sur ce post sur le forum AWS EC2 .Préparation
SSH sur votre machine PV à partir de laquelle vous souhaitez migrer et appliquer toutes les mises à jour, puis déconnectez-vous.
Accédez à la console AWS et lancez une nouvelle instance HVM en sélectionnant la même AMI de base à partir de laquelle le système photovoltaïque a été créé (dans mon cas, l'AMI Amazon 64 bits de Amazon).
SSH sur cette nouvelle instance et appliquez toutes les mises à jour, puis déconnectez-vous.
Accédez à la console AWS et arrêtez l'instance PV. Prenez un instantané du périphérique racine et créez un nouveau volume (
SOURCE VOLUME
) à partir de cet instantané.Arrêtez l'instance HVM. Prenez un instantané du périphérique racine sur la nouvelle instance et créez un nouveau volume (
TARGET VOLUME
) à partir de cet instantané.Utilisation de la console AWS:
SOURCE VOLUME
à la nouvelle instance en tant que/dev/xvdf
.TARGET VOLUME
à la nouvelle instance en tant que/dev/xvdg
.Processus de conversion
SSH sur la nouvelle instance et obtenir un accès root:
Montez les lecteurs source et cible.
Sauvegarde
/lib/modules/*
(Si le noyau de PV ami diffère de celui de la nouvelle machine HVM. Ce module est utilisé par certains services d’AWS.)Supprimer tout sauf
/boot
sur le volume cible:Supprimer
/boot
sur le volume source:Copiez les données du volume source sur le volume cible en préservant tous les attributs:
Éditez
/mnt/target/etc/fstab
pour la/
partition, de sorte qu'il fasse référence àTARGET VOLUME
lorsqu'il est monté à son emplacement final à l'étape (8). Soit en utilisant une étiquette ou simplement quelque chose de long:Ensuite, restaurez la
/lib/modules/
sauvegarde sauvegardée à l’étape 3. (Si le noyau de l’ami PV diffère de celui de la nouvelle machine HVM.)Arrêtez le système et détachez tous les volumes à l'aide de la console AWS. Attachez le
TARGET VOLUME
sur la nouvelle instance en tant que/dev/xvda
.Démarrez votre instance HVM. Il devrait maintenant s'agir d'une copie exacte de votre système PV. Si tout se passe bien, vous pouvez maintenant supprimer votre instance PV ainsi que
SOURCE VOLUME
.la source
rm -f /boot
etcp -a /mnt/source/boot /mnt/target
?TLDR:
Étapes détaillées:
Répondant en outre sur la réponse de Jeff Strunk pour simplifier les étapes et donner un peu plus de détails sur l'image du registre ec2:
Créer une instance à l'aide de PV Image. Effectuez / mettez à jour les modifications souhaitées.
Créer une image à partir de l'instance ci-dessus.
Recherchez l'identifiant d'instantané utilisé par l'AMI ci-dessus sous EC2> Elastic Block Store> Instantané dans la console EC2.
ou si vous avez la configuration d'outils ec2 api:
ec2-describe-images ami-id_of_above_created_ami
et trouver l'identifiant de l'instantané pour l'ami
.. Hypothèses pour les étapes suivantes: vos clés ec2 et vos outils api sont configurés et prêts à être utilisés:
Enregistrez une nouvelle AMI HVM à l'aide de l'instantané ci-dessus: exemple:
où
Pour plus d'informations:
la source
Vous pouvez le faire depuis l'intérieur de l'interface Web AWS. Accédez aux instantanés , cliquez sur l'instantané que vous souhaitez convertir en hvm, cliquez sur les actions , puis créez une image . Dans la liste déroulante de l'assistant de création d'image, sélectionnez HVM .
la source
Après avoir essayé toutes les suggestions présentées ici, mais aucune d’entre elles n’a fonctionné pour moi, j’ai trouvé un excellent article de blog sur le sujet, à l’ adresse https://www.opswat.com/blog/aws-2015-why-you-need-switch- pv-hvm .
Les éléments (détails) de la procédure sont:
Installer
grub
sur l'instance PV à migrer (instance source).Créez un instantané de précaution du volume racine sur l'instance source (volume source, SV).
Créez une instance HVM temporaire qui migrera le volume.
Créez un volume de destination (DV) et attachez-le, ainsi que le SV, à l'instance temporaire.
Le DV devrait être au moins aussi grand que le SV.
Fixez le SV en tant que
/dev/{sd,xvd}f
, et le DV en tant que/dev/{sd,xvd}g
.Partitionner le DV:
parted /dev/xvdg --script 'mklabel msdos mkpart primary 1M -1s print quit'
partprobe /dev/xvdg
udevadm settle
Redimensionnez au minimum la taille du SV du SV et utilisez-
dd
la sur le DV.Nettoyez le système de fichiers du volume source:
e2fsck -f /dev/xvdf
Minimiser les mêmes:
resize2fs -M /dev/xvdf
Observez le résultat de resize2fs (par exemple
Resizing the file system on /dev/xvdf to 269020 (4k) blocks
) et notez-le pour l'étape suivante.Dupliquer SV à DV:
dd if=/dev/xvdf of=/dev/xvdg1 bs=<block size from previous step, here 4k> count=<use block count from last step, here 269020>
Développez le système de fichiers sur la nouvelle partition:
resize2fs /dev/xvdg1
Installer
grub
dans le bloc de démarrage du DVCréer temporairement des fichiers de périphérique sur le DV:
mount /dev/xvdg1 /mnt; cp -a /dev/xvdg /dev/xvdg1 /mnt/dev/
Installez les fichiers grub:
rm -f /mnt/boot/grub/*stage*
cp /mnt/usr/*/grub/*/*stage* /mnt/boot/grub/
rm -f /mnt/boot/grub/device.map
cat << ARNIE | chroot /mnt grub --batch
device (hd0) /dev/xvdg
root (hd0,0)
setup (hd0)
ARNIE
Après avoir apporté quelques modifications mineures au volume de destination, accrochez le volume et créez une AMI à partir de celui-ci.
Rangez les fichiers de périphériques temporaires:
rm -f /mnt/dev/xvdg /mnt/dev/xvdg1
Dans
/mnt/boot/grub/grub.conf
, le changementroot (hd0)
àroot (hd0,0)
, ajouter (ou remplacerconsole=*
)console=ttyS0
à la ligne du noyau, et si nécessaire , remplacerroot=*
parroot=LABEL=/
dans la ligne du noyauDans
/mnt/etc/fstab
, assurez-vous que la ligne du système racine contient une référence libellée, par exempleLABEL=/ / ext4 defaults,noatime 1 1
Étiquetez la nouvelle racine FS avec
e2label /dev/xvdg1 /
Démontez DV de l'instance temporaire, détachez SV et DV de l'instance temporaire.
Alignez le DV et créez à partir de celui-ci une image AMI.
Lancez une instance HVM à partir de cette IHM. C'est votre instance migrée.
la source