Tamaños crecientes del volumen de Amazon EBS [cerrado]


154

Estoy bastante impresionado con los servicios EC2 y EBS de Amazon. Quería saber si es posible hacer crecer un Volumen EBS.

Por ejemplo: si tengo un volumen de 50 GB y empiezo a quedarme sin espacio, ¿puedo aumentarlo a 100 GB cuando sea necesario?


2
He escrito un tutorial para aumentar el tamaño de su volumen ebs en - aws-musings.com/how-to-expand-your-ebs-volume
Vaibhav Puranik el

8
Gran pregunta (+1). ¿Sin embargo, mejor para la falla del servidor?
Jonik

1
Vota esta respuesta, ya que está mucho más actualizada: stackoverflow.com/a/15229477/163461
David

1
@ Jonik, estoy totalmente de acuerdo. Para aquellos que pueden (y también están de acuerdo), voten para volver a abrir esta pregunta para que se pueda migrar. ¿A menos que alguna lectura mod pueda hacer lo mismo?
Yuck

Esto debe migrarse a Server Fault, si no es por otra razón que no sea para permitir respuestas más actuales (como una que hace referencia a la documentación de AWS sobre este tema en docs.aws.amazon.com/AWSEC2/latest/UserGuide/… )
Jeromy French

Respuestas:


9

Todas las excelentes recomendaciones, y pensé que agregaría este artículo que encontré, que se relaciona con la expansión de una instancia de Windows Amazon EC2 EBS usando las herramientas de Amazon Web UI para realizar los cambios necesarios. Si no se siente cómodo usando CLI, esto hará que su actualización sea mucho más fácil.

http://www.tekgoblin.com/2012/08/27/aws-guides-how-to-resize-a-ec2-windows-ebs-volume/

Gracias a TekGoblin por publicar este artículo.


103

Puede hacer crecer el almacenamiento, pero no se puede hacer sobre la marcha. Deberá tomar una instantánea del bloque actual, agregar un bloque nuevo y más grande y volver a adjuntar su instantánea.

Hay un sencillo tutorial aquí basado en el uso de herramientas de línea de comandos de Amazon EC2


2
También deberá cambiar el tamaño del sistema de archivos. Probablemente esté buscando "resize2fs - ext2 / ext3 / ext4 file system redizer".
James Moore

8
Solo tuve que buscar en Google esto. Golpeé esta pregunta y este video al mismo tiempo. Este es un paseo realmente genial, muchas gracias al creador: youtube.com/watch?v=ouYjQ3_I3BA (descubrí todo por mi cuenta, excepto el bit de cambio de tamaño, como mencionó James Moore)
Chris Allen Lane

También hay una manera de establecer el tamaño de volumen de EBS usando AWS-SDK consultando primero el tamaño de volumen de su instantánea como una de las flexibilidad en The Benefit usando EBS .
Chetabahana

En realidad, puede cambiar el tamaño de un volumen en vivo ahora desde la consola de AWS . Parece funcionar solo en instancias SSD (gp2, io1), e incluso puede cambiar de un tipo a otro. No estoy seguro de cuándo se agregó, pero esto resuelve un punto de dolor importante.
STRML

44

No puede simplemente 'aumentar' más espacio sobre la marcha si lo necesita, pero puede cambiar el tamaño de la partición con una instantánea.

Pasos para hacer esto:

  1. desmontar el volumen de ebs
  2. crear una instantánea de ebs
  3. agregue nuevo volumen con más espacio
  4. recrear la tabla de particiones y cambiar el tamaño del sistema de archivos
  5. montar el nuevo volumen ebs

Mire http://aws.amazon.com/ebs/ - Instantánea de EBS:

Las instantáneas también se pueden usar para crear instancias de múltiples volúmenes nuevos, expandir el tamaño de un volumen o mover volúmenes a través de zonas de disponibilidad. Cuando se crea un nuevo volumen, existe la opción de crearlo según una instantánea de Amazon S3 existente. En ese escenario, el nuevo volumen comienza como una réplica exacta del volumen original. Al especificar opcionalmente un tamaño de volumen diferente o una zona de disponibilidad diferente, esta funcionalidad se puede utilizar como una forma de aumentar el tamaño de un volumen existente o crear volúmenes duplicados en nuevas zonas de disponibilidad. Si elige usar instantáneas para cambiar el tamaño de su volumen, debe asegurarse de que su sistema de archivos o aplicación sea compatible con el cambio de tamaño de un dispositivo.


