Han pasado algunos días y todavía no puedo conectarme a mi nueva instancia HVM con EC2 con Ubuntu 16. Como referencia, estoy intentando actualizar nuestro servidor desde una instancia m3 con Ubuntu 16 a una instancia C5 con Ubuntu 16. En casi todos los métodos que he probado, puedo llegar al punto en el que detengo mi nueva instancia C5, desconecto todos los volúmenes y adjunto el volumen de origen recién actualizado como /dev/sda1
, pero luego, cuando voy a conectarme a la instancia, siempre terminar sin tiempo. La verificación de estado de Amazon también falla, ya que dice que no se puede acceder a la instancia. Sin embargo, el registro del sistema no muestra problemas al iniciar.
He intentado hacer todo enesta publicación. He intentadoesta publicacióntambién. He buscado en otros sitios y he dadoesteyesteun intento. Incluso probé el método de herramientas de línea de comandos de ec2 y la conversión de una AMI desde la consola de ec2 (en línea), sin embargo, no puedo iniciar una instancia C5 con la AMI convertida o la instancia se detendrá y fallará (en el caso de conversión a través de la línea de comando).
Lo único que realmente puedo pensar que podría estar causando esto es la convención de nomenclatura para las particiones en la instancia C5. Todas las guías que he visto usan xvda/xvdf/xvdg
. Podría estar equivocado, pero no tengo estas particiones o discos, y en su lugar tengo nvme0n1
, nvme0n1p1
(la nueva raíz HVM), nvme1n1
y nvme1n1p1
. Cuando probé el método HVM/fuente/disco de destino, tenía nvme0n1/nvme0n1p1
( nvme1n1
destino, donde debería terminar todo) y nvme2n1/nvme2n1p1
(fuente, de donde era todo, en m3). encontréesta publicación de Amazon sobre nvmeasí que no creo que esto deba ser un problema, ya que solo estoy usando el disco/partición correcto cuando uso /mnt/
, es decir. Llamo mkdir -p /mnt/target && mount /dev/nvme1n1 /mnt/target
en lugar de mkdir -p /mnt/target && mount /dev/xvdf /mnt/target
, pero hasta ahora nada ha funcionado. Mi instancia se vuelve inalcanzable en el momento en que adjunto el target
as /dev/sda1
.
Entonces, ¿hay algo que me falta al hacer esto con un disco llamado nvme*
? ¿Hay alguna otra información o elemento de depuración que pueda proporcionar para ayudar a comprender el problema?
Respuesta1
Me doy cuenta de que esta pregunta no se vio mucho, pero por si acaso, espero que mis resultados puedan ayudar a alguien en el futuro (tal vez incluso a mí la próxima vez que intente esto). Me gustaría agradecer a Steve E. del soporte de Amazon por ayudarme a migrar mi instancia <3
De todos modos, hubo 2 problemas al migrar mi instancia de Ubuntu 16.04 M3 (PV) a una instancia de Ubuntu 16.04 C5 (HVM). El primer problema fue que las nuevas instancias C5 utilizan las nuevas convenciones de nomenclatura, por lo que otros tutoriales sobre la migración de PV a HVM no funcionan de la misma manera. El otro problema fue que mi instancia M3 (PV) había pasado por actualizaciones a Ubuntu. De hecho, pasé de Ubuntu 12 -> Ubuntu 14 -> Ubuntu 16 en el último año. Esto causó un problema por el cual no se generaban archivos de red en la nube y, por lo tanto, no se podía acceder a mi instancia.
De todos modos, para migrar una instancia PV de Ubuntu 16.04 a una instancia HVM usando la nueva convención de nomenclatura nvme, haga lo siguiente:
Resumen de requisitos previos:
Antes de comenzar, asegúrese de instalar lo siguiente en su instancia fotovoltaica:
$ sudo apt-get install grub-pc grub-pc-bin grub-legacy-ec2 grub-gfxpayload-lists $ sudo apt-get install linux-aws
- Detenga la instancia PV yCrear una instantáneade su volumen raíz,restaurar esta instantáneacomo un nuevo volumen de EBS en la misma zona de disponibilidad de la fuente (inicie la instancia PV justo después de la creación de la instantánea)
- Lanzar una nueva instancia C5 HVM(destino) seleccionando Ubuntu Server 16.04 LTS (HVM) en la misma zona de disponibilidad de la instancia de origen (mantenga el tamaño del volumen raíz de EBS de esta nueva instancia en 8 GB, ya que este volumen raíz solo se usará temporalmente)
- Después del lanzamiento de la instancia,adjuntar el volumenrestauró en el paso 1 (ese es el volumen raíz de la instancia PV) como
/dev/sdf
(en el sistema Ubuntu, el nombre seránvme1n1
). - Cree un nuevo volumen de EBS (en blanco)(mismo tamaño que su volumen raíz PV 'fuente') y conéctelo a la instancia HVM como
/dev/sdg
(en el sistema Ubuntu, el nombre seránvme2n1
)
Migración:
Una vez que haya iniciado sesión en su instancia, utilícelo sudo su
para ejecutar todos los comandos como usuario root.
Muestra tus volúmenes
# lsblk NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT nvme0n1 259:0 0 8G 0 disk └─nvme0n1p1 259:1 0 8G 0 part / nvme1n1 259:2 0 100G 0 disk nvme2n1 259:3 0 100G 0 disk
nvme0n1
es la raíz de HVM que acaba de crear (solo para arrancar esta vez)nvme1n1
es la raíz de PV restaurada (se convertirá a HVM)nvme2n1
es el volumen en blanco (recibirá la conversión de la raíz de PV comonvme1n1
)Cree una nueva partición en
nvme2n1
(nvme2n1p1
se creará)# parted /dev/nvme2n1 --script 'mklabel msdos mkpart primary 1M -1s print quit' # partprobe /dev/nvme2n1 # udevadm settle
Verifique el volumen 'fuente' y minimice el tamaño del sistema de archivos original para acelerar el proceso. No queremos copiar espacio libre en el disco en el siguiente paso.
# e2fsck -f /dev/nvme1n1 ; resize2fs -M /dev/nvme1n1
Duplicar el volumen 'origen' al 'destino'
# dd if=/dev/nvme1n1 of=/dev/nvme2n1p1 bs=$(blockdev --getbsz /dev/nvme1n1) conv=sparse count=$(dumpe2fs /dev/nvme1n1 | grep "Block count:" | cut -d : -f2 | tr -d "\\ ")
Cambie el tamaño del volumen de 'destino' al máximo:
# e2fsck -f /dev/nvme2n1p1 && resize2fs /dev/nvme2n1p1
Prepare el volumen de destino:
# mount /dev/nvme2n1p1 /mnt/ && mount -o bind /dev/ /mnt/dev && mount -o bind /sys /mnt/sys && mount -o bind /proc /mnt/proc
chroot
al nuevo volumen# chroot /mnt/
Reinstale gruben el volumen chroot:
# grub-install --recheck /dev/nvme2n1 # update-grub
Salga del
chroot
# exit
Cerrar la instancia
# shutdown -h now
Después de la conversión ahora necesitas hacer esto:
Separe los 3 volúmenes que tenía anteriormente en la instancia HVM. Adjunte el último volumen que creó (en blanco) como
/dev/sda1
en la consola (anteriormente estaba adjunto como/dev/nvme2n1
) en la instancia de HVM. Inicie la instancia HVM.
La nueva instancia HVM ahora debería iniciarse correctamente y será una copia exacta de la instancia PV de origen anterior (si utilizó el volumen de origen correcto). Una vez que haya confirmado que todo está funcionando, se puede finalizar la instancia de origen.
Actualización de la configuración de red (opcional)
Ahora, los pasos anteriores funcionarán para la mayoría de las personas aquí. Sin embargo, todavía no se alcanzaba el estado de mi instancia. La razón fue porque actualicé Ubuntu en mi instancia, en lugar de comenzar desde una imagen nueva. Esto dejó la eth0
configuración activada, un 50-cloud-init.cfg
archivo sin configuración.
Si ya tiene el archivo /etc/network/interfaces.d/50-cloud-init.cfg
, puede seguirlo y actualizarlo, en lugar de crear uno nuevo. También suponga que todos los comandos se ejecutan a través de sudo su
.
Apague la instancia, desconecte los volúmenes e ingrese la misma configuración que antes. Adjunte el volumen de 8 GB como
/dev/sda1/
y su volumen de destino final como/dev/sdf/
. Inicie la instancia e inicie sesión.Monte
/dev/sdf
, que ahora debería sernvme1n1p1
haciendo lo siguiente:# mount /dev/nvme1n1p1 /mnt/ && mount -o bind /dev/ /mnt/dev && mount -o bind /sys /mnt/sys && mount -o bind /proc /mnt/proc
Cree o actualice el archivo:
/etc/network/interfaces.d/50-cloud-init.cfg
Con lo siguiente:
# This file is generated from information provided by # the datasource. Changes to it will not persist across an instance. # To disable cloud-init's network configuration capabilities, write a file # /etc/cloud/cloud.cfg.d/99-disable-network-config.cfg with the following: # network: {config: disabled} auto lo iface lo inet loopback auto ens5 iface ens5 inet dhcp
Salir
chroot
(exit
), cerrar la instancia (shutdown -h now
).¡Sigue el paso 9 de antes!
¡Deberías haber terminado!
Respuesta2
Gracias, la sugerencia para la configuración de red funcionó en el caso de actualización (Ubuntu 14.04 PV a Ubuntu 18.04 PV). Se convirtió Ubuntu 18.04 PV actualizado a Ubuntu 18.04 HVM con un ligero ajuste en la configuración de red. Creó un nuevo /etc/netplan/50-cloud-init.config con la siguiente configuración
network:
version: 2
ethernets:
all-en:
match:
name: "en*"
dhcp4: true
all-eth:
match:
name: "eth*"
dhcp4: true