Cuando crear un volúmen lógico en tu servidor o sistema Linux la idea es que puedas ampliar de forma sencilla el espacio disponible en tu punto de montaje cuando lo necesites. La idea principal es que teniendo un punto de montaje operando puedes agregar disco(s) a tu servidor y puedas asignarlo mediante LVM.
Para agregar disco y extender un volúmen lógico o LVM a un sistema solo tienes que conectar o agregar un disco nuevo y asignarlo al volume group para tener ese nuevo espacio como disponible en ese Volume Group y poder ampliar el volúmen lógico. Para lograrlo sigue estos pasos:
1. Agrega un o varios discos: Agrega a tu sistema Linux los discos que desees para aumentar el espacio, los discos lo debe detectar tu servidor y los debe poder identificar con el comando lsblk, si tuvieras algun problema para detectarlo puedes ver este post para mas detalles.
lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
fd0 2:0 1 4K 0 disk
loop0 7:0 0 105.4M 1 loop /snap/core/16574
loop1 7:1 0 104M 1 loop /snap/core/16928
sda 8:0 0 25G 0 disk
├─sda1 8:1 0 1M 0 part
└─sda2 8:2 0 25G 0 part /
sdb 8:16 0 1.5T 0 disk
└─sdb1 8:17 0 1.5T 0 part
└─vg--data-lv--data 253:0 0 1T 0 lvm /data01
sdc 8:32 0 1.5T 0 disk
sdd 8:48 0 1.5T 0 disk
sr0 11:0 1 1024M 0 rom
2. Crear la partición del nuevo disco: En el disco nuevo que identifiques con el comando lsblk debes crear una patición con el comando fdisk.
fdisk /dev/sdc
Welcome to fdisk (util-linux 2.31.1).
Changes will remain in memory only, until you decide to write them.
Be careful before using the write command.
Device does not contain a recognized partition table.
Created a new DOS disklabel with disk identifier 0x778e923e.
Command (m for help): n
Partition type
p primary (0 primary, 0 extended, 4 free)
e extended (container for logical partitions)
Select (default p): p
Partition number (1-4, default 1): 1
First sector (2048-3221225471, default 2048):
Last sector, +sectors or +size{K,M,G,T,P} (2048-3221225471, default 3221225471):
Created a new partition 1 of type 'Linux' and of size 1.5 TiB.
Command (m for help): p
Disk /dev/sdc: 1.5 TiB, 1649267441664 bytes, 3221225472 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
Disklabel type: dos
Disk identifier: 0x778e923e
Device Boot Start End Sectors Size Id Type
/dev/sdc1 2048 3221225471 3221223424 1.5T 83 Linux
Command (m for help): w
The partition table has been altered.
Calling ioctl() to re-read partition table.
Syncing disks.
3. Crear el phisical volume en la particion: En el disco que ha sido particionado debes asignarlo como un physical volume mediante el comando pvcreate:
pvcreate /dev/sdc1
Physical volume "/dev/sdc1" successfully created.
4. Se extiende el Volume Group con el nuevo disco: Con el nuevo disco ya con el formato adecuado (physical volume) se debe hacer al disco parte del grupo de volúmenes. Para hacerlo debe extender el volume group con el siguiente comando:
vgextend vg-data /dev/sdc1
Volume group "vg-data" successfully extended
Al listar los detalles del volume group podras ver que aumentó su tamañó, en este ejemplo de 1.5 TB a 3 TB y que ternia 512 GB libreas a tener
vgdisplay vg-data
--- Volume group ---
VG Name vg-data
System ID
Format lvm2
Metadata Areas 2
Metadata Sequence No 3
VG Access read/write
VG Status resizable
MAX LV 0
Cur LV 1
Open LV 1
Max PV 0
Cur PV 2
Act PV 2
VG Size <3.00 TiB
PE Size 4.00 MiB
Total PE 786430
Alloc PE / Size 262144 / 1.00 TiB
Free PE / Size 524286 / <2.00 TiB
VG UUID 33Aqdr-yLav-Da76-umDJ-JNc3-tohc-VMX4RZ
5. Extender el Logical Volume: Cuando se tiene espacio disponible en el Volume Grup se procede a extender el volumen lógico, que es como extender la partición en un sistema de archivos tradicional con particiones.
El volumen lógico permite crecer de forma más sencilla, por ejemplo de 1TB a 2 TB con el parámetro -L que permite incrementos en M (megas), G (gigas), o T (teras), por ejemplo:
-L+120G : incrementa 120 Gigas al volumen si el actual fuera de 100 GB aumentaría a 220 GB
-L120G : Aumenta el volumen del tamaño indicado, un volumen de 100GB aumentaría a 120 GB
Hay otra opcion para aumentar el tamaño de un volumen lógico con un porcentaje de espacio mediante el parametro -l y puedes indicar el espacio en pocenajes:
-l +50%FREE : aumenta el tamaño del volumen con el 50% del espacio libre
-l +100%FRE : aumenta el espacio del volumen lógivo con el 100% del espacio libre.
Para est ejemplo usaremos el incremento del espacío en un TB
lvextend -L +1T /dev/vg-data/lv-data
Size of logical volume vg-data/lv-data changed from 1.00 TiB (262144 extents) to 2.00 TiB (524288 extents).
Logical volume vg-data/lv-data successfully resized.
Si ves los detalles del volúmen lógico antes y despues, podras observar el cambio aquí las salidas de texto. Antes del incremento:
lvdisplay
--- Logical volume ---
LV Path /dev/vg-data/lv-data
LV Name lv-data
VG Name vg-data
LV UUID Hqonzn-JpAI-FyQG-2qI8-gNtn-IW9Y-1Mks4p
LV Write Access read/write
LV Creation host, time avt-nxt-cloud01, 2024-05-05 01:41:22 +0000
LV Status available
# open 1
LV Size 1.00 TiB
Current LE 262144
Segments 1
Allocation inherit
Read ahead sectors auto
- currently set to 256
Block device 253:0
Después del incremento:
lvdisplay
--- Logical volume ---
LV Path /dev/vg-data/lv-data
LV Name lv-data
VG Name vg-data
LV UUID Hqonzn-JpAI-FyQG-2qI8-gNtn-IW9Y-1Mks4p
LV Write Access read/write
LV Creation host, time avt-nxt-cloud01, 2024-05-05 01:41:22 +0000
LV Status available
# open 1
LV Size 2.00 TiB
Current LE 524288
Segments 2
Allocation inherit
Read ahead sectors auto
- currently set to 256
Block device 253:0
6. Extender el systema de archivos: Cuando se tiene espacio disponible en el Logical Volume se procede a extender el sistema de archivo, en este caso como es un ext4, pues se realiza con el comando resize2fs. Pero primero veamos como está el sistema de archivos del ejemplo antes de ampliarlo.
df -h /dev/mapper/vg--data-lv--data
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/vg--data-lv--data 1007G 28K 956G 1% /data01
Ahora ejecutemos el comando para ampliar el sistema de archivos con el espacio libre el volúmen lógico.
resize2fs /dev/mapper/vg--data-lv--data
resize2fs 1.44.1 (24-Mar-2018)
Filesystem at /dev/mapper/vg--data-lv--data is mounted on /data01; on-line resizing required
old_desc_blocks = 128, new_desc_blocks = 256
The filesystem on /dev/mapper/vg--data-lv--data is now 536870912 (4k) blocks long.
Aqui el sistema de archivos despues de ampliar al tamaño del volúmen lógico.
df -h /dev/mapper/vg--data-lv--data
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/vg--data-lv--data 2.0T 28K 1.9T 1% /data01
Así es como puedes aumentar el espacio en un disco al agregar un nuevo disco a un Volume Group, una de las características más útiles de gestionar el espacio en disco mediante LVM (Logical Volume Manager).