LINUX

Cómo extender y cambiar el tamaño de la partición LVM en Linux

extender redimensionar lvm linux

El Administrador de volumen lógico (LVM) permite que el kernel de Linux administre unidades de disco grandes de manera efectiva. Esto permite a los usuarios crear particiones desde más de un disco y les permite ampliar el tamaño del sistema de archivos en línea en unos pocos segundos.

En este artículo, veremos cómo podemos extender y cambiar el tamaño de una partición LVM sin perder datos.

Si está utilizando LVM en su Linux, estos son los pasos para extender su partición LVM en línea sin pérdida de datos.

Nota: Estos comandos deben ejecutarse con root o usuario con privilegios sudo.

Escenario 1:

1) Extienda LVM usando el disco existente

En este escenario, tenemos una partición sin usar en el almacenamiento existente y queremos usarla para extender otra partición LVM.

una. Verifique los detalles de los grupos de volumen

Primero, usaremos el comando vgdisplay para ver el detalle de nuestros Grupos de Volumen (luego lo llamaremos VG).

# vgdisplay

Mostrar detalles del grupo de volumen

Podemos ver que hay 49,21 GB de tamaño libre.

Para ver más detalles de nuestro VG, podemos usar add -v parámetro al comando vgdisplay.

# vgdisplay -v

VG más detalles

B. Amplíe el almacenamiento

los /dev/vg_devmachine/data tiene 24,41 GB. Supongamos que queremos agregar 10 GB más a /data dividir. Para extender un volumen lógico, simplemente dígale al comando lvextend cuánto desea aumentar el tamaño (+10 abajo) con -L parámetro.

# lvextend -L+10G /dev/vg_devmachine/data

Ampliar LVM

Nota solo para RHEL 3: Necesitamos desmontar la partición antes de activar el cambio.

# unmount /dev/VolGroup00/LogVol00

Para este ejemplo, podemos desmontar /data partición escribiendo:

# unmount /dev/vg_devmachine/data

Entonces necesitamos activar el cambio. Usaremos el comando resize2fs. Este comando se utiliza para cambiar el tamaño del sistema de archivos ext2 / ext3 / ext4 en línea.

# resize2fs /dev/vg_devmachine/data

Nota: En RHEL 4, puede usar el comando ext2online para cambiar el tamaño de la partición.

# ext2online /dev/mapper/vg_devmachine-data

Pero en RHEL 5 anterior, el comando se reemplaza por el comando resize2fs.

Activar el cambio

Ahora para comprobarlo, corre vgdisplay -v de nuevo, y resalte el /dev/vg_devmachine/data.

Nueva pantalla VG después de extender

Ahora vemos que el tamaño de LV crece a 34,41 GB.

Si está utilizando RHEL 3, no olvide montar su partición nuevamente.

Escenario 2:

Amplíe el almacenamiento con un nuevo disco

En este escenario, hemos agregado un nuevo almacenamiento que es /dev/sdb con 100 GB de capacidad en el sistema Linux. Luego, queremos usarlo para extender la partición LVM existente. El comando para extender la partición LVM a otro disco sigue siendo el mismo. Pero cuando agregamos más almacenamiento físico al sistema, necesitamos hacer que el sistema operativo (Linux) sepa más al respecto.

una. Crea una partición física

Cuando agregamos un nuevo disco, necesitamos que sea reconocido por el sistema para realizar algunas operaciones. Hay algunas herramientas de partición en Internet como fdisk y parted. En este artículo, usaremos fdisk porque está disponible en la mayoría de las distribuciones de Linux. Lo primero que debe hacer es crear una nueva partición.

# fdisk /dev/sdb

Crear nueva partición

Prensa n para crear una nueva partición.

Crear nueva partición

Digamos que queremos crear 2 nuevas particiones. Prensa p y 1 para crear una nueva partición primaria. Ponga el tamaño como 50G.

Repita la operación para la segunda partición. Prensa p y 2 para crear la segunda partición primaria. Por el tamaño (en cuestión Último cilindro …), no es necesario que ingrese un valor, considerará el resto del espacio como el siguiente ejemplo

Especifica el tamaño

Una vez que haya terminado, confirme el cambio presionando w botón.

Comprometer el cambio

Ahora si lo hacemos fdisk -l, Veremos /dev/sdb1 y /dev/sdb2 aparece la partición.

