amazon-web-services – Reducción del tamaño del volumen de Amazon EBS

Pregunta:

He visto esta respuesta para el crecimiento de los volúmenes de EBS , pero me gustaría reducir una.

Las imágenes predeterminadas de Ubuntu Server son 15 GB, mientras que realmente necesito solo 2 GB como máximo (uso un volumen diferente para los datos). ¿Hay alguna forma de reducir el tamaño del volumen?

Respuesta:

Tenía la misma pregunta que tú, así que descubrí cómo hacerlo.

Primero, hice esto desde la ami respaldada por EBS de Ubuntu de 32 bits de la región de EE. UU.Este, otros sistemas operativos o imágenes pueden funcionar de manera diferente. Sin embargo, sospecho que debería estar bien, siempre que esté usando un sistema de archivos ext *. Puede que funcione en otros sistemas de archivos, pero tendrá que averiguar cómo cambiar su tamaño por su cuenta.

Los pasos son básicamente:

  1. Adjunte dos volúmenes a una instancia en ejecución, el primero en función de la instantánea que desea reducir y el segundo, un volumen en blanco con el nuevo tamaño al que desea reducir.

  2. Verifique el sistema de archivos del primer volumen y repare cualquier error.

  3. Reduzca el tamaño del sistema de archivos en el primer volumen para que sea tan grande como debe ser para contener los datos.

  4. Copie el sistema de archivos del primer volumen al segundo.

  5. Expanda el sistema de archivos en el segundo volumen a su tamaño máximo.

  6. Asegúrese de que todo se vea bien revisando el segundo volumen en busca de errores.

  7. Toma una instantánea del segundo volumen.

  8. Cree una imagen de máquina basada en la instantánea del segundo volumen que acaba de tomar.

Primero debe obtener información de la ami que desea reducir. En particular, necesita la ID del kernel y la ID del ramdisk, si corresponde (la imagen que encogí no tenía ramdisk). Toda esta información debe estar disponible en la consola de administración de aws, en la ventana AMI.

La ID del kernel se parece a kia-xxxxxxxx, y la ID de la instantánea se parece a snap-xxxxxxxx, y las ID de ramdisk se parecen a RIA-xxxxxxxx.

A continuación, inicie una instancia de Linux. Lancé una instancia de Ubuntu. Puede usar una instancia t1.micro si lo desea. No se necesita mucha energía para hacer estos próximos pasos.

Una vez que la máquina esté funcionando, adjunte la instantánea que anotó en el primer paso. En mi caso, lo adjunté a / dev / sdf

Luego, cree un nuevo volumen, que tenga el tamaño que desee. En mi caso, creé un volumen de 5GB, ya que ese es el tamaño al que quería reducirlo. No cree este nuevo volumen a partir de una instantánea. Necesitamos un nuevo volumen en blanco. A continuación, adjúntelo a la instancia en ejecución, en mi caso lo adjunté como / dev / sdg

Luego, ssh en la máquina pero no monte los volúmenes adjuntos.

En este punto, me equivoqué por el lado de la paranoia y opté por verificar el sistema de archivos en el gran volumen, solo para asegurarme de que no hubiera errores. Si está seguro de que no hay ninguno, puede omitir este paso:

$ sudo e2fsck -f /dev/sdf

A continuación, cambié el tamaño del sistema de archivos en el volumen grande para que fuera tan grande como los datos en el disco:

$ sudo resize2fs -M -p /dev/sdf

La -M lo encoge y la -p imprime el progreso.

El resize2fs debería decirle qué tan grande es el sistema de archivos encogido. En mi caso, me dio el tamaño en bloques de 4K.

Ahora copiamos el sistema de archivos encogido al nuevo disco. Vamos a copiar los datos en fragmentos de 16 MB, por lo que debemos averiguar cuántos fragmentos de 16 MB necesitamos copiar. Aquí es donde entra en juego el tamaño reducido del sistema de archivos.

En mi caso, el sistema de archivos reducido era un poco más de 1 GB, porque había instalado muchos otros programas en el sistema básico de Ubuntu antes de tomar una instantánea. Probablemente podría haberme salido con la suya simplemente copiando el tamaño del sistema de archivos redondeado a los 16 MB más cercanos, pero quería ir a lo seguro.

Por lo tanto, 128 veces fragmentos de 16 MB = 2 GB:

$ sudo dd if=/dev/sdf ibs=16M of=/dev/sdg obs=16M count=128

Copié en bloques de 16 MB porque con EBS, pagas por cada lectura y escritura, así que quería minimizar el número de ellos tanto como fuera posible. No sé si hacerlo de esta manera lo hizo, pero probablemente no dolió.

Luego, necesitamos cambiar el tamaño del sistema de archivos que acabamos de copiar en el nuevo volumen para que use todo el espacio disponible en el volumen.

$ sudo resize2fs -p /dev/sdg

Finalmente, compruébalo, para asegurarte de que todo esté bien:

$ sudo e2fsck -f /dev/sdg

Eso es todo lo que necesitamos hacer en esta máquina, aunque no estaría de más montar el nuevo volumen, solo como prueba. Sin embargo, este paso es casi con certeza opcional, ya que e2fsck debería haber detectado cualquier problema.

Ahora necesitamos tomar una instantánea del nuevo volumen y crear una AMI basada en él. Hemos terminado con la máquina, por lo que puede cancelarla si lo desea.

Asegúrese de que el volumen pequeño esté desmontado si lo montó y luego tome una instantánea. Nuevamente, puede hacer esto en la consola de administración.

El último paso requiere las herramientas de línea de comandos ec2.

EDITAR:

Dado que esta respuesta se publicó, la consola de AWS le permite simplemente hacer clic con el botón derecho en una instantánea y seleccionar Crear imagen a partir de instantánea. Aún necesitará seleccionar el Id. De kernel apropiado. Si no aparece en la lista, asegúrese de haber seleccionado la arquitectura adecuada.

Usamos la aplicación ec2-register para registrar una AMI basada en la instantánea que acaba de tomar, así que escriba el valor snap-xxxxxxxx de la instantánea que acaba de tomar.

Luego deberías usar un comando como:

ec2-register -C cert.pem -K sk.pem -n The_Name_of_Your_New_Image
-d Your_Description_of_This_New_AMI --kernel aki-xxxxxxxx
-b "/dev/sda1=snap-xxxxxxxx" --root-device-name /dev/sda1

Por supuesto, debe reemplazar la ID del kernel con la que anotó al principio y la ID de la instantánea con la que creó en el paso anterior. También debe apuntar a su clave secreta (llamada sk.pem) arriba, y su certificado x509 (llamado cert.pem). Por supuesto, puede elegir lo que desee para el nombre y la descripción.

Espero que esto ayude.

Leave a Comment

Your email address will not be published.

Scroll to Top

istanbul avukat

-

web tasarım