EC2 No se puede cambiar el tamaño del volumen después de aumentar el tamaño

95

He seguido los pasos para cambiar el tamaño de un volumen EC2

  1. Detuvo la instancia
  2. Tomó una instantánea del volumen actual
  3. Creó un nuevo volumen a partir de la instantánea anterior con un tamaño más grande en la misma región
  4. Se quitó el volumen anterior de la instancia.
  5. Adjuntó el nuevo volumen a la instancia en el mismo punto de montaje.

El volumen anterior era de 5 GB y el que creé es de 100 GB Ahora, cuando reinicio la instancia y la ejecuto, df -h Itodavía veo esto

Filesystem            Size  Used Avail Use% Mounted on
/dev/xvde1            4.7G  3.5G 1021M  78% /
tmpfs                 296M     0  296M   0% /dev/shm

Esto es lo que obtengo cuando corro

sudo resize2fs /dev/xvde1

The filesystem is already 1247037 blocks long.  Nothing to do!

Si corro cat /proc/partitionsveo

 202       64  104857600 xvde
 202       65    4988151 xvde1
 202       66     249007 xvde2

Por lo que entiendo, si he seguido los pasos correctos, xvde debería tener los mismos datos que xvde1 pero no sé cómo usarlo

¿Cómo puedo usar el nuevo volumen o desmontar xvde1 y montar xvde en su lugar?

No puedo entender lo que estoy haciendo mal

También lo intenté sudo ifs_growfs /dev/xvde1

xfs_growfs: /dev/xvde1 is not a mounted XFS filesystem

Por cierto, esta es una caja de Linux con centos 6.2 x86_64

Gracias de antemano por tu ayuda

Wilman Arambillete
fuente

Respuestas:

70

Gracias Wilman, sus comandos funcionaron correctamente, se deben considerar pequeñas mejoras si estamos aumentando EBS a tamaños más grandes

  1. Detén la instancia
  2. Crea una instantánea del volumen
  3. Cree un nuevo volumen basado en la instantánea aumentando el tamaño
  4. Verifique y recuerde el punto de montaje del volumen actual (es decir /dev/sda1)
  5. Separar el volumen actual
  6. Adjunte el volumen creado recientemente a la instancia, estableciendo el punto de montaje exacto
  7. Reinicia la instancia
  8. Accede vía SSH a la instancia y ejecuta fdisk /dev/xvde

    ADVERTENCIA: El modo compatible con DOS está obsoleto. Se recomienda encarecidamente apagar el modo (comando 'c') y cambiar las unidades de visualización a sectores (comando 'u')

  9. Presione ppara mostrar las particiones actuales

  10. Presione dpara eliminar las particiones actuales (si hay más de una, debe eliminar una a la vez) NOTA: No se preocupe, los datos no se pierden
  11. Presione npara crear una nueva partición
  12. Presiona ppara establecerlo como principal
  13. Presione 1para configurar el primer cilindro
  14. Configure el nuevo espacio deseado (si está vacío, todo el espacio está reservado)
  15. Presiona apara que sea de arranque
  16. Pulsa 1y wescribe cambios
  17. Reinicie la instancia O use partprobe(desde elparted paquete) para informar al kernel sobre la nueva tabla de particiones
  18. Inicie sesión a través de SSH y ejecute resize2fs / dev / xvde1
  19. Finalmente verifique el nuevo espacio que ejecuta df -h
DCF
fuente
1
"ADVERTENCIA: El modo compatible con DOS está en desuso. Se recomienda encarecidamente apagar el modo (comando 'c') y cambiar las unidades de visualización a sectores (comando 'u')" Esto no era necesario para mí (Ubuntu 13.04). Ya había desactivado la compatibilidad con DOS y usaba Sectors por defecto. Presionando cy urealmente cambió a los modos obsoletos.
wisbucky
6
La solución funcionó de maravilla, pero la instancia se bloqueó en "1/2 comprobaciones aprobadas" con un signo de exclamación (ReadHat 6.5). Para solucionar este problema, establecí el "primer cilindro" en 16 (como se hizo anteriormente). Después de eso, la instancia comenzó normalmente con "2/2 verificaciones pasadas". Espero que esto ayude a alguien ...
user3586516
1
Yo también tuve que cambiar el primer cilindro, pero tuve que cambiarlo a 2048. Recomendaría verificar la configuración actual de la partición antes de eliminarla.
Doyley
9
Después de reiniciar mi instancia, no puedo conectarme a través de SSH. Se agota el tiempo de conexión y la consola de AWS muestra que no puede iniciar sus Verificaciones de estado. Creo que está muerto. ¿Alguna idea de qué hacer?
Richard
5
Esta respuesta ahora está en desuso ahora que AWS admite el cambio de tamaño en línea para los volúmenes de EBS.
Dale Anderson
303