Aparece una nueva partición

B. Crear volumen físico (PV) como base de LVM

Una vez que terminemos de crear la partición física, el siguiente paso es crear un Volumen físico (PV). PV se utiliza como anfitrión de LVM. Un disco físico se divide en uno o más volúmenes físicos (PV)

# pvcreate /dev/sdb1 /dev/sdb2

Crear PV

Si no encuentra ningún error, puede verificar el resultado usando el comando pvscan.

# pvscan

Escanear PV disponible

Ahora vemos aparecer dos PV vacíos. Vacío significa que el PV no pertenece a ningún grupo de volumen.

C. Amplíe el grupo de volumen (VG)

Los grupos de volúmenes lógicos (VG) se crean combinando uno o más PV. Ya tenemos un VG llamado vg_devmachine. Su capacidad es de 95,11 GB y 39,21 GB de espacio libre. Para extender vg_devmachine, podemos usar el comando vgextend.

# vgextend vg_devmachine /dev/sdb1

Ampliar grupo de volumen

Compruébelo a través de vgdisplay. Verá que el tamaño de vg_devmachine está aumentando.

D. Extiende la partición LVM

Ahora, en esta etapa, usaremos el mismo comando que el anterior. Digamos que queremos extender /home dividir. Añadiéndole más 30 GB.

Nuevamente lo comprobamos usando el comando lvdisplay primero para ver la capacidad actual.

# lvdisplay

Mostrar LV para / home

Para agregar más 30G en /home partición, necesitamos extender la partición:

# lvextend -L+30G /dev/vg_devmachine/home

Ampliar / partición de inicio

Entonces necesitamos activar el cambio para que surta efecto:

# resize2fs /dev/vg_devmachine/home

Activar el cambio

Cómo cambiar el tamaño / encoger LVM

Antes de reducir el volumen, asegúrese de haber realizado la copia de seguridad del punto de montaje. La reducción del volumen tiene la posibilidad de dañar los datos. Para reducir el tamaño de un volumen lógico, primero desmonte el sistema de archivos. A continuación, puede utilizar el comando lvreduce para reducir el volumen. Después de reducir el volumen, vuelva a montar el sistema de archivos. El ejemplo dado en esta publicación se aplica a centos 7.

En nuestro ejemplo, el volumen lógico llamado /dev/vg-01/lv_stripe tiene un tamaño de 1 Gb. Queremos reducir el tamaño de LV a 800 MB. Anote los siguientes puntos antes de continuar con la reducción del sistema de archivos.

  • Asegúrese de que el uso actual del disco del sistema de archivos sea menor que el tamaño al que va a reducir el volumen lógico.
  • Realice siempre una copia de seguridad de los datos del sistema de archivos antes de realizar cualquier cambio de tamaño en LVM, ya que un simple error en el comando puede provocar la corrupción del sistema de archivos y, por lo tanto, la pérdida de datos.

Para reducir el tamaño de LV a 800 MB, debemos seguir los pasos a continuación.

  • Desmontar el sistema de archivos (si su volumen raíz requiere arrancar en un Live CD para completar el trabajo)
  • Use el comando fsck para verificar el sistema de archivos antes de cambiar su tamaño.
  • Cambie el tamaño del sistema de archivos a 800 MB antes de reducir el tamaño de LV
  • Reduzca el tamaño del volumen lógico 800 MB.
  • Monte el sistema de archivos

Ahora, podemos pasar por cada paso mencionado anteriormente.

1) Desmontaje del sistema de archivos

En el siguiente ejemplo, tenemos un volumen lógico /dev/vg-01/lv_stripe montado en el punto de montaje./mnt/lv_stripe Podemos comprobar si el volumen está montado con df -hP mando

# df -hP 
Filesystem                    Size  Used Avail Use% Mounted on
/dev/mapper/centos-root        18G  5.2G   13G  30% /
devtmpfs                      897M     0  897M   0% /dev
tmpfs                         912M  156K  912M   1% /dev/shm
tmpfs                         912M  9.0M  903M   1% /run
tmpfs                         912M     0  912M   0% /sys/fs/cgroup
/dev/sda1                     497M  189M  309M  38% /boot
tmpfs                         183M   24K  183M   1% /run/user/1000
/dev/mapper/vg--01-lv_stripe 1008M   55M  902M   6% /mnt/lv_stripe

