esto se puede hacer sin necesidad de crear un nuevo IAM y sin necesidad de iniciar una nueva instancia. Cuando está listo, el volumen raíz original permanece adjunto en/dev/sda1 (o donde fue originalmente montado./Dev/sda1 es el predeterminado para muchas AMI). El volumen raíz original no se montará en el sistema de archivos; deberá hacerlo usted mismo mediante el comando "montar".
La técnica requiere los núcleos recientes de Ubuntu, los que se ejecutan en sus versiones 10.04 y 10.10. Consulte alestic.com para obtener los ID de AMI más recientes para estas versiones de Ubuntu. Estos kernels recientes están configurados para arrancar desde cualquier dispositivo conectado cuya etiqueta de volumen sea "uec-rootfs". Si está ejecutando uno de estos núcleos, todo lo que necesita hacer es cambiar la etiqueta de volumen del volumen raíz actual (instancia-tienda) por otra cosa, cambie la etiqueta de volumen de la raíz nueva a uec-rootfs y luego reinicie. Si no está ejecutando uno de estos kernels, no puede usar esta técnica.
Aquí está el código. Poner esto en un archivo (reroot.sh) en la instancia:
#! /bin/bash
device=$1
# change the filesystem labels
e2label /dev/sda1 old-uec-rootfs
e2label $device uec-rootfs
Primero le fije el volumen EBS desea actuar como la nueva raíz de uno de los dispositivos disponibles /dev/sdf../dev /partido socialdemócrata. Esto puede hacerse con llamadas API EC2 directas, con EC2 Command Line API tools (ec2-attach-volume), o con una biblioteca como boto, o mediante la interfaz de usuario de AWS Management Console.
A continuación, ejecute el script reroot.sh como root, y proporcionar el dispositivo se ha instalado el nuevo volumen de la raíz de la siguiente manera:
sudo reroot.sh /dev/sdp
esto va a hacer el trabajo sucio.Luego simplemente reinicie:
sudo shutdown -r now
Viola.
Para probar esto, debe crear un volumen de EBS que sepa que arrancará correctamente. Me gusta hacer esto haciendo una instantánea del volumen raíz de las AMI respaldadas por EBS de las mencionadas AMI de Ubuntu. Desde esa instantánea puede crear un nuevo volumen de EBS de arranque en cualquier zona de disponibilidad. Asegúrese de que puede decir la diferencia entre el volumen raíz original de la instancia en ejecución y el nuevo volumen raíz EBS - antes de ejecutar el procedimiento reroot anterior se puede poner en un archivo "marcador" en el viejo volumen raíz:
cd
touch this-is-the-original-root-volume
Luego, cuando vuelva a iniciar y reinicie, si ese archivo existe en su directorio de inicio todavía se está ejecutando con el volumen raíz original. Si no está allí, entonces el reinicio y reinicio funcionó.
Éstos son dos casos ejemplo de uso de esta técnica, con explicaciones detalladas:
http://shlomoswidler.com/2011/02/play-chicken-with-spot-instances.html
http://shlomoswidler.com/2011/02/recapture-unused-ec2-minutes.html
+1 instrucciones agradable, aunque no creo que es lo que quiere el OP. – kdgregory
Muchas gracias por la respuesta integral. Eso es genial – Sug
Básicamente hicimos lo mismo, pero usamos rsync con excludes en lugar de dd, también funcionaba como un hechizo. Una cosa más de la que ocuparse (sé que es obvio, pero sucede una y otra vez): al crear su volumen de EBS, asegúrese de verificar que esté en la misma región que la instancia a la que desea adjuntarlo; -) –