¡Ya no es necesario detener la instancia y desconectar el volumen de EBS para cambiar su tamaño!

13 de febrero de 2017 Amazon anunció: " Actualización de Amazon EBS: los nuevos volúmenes elásticos lo cambian todo "

¡El proceso funciona incluso si el volumen a extender es el volumen raíz de la instancia en ejecución!


Digamos que queremos aumentar la unidad de arranque de Ubuntu de 8G a 16G "sobre la marcha".

paso-1) inicie sesión en la consola web de AWS -> EBS -> haga clic con el botón derecho del mouse en el que desea cambiar de tamaño -> "Modificar volumen" -> cambie el campo "Tamaño" y haga clic en el botón [Modificar]

ingrese la descripción de la imagen aquí

ingrese la descripción de la imagen aquí

ingrese la descripción de la imagen aquí


paso-2) ssh en la instancia y cambie el tamaño de la partición:

enumeremos los dispositivos de bloque conectados a nuestra caja:
lsblk
NAME    MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
xvda    202:0    0  16G  0 disk
└─xvda1 202:1    0   8G  0 part /

Como puede ver, / dev / xvda1 sigue siendo una partición de 8 GiB en un dispositivo de 16 GiB y no hay otras particiones en el volumen. Usemos "growpart" para cambiar el tamaño de la partición 8G hasta 16G:

# install "cloud-guest-utils" if it is not installed already
apt install cloud-guest-utils

# resize partition
growpart /dev/xvda 1

Comprobemos el resultado (puede ver que / dev / xvda1 ahora es 16G):

lsblk
NAME    MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
xvda    202:0    0  16G  0 disk
└─xvda1 202:1    0  16G  0 part /

Muchas respuestas de SO sugieren usar fdisk con eliminar / recrear particiones, que es un proceso desagradable, riesgoso y propenso a errores, especialmente cuando cambiamos la unidad de arranque.


paso 3) cambiar el tamaño del sistema de archivos para que crezca hasta el final para utilizar completamente el nuevo espacio de partición
# Check before resizing ("Avail" shows 1.1G):
df -h
Filesystem      Size  Used Avail Use% Mounted on
/dev/xvda1      7.8G  6.3G  1.1G  86% /

# resize filesystem
resize2fs /dev/xvda1

# Check after resizing ("Avail" now shows 8.7G!-):
df -h
Filesystem      Size  Used Avail Use% Mounted on
/dev/xvda1       16G  6.3G  8.7G  42% /

Así que no tenemos tiempo de inactividad y tenemos mucho espacio nuevo para usar.
¡Disfrutar!

Actualización: Actualización: use sudo xfs_growfs / dev / xvda1 en lugar de resize2fs cuando el sistema de archivos XFS.

Dmitry Shevkoplyas
fuente
cambiar el tamaño de la partición fue de gran ayuda ... !! Lo más maravilloso fue que funcionó incluso para el volumen de la raíz.
piyushmandovra
4
¿Alguien aceptará esto como la respuesta correcta? Solo porque ... lo es.
eduardohl
Sólido, muchas gracias ... Estaba tan escéptico al realizar los pasos mencionados en las respuestas anteriores, pero esto fue tan genial ...
AAgg
4
Eh, los documentos oficiales no mencionan growpart, por lo que no pude hacer que esto funcionara antes. ¡Gracias!
Ibrahim
1
@Shihas, sí. Ese es todo el punto. Incluso la unidad de arranque montada en "raíz" se puede aumentar de forma segura sin necesidad de reiniciar.
Dmitry Shevkoplyas
42

Comentario de prefecto de jperelli arriba.