Puede ver la última línea, el volumen lógico está montado. Antes de ejecutar fsck en el sistema de archivos, debe desmontarse. Puedes desmontar el sistema de archivos /mnt/lv_stripe como sigue.

# umount /mnt/lv_stripe

Verifique con el comando df

# df -hP 
Filesystem                    Size  Used Avail Use% Mounted on
/dev/mapper/centos-root        18G  5.2G   13G  30% /
devtmpfs                      897M     0  897M   0% /dev
tmpfs                         912M  156K  912M   1% /dev/shm
tmpfs                         912M  9.0M  903M   1% /run
tmpfs                         912M     0  912M   0% /sys/fs/cgroup
/dev/sda1                     497M  189M  309M  38% /boot
tmpfs                         183M   24K  183M   1% /run/user/1000

2) Realización de la verificación del sistema de archivos

Antes de continuar con la reducción del sistema de archivos, se debe ejecutar el comando fsck para evitar inconsistencias en los datos del sistema de archivos. Forzaremos la comprobación incluso si el sistema de archivos parece limpio con -f opción. Esto puede hacerse de la siguiente manera.

# e2fsck -f /dev/vg-01/lv_stripe 
e2fsck 1.42.9 (28-Dec-2013)
Pass 1: Checking inodes, blocks, and sizes
Pass 2: Checking directory structure
Pass 3: Checking directory connectivity
Pass 4: Checking reference counts
Pass 5: Checking group summary information
/dev/vg-01/lv_stripe: 14/65536 files (7.1% non-contiguous), 18146/262144 blocks

Esta operación debe pasar cada 5 pasos de verificación del sistema de archivos, de lo contrario, podría haber algún problema con su sistema de archivos.

Nota: fsck.ext4 ahora se recomienda para las nuevas versiones de Ubuntu, ya que usa el sistema de archivos ext4 de forma predeterminada.

3) Cambiar el tamaño del sistema de archivos

Antes de reducir el tamaño del volumen lógico, necesitamos reducir el sistema de archivos en él. El comando resize2fs se puede utilizar para esto de la siguiente manera. Reduciremos el sistema de archivos a 800 MB. Usaremos -p opción para imprimir una barra de porcentaje de finalización para cada operación resize2fs durante un cambio de tamaño fuera de línea.

# resize2fs -p /dev/vg-01/lv_stripe 800M
resize2fs 1.42.9 (28-Dec-2013)
Resizing the filesystem on /dev/vg-01/lv_stripe to 204800 (4k) blocks.
Begin pass 3 (max = 8)
Scanning inode table XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
The filesystem on /dev/vg-01/lv_stripe is now 204800 blocks long.

4) Reducir el tamaño de LV

Después de reducir el sistema de archivos residente, podemos proceder con la reducción de LV de la siguiente manera.

# lvreduce -L 800M /dev/vg-01/lv_stripe 
  WARNING: Reducing active logical volume to 800.00 MiB
  THIS MAY DESTROY YOUR DATA (filesystem etc.)
Do you really want to reduce lv_stripe? [y/n]: y
  Size of logical volume vg-01/lv_stripe changed from 1.00 GiB (256 extents) to 800.00 MiB (200 extents).
  Logical volume lv_stripe successfully resized.

Esto reducirá el tamaño del volumen lógico a 800 MB. Tenga en cuenta que al cambiar el tamaño del volumen lógico, utilice el tamaño exacto (800 MB). Podemos comprobar el nuevo tamaño del volumen lógico.

# lvdisplay /dev/vg-01/lv_stripe 
 --- Logical volume ---
 LV Path /dev/vg-01/lv_stripe
 LV Name lv_stripe
 VG Name vg-01
 LV UUID moX8R0-ME2Q-UFHd-HLIP-rmij-SmTm-3Zupem
 LV Write Access read/write
 LV Creation host, time centos7-srv, 2017-05-01 16:02:21 +0100
 LV Status available
 # open 0
 LV Size 800.00 MiB
 Current LE 200
 Segments 1
 Allocation inherit
 Read ahead sectors auto
 - currently set to 8192
 Block device 253:3

Puedes ver el LV Size 800.00 Mib línea que indica el nuevo tamaño. También puede montar el sistema de archivos y verificarlo usando el comando df -Ph mando