22

Seguí toda la respuesta, a todos les falta algo con todo respeto.

Si sigue estos pasos, puede aumentar su volumen de EBS y conservar sus datos (esto no es para el volumen raíz). Por simplicidad, sugiero usar el consulado de AWS para crear una instantánea ... también puede hacerlo usando las herramientas de línea de comandos de AWS.

No estamos tocando el volumen raíz aquí.

Pase a su consola AWS:

  1. Apague su instancia (será solo por unos minutos)
  2. Separe el volumen que planea crecer (digamos / dev / xvdf)
  3. Crea una instantánea del volumen.
  4. Cree un nuevo volumen con un tamaño más grande utilizando la instantánea que acaba de crear
  5. Adjunte el nuevo volumen a su instancia
  6. Comience su instancia

SSH a su instancia:

 $ sudo fdisk -l

Esto te da algo como:

Disk /dev/xvdf: 21.5 GB, 21474836480 bytes
12 heads, 7 sectors/track, 499321 cylinders, total 41943040 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0xd3a8abe4

    Device Boot      Start         End      Blocks   Id  System
/dev/xvdf1            2048    41943039    20970496   83  Linux

Anote los valores de inicio e identificación . (en este caso 2048 y 83)

Con fdisk, elimine la partición xvdf1 y cree una nueva que comience exactamente desde el mismo bloque (2048). Le daremos el mismo Id (83):

$ sudo fdisk /dev/xvdf 

Command (m for help): d
Selected partition 1

Command (m for help): n
Partition type:
   p   primary (0 primary, 0 extended, 4 free)
   e   extended
Select (default p): p
Partition number (1-4, default 1): 
Using default value 1
First sector (2048-41943039, default 2048): 
Using default value 2048
Last sector, +sectors or +size{K,M,G} (2048-41943039, default 41943039): 
Using default value 41943039

Command (m for help): t
Selected partition 1
Hex code (type L to list codes): 83

Command (m for help): w
The partition table has been altered!

Calling ioctl() to re-read partition table.
Syncing disks.

Este paso se explica bien aquí: http://litwol.com/content/fdisk-resizegrow-physical-partition-without-losing-data-linodecom

Casi hecho, solo tenemos que montar el volumen y ejecutar resize2fs:

Montar el volumen ebs: (el mío está en / mnt / ebs1)

$ sudo mount /dev/xvdf1 /mnt/ebs1

y redimensionarlo:

$ sudo resize2fs -p /dev/xvdf1

resize2fs 1.42 (29-Nov-2011)
Filesystem at /dev/xvdf1 is mounted on /mnt/ebs1; on-line resizing required
old_desc_blocks = 1, new_desc_blocks = 2
Performing an on-line resize of /dev/xvdf1 to 5242624 (4k) blocks.
The filesystem on /dev/xvdf1 is now 5242624 blocks long.

ubuntu@ip-xxxxxxx:~$ 

¡Hecho! Use df -hpara verificar el nuevo tamaño.



5

Ahora puede hacerlo a través de la consola de administración de AWS. El proceso es el mismo que en las otras respuestas, pero ya no necesita ir a la línea de comando.


77
¿Puedes publicar más información sobre cómo se hace esto a través de la consola web? La consola puede cambiar el tamaño del volumen, pero ¿cómo maneja el cambio de tamaño de la partición dentro del volumen, especialmente si es de un tipo como XFS, BRTFS, etc.?
Riyad Kalla

Esto debería haber sido un comentario, ya que solo aumenta las respuestas existentes y no agrega nada nuevo en sí mismo.
Yuck

1
Las instrucciones para usar la consola web están disponibles aquí: docs.aws.amazon.com/AWSEC2/latest/UserGuide/…
Dan Osipov

4

Por cierto: al igual que con los discos físicos, puede ser útil usar LVM; ex:

http://www.davelachapelle.ca/guides/ubuntu-lvm-guide/ http://www.centos.org/docs/5/html/Cluster_Logical_Volume_Manager/

Gran ventaja: permite agregar (o eliminar) espacio dinámicamente.