Hoy me enfrenté al mismo problema. La documentación de AWS no menciona claramente growpart. Me di cuenta de la manera difícil y, de hecho, los dos comandos funcionaron perfectamente en M4.large y M4.xlarge con Ubuntu

sudo growpart /dev/xvda 1
sudo resize2fs /dev/xvda1
Sachin Shintre
fuente
la segunda respuesta para adjuntar y esta respuesta es para cambiar el tamaño
Adiii
¡Asombroso! trabajó en mi instancia t2.small. Uf. Pensé que sería más sangriento que eso. ¡Gracias!
publicknowledge
Parece que no puedo instalar cloud-guest-utils que contiene growpart. Versión de Linux 3.16.0-4-amd64
nettie
15

[RESUELTO]

Esto es lo que había que hacer

  1. Detén la instancia
  2. Crea una instantánea del volumen
  3. Cree un nuevo volumen basado en la instantánea aumentando el tamaño
  4. Verifique y recuerde el punto de montaje del volumen actual (es decir, / dev / sda1)
  5. Separar el volumen actual
  6. Adjunte el volumen creado recientemente a la instancia, estableciendo el punto de montaje exacto
  7. Reinicia la instancia
  8. Accede vía SSH a la instancia y ejecuta fdisk /dev/xvde
  9. Presione ppara mostrar las particiones actuales
  10. Presione dpara eliminar las particiones actuales (si hay más de una, debe eliminar una a la vez) NOTA: No se preocupe, los datos no se pierden
  11. Presione npara crear una nueva partición
  12. Presiona ppara establecerlo como principal
  13. Presione 1para configurar el primer cilindro
  14. Configure el nuevo espacio deseado (si está vacío, todo el espacio está reservado)
  15. Presiona apara que sea de arranque
  16. Pulsa 1y wescribe cambios
  17. Reiniciar instancia
  18. Inicie sesión a través de SSH y ejecute resize2fs /dev/xvde1
  19. Finalmente verifique el nuevo espacio en ejecución df -h

Eso es todo

¡Buena suerte!

Wilman Arambillete
fuente
1
En los volúmenes de Amazon EBS, parece ser importante usar el mismo punto de montaje en resize2fs que usa con fdisk. df muestra algo como / dev / xvda1 como el volumen EBS adjunto, pero el comando resize2fs solo funcionó para mí cuando usé el identificador / dev / sdf1, que había usado cuando hice la nueva partición en fdisk.
Garreth McDaid
Esto está en la documentación de AWS. Lo que es malo es que sus procedimientos aún están incompletos después de 3 años de esto. Si tienes una imagen puedes retroceder, seguro. Siempre es posible colgar temporalmente el nuevo disco de una instancia que también ejecuta un escritorio, pero la necesidad de montarlo para cambiar el tamaño puede ser un problema si estaba pensando en usar gparted. gcloud cambia de tamaño sobre la marcha.
mckenzm
Mi dispositivo de almacenamiento (/ dev / xvda1) comenzó en el sector 16065, no en el sector 1. Así que el paso 13 (Presiona 1 para configurar el primer cilindro) tenía que ser 16065 en mi caso.
Simon Paarlberg
No vaya con esta solución, podría perder sus datos. En realidad, descubrí que no opte por la opción de eliminar partición si muestra los valores de la lista de particiones en la tabla de particiones, porque si la lista está allí, literalmente elimina la partición, por lo que los datos se perderán incluso si la respuesta dice "No lo hará Eliminar". Hay una manera de extender el tamaño de la partición, verifique en la parte inferior que hay otras utilidades que ayudarán a extender el tamaño de su partición sin problemas.
piyushmandovra
6
  1. inicie sesión en la consola web de AWS -> EBS -> haga clic con el botón derecho del mouse en el que desea cambiar de tamaño -> "Modificar volumen" -> cambie el campo "Tamaño" y haga clic en el botón [Modificar]

  2. growpart /dev/xvda 1

  3. resize2fs /dev/xvda1

Esta es una versión directa de la respuesta de Dmitry Shevkoplyas. La documentación de AWS no muestra el growpartcomando. Esto funciona bien para ubuntu AMI.

jperelli
fuente
6
  1. sudo growpart / dev / xvda 1
  2. sudo resize2fs / dev / xvda1

