Saltar al contenido

¿Cómo puedo ampliar un volumen de EBS con particiones LVM?

6 minutos de lectura
0

Quiero ampliar mi volumen de Amazon Elastic Block Store (Amazon EBS) que tiene particiones LVM.

Breve descripción

Hay dos opciones para ampliar los volúmenes lógicos:

  1. Aumenta el tamaño del volumen de EBS existente.
  2. Agrega volúmenes de EBS adicionales a tu grupo de volúmenes y amplía el VG-LV.

Resolución

Opción 1: Aumentar el tamaño del volumen de EBS existente

Nota: Los cambios de tamaño de los volúmenes existentes suelen tener efecto en cuestión de segundos después de que el volumen entre en el estado de optimización. El rendimiento del volumen se ve afectado mientras se encuentra en el estado de optimización, pero no cae por debajo de la especificación de configuración de origen. En función de tu tipo de volumen, los cambios de rendimiento pueden tardar desde unos minutos hasta unas horas. Para obtener más información, consulta Supervisar el progreso de las modificaciones de volumen.

1.    Modifica el tamaño del volumen de EBS existente.

2.    Ejecuta el siguiente comando para instalar el paquete de la utilidad growpart:

$ sudo yum install cloud-utils-growpart

Nota: Utiliza el siguiente comando para instalar la utilidad growpart en sistemas basados en Debian o Ubuntu:

$ sudo apt install -y cloud-guest-utils

3.    Ejecuta el comando growpart para ampliar la partición.

$ sudo growpart /dev/xvdh 1
 CHANGED: disk=/dev/xvdh partition=1: start=2048 old: size=20971519,end=16777182 new: size=41940958,end=41943006

4.    Ejecuta el comando pvresize para cambiar el tamaño del PV. En el siguiente ejemplo, se amplía la partición /dev/xvdh1:

$ sudo pvresize /dev/xvdh1
Physical volume "/dev/xvdh1" changed
1 physical volume(s) resized or updated / 0 physical volume(s) not resized

Utiliza pvs opvdisplay para ver los detalles del volumen físico:

$ sudo pvs
PV         VG            Fmt  Attr PSize   PFree
 /dev/xvdh1 examplegroup1 lvm2 a--  <20.00g <13.00g

Utiliza vgs ovgdisplay para ver los detalles del grupo de volúmenes:

$ sudo vgs
 VG            #PV #LV #SN Attr   VSize   VFree
examplegroup1   1   1   0 wz--n- <20.00g <13.00g

5.    Ejecuta el comando lvextend para ampliar el volumen lógico:

$ sudo lvextend -L 19G /dev/examplegroup1/lvexample1

Nota: En el ejemplo anterior, 19G es el nuevo tamaño aumentado del LV. 19G no es el tamaño en el que se debe aumentar el LV.

Utiliza el comando lvs olvdisplay para ver los detalles del volumen lógico:

$ sudo lvs  LV        VG            Attr       LSize  Pool Origin Data%  Meta%  Move Log Cpy%Sync Convert
lvexample1 examplegroup1 -wi-a----- 19.00g

6.    Ejecuta el siguiente comando para ampliar el sistema de archivos:

Sistemas de archivos Ext2, Ext3 y Ext4:

$ sudo resize2fs /dev/examplegroup1/lvexample1

Sistemas de archivos XFS:

$ sudo xfs_growfs /dev/examplegroup1/lvexample1

Opción 2: Agrega volúmenes de EBS adicionales a tu grupo de volúmenes y amplía el VG-LV

1.    Crea otro volumen de EBS de 10 GB y, a continuación,adjunta el volumen a la instancia. Crea una partición en el dispositivo**/dev/xvdi** siguiendo el paso 3 de Crear volúmenes físicos en la partición de tu volumen de EBS. A continuación, ejecuta el comando pvcreate. En el siguiente ejemplo, el nombre del dispositivo de bloques del volumen es /dev/xvdi1.

$ sudo pvcreate /dev/xvdi1
Physical volume "/dev/xvdi1" successfully created

2.    Utiliza el comando vgextend para ampliar el grupo de volúmenes y agregar el nuevo volumen. El siguiente ejemplo amplía el grupo de volúmenes examplegroup1 para incluir el volumen /dev/xvdi1:

$ sudo vgextend examplegroup1 /dev/xvdi1
Volume group "examplegroup2" successfully extended

Para confirmar la extensión, ejecuta el comando vgs o vgdisplay. El siguiente ejemplo muestra que ahora hay dos PV en el grupo de volúmenes examplegroup1:

$ sudo vgs
  VG                       #PV #LV #SN Attr   VSize   VFree
examplegroup1            2   1   0 wz--n-  29.99g   20.99g

3.    Ejecuta el comando lvextend para ampliar el volumen lógico:

$ sudo lvextend -L 29G /dev/examplegroup1/lvexample1

Nota: En el ejemplo anterior, 29G es el nuevo tamaño aumentado del LV. 29G no es el tamaño en el que se debe aumentar el LV.

4.    Cambia el tamaño del sistema de archivos:

Sistemas de archivos Ext2, Ext3 y Ext4:

$ sudo resize2fs /dev/examplegroup1/lvexample1

Sistemas de archivos XFS:

$ sudo xfs_growfs /dev/examplegroup1/lvexample1

Ampliar un volumen segmentado

La segmentación es una técnica para distribuir datos en varios discos. Es posible que recibas un mensaje similar al siguiente al extender un volumen lógico:

$ pvcreate /dev/xvdd
Physical volume "/dev/xvdd" successfully created.

$ vgextend vg01 /dev/xvdd
Volume group "vg01" successfully extended

$ vgs
VG   #PV #LV #SN Attr   VSize   VFree
vg01   3   1   0 wz--n- <23.99g <13.99g

$ lvextend /dev/vg01/lv01 -L +10G
Using stripesize of last segment 128.00 KiB
Insufficient suitable allocatable extents for logical volume lv01: 1026 more required

El error anterior o errores similares se producen al extender un volumen lógico «segmentado» sin agregar un número suficiente de dispositivos para segmentar los datos.

Para evitar estos errores al extender un volumen segmentado, sigue estos pasos:

1.    Ejecuta el siguiente comando para identificar la cantidad de dispositivos en los que el LV distribuye los datos.

$ lvs -o+lv_layout,stripes
LV   VG   Attr       LSize  Pool Origin Data%  Meta%  Move Log Cpy%Sync Convert Layout     #Str
lv01 vg01 -wi-a----- 10.00g                                                     striped       2

2.    La columna #Str, o segmentación, representa la cantidad de dispositivos en los que se distribuyen los datos. En el ejemplo anterior, los datos se distribuyen en 2 dispositivos. Por lo tanto, necesitas agregar al menos 2 dispositivos (o dispositivos en múltiplos de 2) al vg para ampliar el LV. Como has agregado un dispositivo (en los pasos anteriores), agrega el segundo dispositivo e intenta ampliarlo de nuevo:

$ pvcreate /dev/xvde
Physical volume "/dev/xvde" successfully created.

$ vgextend vg01 /dev/xvde
Volume group "vg01" successfully extended

$ vgs
VG   #PV #LV #SN Attr   VSize  VFree
  vg01   4   1   0 wz--n- 31.98g 21.98g

$ lvextend /dev/vg01/lv01 -L +10G
Using stripesize of last segment 128.00 KiB
Size of logical volume vg01/lv01 changed from 10.00 GiB (2560 extents) to 20.00 GiB (5120 extents).
Logical volume vg01/lv01 successfully resized.

$ lvs -o+lv_layout,stripes
  LV   VG   Attr       LSize  Pool Origin Data%  Meta%  Move Log Cpy%Sync Convert Layout     #Str
lv01 vg01 -wi-a----- 20.00g                                                     striped       2
lv01 vg01 -wi-a----- 20.00g                                                     striped       2

El resultado del ejemplo anterior muestra que el comando lvextend se ha completado correctamente cuando se ha agregado el segundo dispositivo.

3.    Ejecuta el siguiente comando para cambiar el tamaño del sistema de archivos:

Sistemas de archivos Ext2, Ext3 y Ext4:

$ sudo resize2fs /dev/vg01/lv01

Sistemas de archivos XFS:

$ sudo xfs_growfs /dev/vg01/lv01
OFICIAL DE AWSActualizada hace 2 años