# mount /dev/vg-01/lv_stripe /mnt/lv_stripe/
# df -Ph
Filesystem                    Size  Used Avail Use% Mounted on
/dev/mapper/centos-root        18G  5.2G   13G  30% /
devtmpfs                      897M     0  897M   0% /dev
tmpfs                         912M  156K  912M   1% /dev/shm
tmpfs                         912M  9.0M  903M   1% /run
tmpfs                         912M     0  912M   0% /sys/fs/cgroup
/dev/sda1                     497M  189M  309M  38% /boot
tmpfs                         183M   20K  183M   1% /run/user/1000
/dev/mapper/vg--01-lv_linear  9.7G  3.2M  9.2G   1% /mnt/lv_linear
/dev/mapper/vg--01-lv_mirror  992M  2.8M  938M   1% /mnt/lv_mirror
/dev/mapper/vg--01-lv_stripe  786M   55M  692M   8% /mnt/lv_stripe

Tenga en cuenta que cambiamos el tamaño del sistema de archivos con el comando resize2fs antes de reducir el volumen lógico con el comando lvreduce. Resize2fs hace que el sistema de archivos use solo los primeros bytes de tamaño del almacenamiento. Lo hace moviendo tanto los metadatos del sistema de archivos como sus datos. Una vez que se complete, habrá almacenamiento no utilizado al final del dispositivo de bloque (volumen lógico), no utilizado por el sistema de archivos. Los comandos lvextend y lvreduce cambian el tamaño del volumen lógico. Además, pueden cambiar el tamaño del sistema de archivos si se les da la -r opción que llama a resize2fs por usted, que probablemente sea el camino correcto, especialmente con la reducción. Dar accidentalmente el tamaño incorrecto a lvreduce es una forma lamentablemente fácil de perder datos; -r previene esto (asegurándose de que resize2fs tenga el mismo tamaño).

Entonces puede omitir el paso resize2fs usando directamente lvreduce con -r opción. Por ejemplo, reduciremos nuestro volumen lógico siguiendo los pasos anteriores sin el paso resize2fs y terminando con lvreduce -r comando de la siguiente manera:

# umount /mnt/lv_stripe/
# e2fsck -f /dev/vg-01/lv_stripe 
e2fsck 1.42.9 (28-Dec-2013)
Pass 1: Checking inodes, blocks, and sizes
Pass 2: Checking directory structure
Pass 3: Checking directory connectivity
Pass 4: Checking reference counts
Pass 5: Checking group summary information
/dev/vg-01/lv_stripe: 14/57344 files (7.1% non-contiguous), 17567/204800 blocks
# lvreduce -r -L 500M /dev/vg-01/lv_stripe
  Rounding size (125 extents) up to stripe boundary size for segment (126 extents)
fsck from util-linux 2.23.2
/dev/mapper/vg--01-lv_stripe: clean, 14/57344 files, 17567/204800 blocks
resize2fs 1.42.9 (28-Dec-2013)
Resizing the filesystem on /dev/mapper/vg--01-lv_stripe to 129024 (4k) blocks.
The filesystem on /dev/mapper/vg--01-lv_stripe is now 129024 blocks long.

  Size of logical volume vg-01/lv_stripe changed from 800.00 MiB (200 extents) to 504.00 MiB (126 extents).
  Logical volume lv_stripe successfully resized.

Ahora revisemos el nuevo tamaño de nuestro volumen lógico.

# lvdisplay /dev/vg-01/lv_stripe | grep "Size"
 LV Size 504.00 MiB

Puedes ver un nuevo tamaño. No necesitamos cambiar el tamaño del sistema de archivos.

Conclusión

Al usar la partición LVM, le brinda la flexibilidad sobre su almacenamiento. Cuando su partición actual se está quedando sin espacio, puede cambiar fácilmente el tamaño de la partición sobre la marcha. Observa que no necesitamos desmontar la partición para extender lvm y solo se requiere desmontar cuando necesita reducir el tamaño de lvm. Una desventaja es que si el disco físico tiene un problema, afectará a los grupos de volúmenes y a todas las particiones LVM creadas.

Related Read: How to Configure LVM in Linux (pvcreate, lvcreate, vgcreate)

Publicaciones relacionadas

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Botón volver arriba
Cerrar