Ampliación y reducción del los VGs
Otra operación que podemos hacer con LVM es aumentar el espacio de los discos virtuales, es decir, los VGs, y también reducirlo si fuese necesario. Los comandos que utilizaremos para ello son vgextend y vgreduce, cuya sintaxis básica es la siguiente:
# vgextend nombre_del_VG volumen_físico...
# vgreduce nombre_del_VG volumen_físico...
Veamos un ejemplo donde ampliamos el VG con un nuevo PV, concretamente con el dispositivo de bloques /dev/sdd que supuestamente lo hemos añadido con ese objetivo.
Comenzamos convirtiendo el dispositivo de bloques en un PV.
# lvmdiskscan
/dev/disco_virtual/web [ 152,00 MiB]
/dev/sda1 [ 9,31 GiB]
/dev/sda2 [ 702,00 MiB]
/dev/sdb [ 100,00 MiB] LVM physical volume
/dev/sdc [ 100,00 MiB] LVM physical volume
/dev/sdd [ 100,00 MiB]
/dev/sde1 [ 50,00 MiB] LVM physical volume
/dev/sde2 [ 49,00 MiB]
2 disks
3 partitions
2 LVM physical volume whole disks
1 LVM physical volume
# pvcreate /dev/sdd
Physical volume "/dev/sdd" successfully created
# lvmdiskscan
/dev/disco_virtual/web [ 152,00 MiB]
/dev/sda1 [ 9,31 GiB]
/dev/sda2 [ 702,00 MiB]
/dev/sdb [ 100,00 MiB] LVM physical volume
/dev/sdc [ 100,00 MiB] LVM physical volume
/dev/sdd [ 100,00 MiB] LVM physical volume
/dev/sde1 [ 50,00 MiB] LVM physical volume
/dev/sde2 [ 49,00 MiB]
1 disk
3 partitions
3 LVM physical volume whole disks
1 LVM physical volume
# vgs
VG #PV #LV #SN Attr VSize VFree
disco_virtual 3 1 0 wz--n- 240,00m 88,00m
# vgextend disco_virtual /dev/sdd
Volume group "disco_virtual" successfully extended
# vgs
VG #PV #LV #SN Attr VSize VFree
disco_virtual 4 1 0 wz--n- 336,00m 184,00m
Reducir un VG extrayéndole un PV es igual de fácil que añadirlo, solo que hay que tener la seguridad de que no contiene información, puede ser necesario mover su información a otro PV antes de actuar. Vamos a eliminar el PV que acabamos de añadir.
# vgdisplay -v disco_virtual
DEGRADED MODE. Incomplete RAID LVs will be processed.
Using volume group(s) on command line
Finding volume group "disco_virtual"
--- Volume group ---
VG Name disco_virtual
System ID
Format lvm2
Metadata Areas 4
Metadata Sequence No 3
VG Access read/write
VG Status resizable
MAX LV 0
Cur LV 1
Open LV 0
Max PV 0
Cur PV 4
Act PV 4
VG Size 336,00 MiB
PE Size 4,00 MiB
Total PE 84
Alloc PE / Size 38 / 152,00 MiB
Free PE / Size 46 / 184,00 MiB
VG UUID RFkcOE-qIrc-3s16-k9ie-iUlB-RRJu-gbuNki
--- Logical volume ---
LV Path /dev/disco_virtual/web
LV Name web
VG Name disco_virtual
LV UUID PaPk0H-0dSe-OZfm-hcm3-ymcN-LVbS-DUw1Fw
LV Write Access read/write
LV Creation host, time debian, 2024-01-14 22:27:26 +0100
LV Status available
# open 0
LV Size 152,00 MiB
Current LE 38
Segments 2
Allocation inherit
Read ahead sectors auto
- currently set to 256
Block device 254:0
--- Physical volumes ---
PV Name /dev/sdb
PV UUID mHsm57-0CKQ-fBt7-VecZ-hR01-7e8F-jVUwKz
PV Status allocatable
Total PE / Free PE 24 / 0
PV Name /dev/sdc
PV UUID Gtg7dE-k4YQ-nSgE-7KvZ-dbU2-Jrev-W1dBqf
PV Status allocatable
Total PE / Free PE 24 / 10
PV Name /dev/sde1
PV UUID 1H04tT-uiti-5obu-qO7r-DxUs-a6dd-DdnVuB
PV Status allocatable
Total PE / Free PE 12 / 12
PV Name /dev/sdd
PV UUID g3efnL-l0hJ-br48-KLAy-TmE2-jxnu-RnOy0B
PV Status allocatable
Total PE / Free PE 24 / 24
Vemos que /dev/sdd está completamente vacío, no se está usando, por lo tanto lo podemos extraer del VG.
# vgs
VG #PV #LV #SN Attr VSize VFree
disco_virtual 4 1 0 wz--n- 336,00m 184,00m
# vgreduce disco_virtual /dev/sdd
Removed "/dev/sdd" from volume group "disco_virtual"
# vgs
VG #PV #LV #SN Attr VSize VFree
disco_virtual 3 1 0 wz--n- 240,00m 88,00m
Es posible también, con la opción --all, eliminar de golpe todos los PVs que estén vacíos en un VG.
# vgreduce --all disco_virtual
Obra publicada con Licencia Creative Commons Reconocimiento 4.0