Agregar Disco y Extender un Volúmen Lógico

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).

This entry was posted in Comandos Linux and tagged , , . Bookmark the permalink.

Deja una respuesta

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


*