Actualizar
AWS ha habilitado esta función en la API EC2. Está disponible como --virtualization-type
opción aws ec2 register-image
en el nuevo awscli basado en Boto.
Respuesta original
¡Sí! Desafortunadamente, no hay una forma directa de hacerlo. Además, algunas instancias PV pueden necesitar modificaciones en el kernel y el gestor de arranque.
- Cree un volumen a partir de su PV AMI existente. Si fue su propio PV AMI, puede hacer un volumen a partir de la instantánea. Si se trata de un AMI de un tercero, deberá iniciar una instancia y tomar una instantánea.
- Inicie una instancia de HVM con cualquier AMI.
- Detenga esa instancia de HVM.
- Separe el volumen raíz de esa instancia.
- Adjunte el volumen PV como el volumen raíz (/ dev / sda1 o / dev / sda si estaba particionado) a la instancia de HVM.
- Ejecutar
ec2-create-image
en la instancia de HVM.
- Inicie otras instancias con su nueva AMI HVM.
Si eso no funciona, entonces antes del paso 5, necesitará adjuntar ese volumen a una instancia en ejecución, configurar un chroot e instalar un kernel y un gestor de arranque para su distribución. También es posible que desee borrar los registros y cualquier caché de inicio de la nube.
aws ec2 register-image
con el indicador --virtualization-type en la instantánea de la imagen de PV. Veraws ec2 register-image help
para más detalles.aws ec2 register-image
. Luego lancé una nueva instancia de HVM desde esa imagen. Sin embargo, el sistema no se iniciará.En mi caso, tuve que hacer la conversión manualmente ya que la instancia que creo usando
aws ec2 register-image
no se inició. Mi solución se basa en esta publicación en el Foro AWS EC2 .Preparación
SSH a su máquina fotovoltaica desde la que desea migrar y aplicar todas las actualizaciones, luego cierre sesión
Vaya a la consola de AWS e inicie una nueva instancia de HVM seleccionando la misma AMI base a partir de la cual se creó el sistema PV (en mi caso, la AMI de Linux de 64 bits de Amazon).
SSH a esta nueva instancia y aplique todas las actualizaciones, luego cierre sesión.
Vaya a la consola de AWS y detenga la instancia PV. Tome una instantánea del dispositivo raíz y cree un nuevo volumen (
SOURCE VOLUME
) a partir de esta instantánea.Detenga la instancia de HVM. Tome una instantánea del dispositivo raíz en la nueva instancia y cree un nuevo volumen (
TARGET VOLUME
) a partir de esta instantánea.Usando la consola de AWS:
SOURCE VOLUME
a la nueva instancia como/dev/xvdf
.TARGET VOLUME
a la nueva instancia como/dev/xvdg
.Proceso de conversión
SSH a la nueva instancia y obtenga acceso de root:
Monte las unidades de origen y destino.
Copia de seguridad
/lib/modules/*
(si el núcleo de la PV ami difiere de la nueva máquina HVM. Algunos servicios de AWS utilizan este módulo).Eliminar todo menos
/boot
en el volumen de destino:Eliminar
/boot
en el volumen de origen:Copie los datos del volumen de origen al volumen de destino conservando todos los atributos:
Edite
/mnt/target/etc/fstab
para la/
partición, de modo que haga referencia alTARGET VOLUME
cuando está montado en su ubicación final en el paso (8). Ya sea usando una etiqueta o simplemente algo junto:Luego restaure
/lib/modules/
la copia de seguridad que se realizó en el Paso 3. (Si el núcleo de la PV ami difiere de la nueva máquina HVM).Detenga el sistema y separe todos los volúmenes con la consola de AWS. Adjunte el
TARGET VOLUME
en la nueva instancia como/dev/xvda
.Comience su instancia de HVM. Ahora debería ser un duplicado exacto de su sistema fotovoltaico. Si todo parece correcto, ahora puede eliminar su instancia de PV y también
SOURCE VOLUME
.fuente
rm -f /boot
ycp -a /mnt/source/boot /mnt/target
?TLDR:
Pasos detallados:
Respondiendo más en base a la respuesta de Jeff Strunk para simplificar los pasos y dar un poco más de detalles sobre la imagen de registro ec2:
Crear instancia usando la imagen PV. Realice / actualice los cambios que desee.
Crear imagen a partir de la instancia anterior.
Busque la identificación de la instantánea utilizada por la AMI anterior en EC2> Elastic Block Store> Instantánea en la consola EC2.
o si tiene la configuración de las herramientas ec2 api:
ec2-describe-images ami-id_of_above_created_ami
y encuentre la identificación de la instantánea para el ami
.. Suposiciones para pasos adicionales: las teclas ec2 y las herramientas de API están configuradas y listas para usar:
Registre una nueva AMI HVM utilizando la instantánea anterior: ejemplo:
dónde
Para más información:
fuente
Puede hacerlo desde el interior de la interfaz web de AWS. Navegue a las instantáneas , haga clic en la instantánea deseada que desea convertir a hvm y haga clic en acciones y luego cree la imagen . En el menú desplegable del asistente de creación de imágenes, seleccione HVM .
fuente
Después de haber probado todas las sugerencias en este documento, ninguna de las cuales funcionó para mí, encontré una excelente entrada de blog sobre el tema, en https://www.opswat.com/blog/aws-2015-why-you-need-switch- pv-hvm .
Los elementos (detalles) del procedimiento son:
Instalar
grub
en la instancia de PV que se va a migrar (instancia de origen).Realice una instantánea de precaución del volumen raíz en la instancia de origen (volumen de origen, SV).
Cree una instancia temporal de HVM que migrará el volumen.
Cree un volumen de destino (DV) y adjunte este y el SV a la instancia temporal.
El DV debe ser al menos tan grande como el SV.
Adjunte el SV como
/dev/{sd,xvd}f
y el DV como/dev/{sd,xvd}g
.Particionar el DV:
parted /dev/xvdg --script 'mklabel msdos mkpart primary 1M -1s print quit'
partprobe /dev/xvdg
udevadm settle
Cambie el tamaño al tamaño mínimo del FS del SV y use la
dd
imagen en el DV.Limpie el FS del volumen de origen:
e2fsck -f /dev/xvdf
Minimiza lo mismo:
resize2fs -M /dev/xvdf
Observe el resultado de resize2fs (por ejemplo
Resizing the file system on /dev/xvdf to 269020 (4k) blocks
) y anótelo para el siguiente paso.Duplicar SV a 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>
Expanda el FS en la nueva partición:
resize2fs /dev/xvdg1
Instalar
grub
en el bloque de arranque del DVCree temporalmente archivos de dispositivo en el DV:
mount /dev/xvdg1 /mnt; cp -a /dev/xvdg /dev/xvdg1 /mnt/dev/
Instalar archivos 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
Después de haber realizado otros cambios menores en el volumen de destino, ajuste el volumen y cree un AMI a partir de él.
Ordena los archivos temporales del dispositivo:
rm -f /mnt/dev/xvdg /mnt/dev/xvdg1
En
/mnt/boot/grub/grub.conf
, cambieroot (hd0)
aroot (hd0,0)
, agregue (o reemplaceconsole=*
)console=ttyS0
a la línea del kernel y, si es necesario, reemplaceroot=*
conroot=LABEL=/
en la línea del kernelEn
/mnt/etc/fstab
, asegúrese de que la línea del FS raíz contenga una referencia etiquetada, por ejemploLABEL=/ / ext4 defaults,noatime 1 1
Etiquete la nueva raíz FS con
e2label /dev/xvdg1 /
Desmonta DV de la instancia temporal, desconecta SV y DV de la instancia temporal.
Ajuste el DV y, a partir de ese ajuste, cree una imagen AMI.
Inicie una instancia de HVM desde esa HMI. Esa es tu instancia migrada.
fuente