También se puede mover fácilmente entre / entre instancias.

Advertencias:

  • debe configurarse con anticipación
  • una configuración simple de JBOD significa que pierde todo si pierde un "disco"

4

Mis pasos

  1. detener la instancia
  2. encuentre el volumen ebs adjunto a la instancia y cree una instantánea de él
  3. cree un nuevo volumen con mayor espacio en disco utilizando la instantánea anterior. Desafortunadamente, la interfaz de usuario en la consola de aws para crear una instantánea es casi inutilizable porque enumera todas las instantáneas en aws. Usar la herramienta de línea de comandos es mucho más fácil, así:

    ec2-create-volume -s 100 --snapshot snap-a31fage -z us-east-1c
    
  4. separe el volumen ebs (más pequeño) existente de la instancia

  5. adjunte el nuevo volumen (más grande) a la instancia y asegúrese de adjuntarlo al mismo dispositivo que la instancia espera (en mi caso es / dev / sda1)
  6. iniciar la instancia

¡Estás listo!

Además del paso 3 anterior, puede hacer todo con la consola de administración aws.

También tenga en cuenta lo mencionado aquí:

/server/365605/how-do-i-access-the-attached-volume-in-amazon-ec2

el dispositivo en su instancia ec2 podría ser / dev / xv * mientras que la consola web aws le dice que es / dev / s *.


2
A partir de noviembre de 2013, puede seleccionar la instantánea recién creada y luego hacer clic en 'Crear volumen' en la parte superior de la página. Esto creará un volumen a partir de la instantánea, y puede evitar hacer el paso 3 anterior desde la línea de comandos.
Matt C

1
Una nota es que debe asegurarse de crear el volumen en la misma zona de disponibilidad que la instancia; de lo contrario, no podrá adjuntarlo.
codecowboy

3

Use el comando "diskpart" para el sistema operativo Windows, eche un vistazo aquí: use http://support.microsoft.com/kb/300415 Los siguientes son los pasos que seguí para un disco no root (disco básico no dinámico)

Una vez que haya tomado una instantánea, desmonte el antiguo volumen EBS (digamos 600GB) y cree un volumen EBS más grande (digamos 1TB) y monte este nuevo volumen EBS; deberá informar a Windows sobre el cambio de tamaño (de 600GB a 1TB). en el símbolo del sistema (ejecutar como administrador)

diskpart.exe

seleccionar disco = 9

seleccionar volumen = Z

ampliar

[mi disco 9, volumen etiquetado como Z, era un volumen de 1TB creado a partir de una instantánea ec2 de 600GB. Quería cambiar el tamaño de 600GB a 1TB y así podría seguir los pasos anteriores para hacerlo].


Funcionó muy bien para mi sistema Win Server 2003 R2 Datacenter. ¡Gracias por el consejo!
Jeff Hay

Gran publicación, me ayudó mucho!
user1326293

0

Recomiendo encarecidamente Logical Volume Manager (LVM) para todos los volúmenes EBS, si su sistema operativo lo admite. Las distribuciones de Linux generalmente lo hacen. Es genial por varias razones.

  1. El cambio de tamaño y el movimiento de los volúmenes lógicos se pueden hacer en vivo, por lo que, en lugar de la instantánea completa fuera de línea, que requiere tiempo de inactividad, puede agregar crear otro volumen EBS más grande, agregarlo al grupo LVM como un volumen físico (PV), mover el volumen lógico (LV), elimine el volumen físico anterior del grupo y elimine el volumen EBS anterior. Luego, simplemente cambia el tamaño del volumen lógico y cambia el tamaño del sistema de archivos en él. ¡Esto no requiere tiempo de inactividad en absoluto!

  2. Resume su almacenamiento de sus dispositivos 'físicos'. Mover particiones a través de dispositivos sin necesidad de tiempo de inactividad o cambios en los puntos de montaje / fstab es muy útil.

Sería bueno que Amazon hiciera posible cambiar el tamaño de los volúmenes de EBS sobre la marcha, pero con LVM no es tan necesario.


0

si su volumen raíz es el sistema de archivos xfs, entonces ejecute este comando xfs_growfs /


Esto necesita un poco más de detalles para ser considerado una respuesta completa y utilizable.
Yuck
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.