los dos comandos anteriores me ahorraron tiempo para las instancias de AWS ubuntu ec2.

HD298
fuente
5

Esto funcionará para el sistema de archivos xfs, simplemente ejecute este comando

xfs_growfs /
Saurabh Chandra Patel
fuente
haz mi día ... myWEEK!
Cristian Sepulveda
esto realmente funciona!
Corneliu Maftuleac
4

Por si acaso si alguien aquí para la plataforma en la nube de Google de GCP,
intente esto:

sudo growpart /dev/sdb 1
sudo resize2fs /dev/sdb1
Yunus
fuente
2

¿Hiciste una partición en este volumen? Si lo hizo, primero deberá hacer crecer la partición.

chantheman
fuente
No, no lo hice. ¿Debería? ¿Cómo hago eso? Recuerde que se supone que este nuevo volumen que he adjuntado tiene todos los datos anteriores porque es una instantánea del volumen original
Wilman Arambillete
No. Pero he recibido ese error si había una partición adjunta. Vaya y verifique que haya configurado el volumen del tamaño correcto y verifique que haya montado el nuevo volumen.
chantheman
Además, no tiene que detener la instancia para hacer esto. Es seguro hacerlo si tiene escrituras en ese volumen, pero puede realizar una instantánea con la instancia en ejecución.
chantheman
1

La bandera de arranque (a) no funcionó en mi caso (EC2, centos6.5), así que tuve que volver a crear el volumen a partir de la instantánea. Después de repetir todos los pasos EXCEPTO el indicador de arranque, todo funcionó perfectamente, así que pude cambiar el tamaño de 2fs después. ¡Gracias!

Sandr
fuente
1

Gracias, @Dimitry, funcionó de maravilla con un pequeño cambio para que coincida con mi sistema de archivos.

fuente: http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ebs-expand-volume.html#recognize-expanded-volume-linux

Luego use el siguiente comando, sustituyendo el punto de montaje del sistema de archivos (los sistemas de archivos XFS deben estar montados para cambiar su tamaño):

[ec2-user ~]$ sudo xfs_growfs -d /mnt
meta-data=/dev/xvdf              isize=256    agcount=4, agsize=65536 blks
         =                       sectsz=512   attr=2
data     =                       bsize=4096   blocks=262144, imaxpct=25
         =                       sunit=0      swidth=0 blks
naming   =version 2              bsize=4096   ascii-ci=0
log      =internal               bsize=4096   blocks=2560, version=2
         =                       sectsz=512   sunit=0 blks, lazy-count=1
realtime =none                   extsz=4096   blocks=0, rtextents=0
data blocks changed from 262144 to 26214400

Nota Si recibe un error xfsctl: No se puede asignar un error de memoria, es posible que deba actualizar el kernel de Linux en su instancia. Para obtener más información, consulte la documentación de su sistema operativo específico. Si recibe un El sistema de archivos ya tiene nnnnnnn bloques de largo. ¡Nada que hacer! error, consulte Expansión de una partición de Linux.

usuario2125117
fuente
0

No tengo suficiente representante para comentar arriba; pero también tenga en cuenta los comentarios anteriores que puede corromper su instancia si comienza en 1; si presiona 'u' después de iniciar fdisk antes de listar sus particiones con 'p', esto le dará el número de inicio correcto para que no corrompa sus volúmenes. Para centos 6.5 AMI, también como se mencionó anteriormente, 2048 fue correcto para mí.

Reece
fuente
0

Entonces, en caso de que alguien tuviera el problema en el que se encontró con este problema con un uso del 100% y sin espacio para ejecutar el comando growpart (porque crea un archivo en / tmp)

Aquí hay un comando que encontré que se omite incluso mientras se usa el volumen de EBS, y también si no tiene espacio en su ec2, y está al 100%

/sbin/parted ---pretend-input-tty /dev/xvda resizepart 1 yes 100%

vea este sitio aquí:

https://www.elastic.co/blog/autoresize-ebs-root-volume-on-aws-amis

CodeJunkie
fuente
Este comando debe ser seguido por sudo resize2fs /dev/xvda1para actualizar /etc/fstab, solo después de eso df -hse mostrará el espacio en disco aumentado
karmendra