Volúmenes lógicos (LVM) Crear, modificar VG y LV

 

LVM es mucho más flexible, permitiendo añadir espacio adicional a volúmenes ya creados de manera transparente y simple.

Pasamos a ver los conceptos para entender la base del sistema.

Estructura LVM

Para que todo funcione es necesario instalar el paquete lvm10 o lvm2, recomiendo la versión 2 aunque la mayoría de distribuciones todavía mantengan la versión 1. Hay que asegurarse de que haya un script en el arranque para poner el marcha LVM.

Lo primero de todo es hacer las particiones, puede hacerse con cfdisk. Si se usa una versión anterior a la 2 de LVM, es obligatorio definir el tipo como Linux LVM.

Hay que destacar que la partición que contenga /boot no podrá formar parte de un volumen lógico, los cargadores de arranque no suelen soportarlo. En nuestro caso se trata de hda1.

Buscamos el nuevo disco

Si hemos agregado un disco hace poco podemos ver el device que ha sido generado con un fdisk -l. En mi caso he agregado un disco de 43Gb de mi VMWare a la maquina;

root@http:~# fdisk -l
Disc /dev/sdb: 42.9 GB, 42949672960 octets
255 heads, 63 sectors/track, 5221 cylinders
Units = cilindres of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00000000

Damos soporte para LVM a las otras dos particiones, este paso borrará TODOS los datos existentes.

root@http:~# pvcreate /dev/sdb
Physical volume “/dev/sdb” successfully created

Ahora creamos el VolumGroup que contendra tantos VolumGroup como queramos.

root@http:~# vgcreate VolumGroup2 /dev/sdb
Volume group “VolumGroup2” successfully created

Vamos a ver el resultado con vgdisplay:

root@http:~# vgdisplay
— Volume group —
VG Name VolumGroup2
System ID
Format lvm2
Metadata Areas 1
Metadata Sequence No 1
VG Access read/write
VG Status resizable
MAX LV 0
Cur LV 0
Open LV 0
Max PV 0
Cur PV 1
Act PV 1
VG Size 40,00 GiB
PE Size 4,00 MiB
Total PE 10239
Alloc PE / Size 0 / 0
Free PE / Size 10239 / 40,00 GiB
VG UUID 0er3jx-M6p7-qsDC-WiHM-Qem3-n3R6-0xqhsK

Vamos a crear los volúmenes lógicos. Crearemos 2. Uno de 5, otro de 30 y dejaremos 5 libres para poder ampliar

root@http:~# lvcreate -L5,00G -n LV5GB VolumGroup2
Logical volume “LV5GB” created
root@http:~# lvcreate -L30,00G -n LV30GB VolumGroup2
Logical volume “LV30GB” created

El parámetro -L es lo “large” que es el disco. Vamos, el tamaño que queremos de LV. El parametro -n define el nombre del LV

Vamos a ver el resultado con LVDISPLAY

root@http:~# lvdisplay VolumGroup2
— Logical volume —
LV Name /dev/VolumGroup2/LV5GB
VG Name VolumGroup2
LV UUID YAKkwE-tYrp-O233-3r1B-YzNi-cOn2-dE6FQT
LV Write Access read/write
LV Status available
# open 0
LV Size 5,00 GiB
Current LE 1280
Segments 1
Allocation inherit
Read ahead sectors auto
– currently set to 256
Block device 254:6

— Logical volume —
LV Name /dev/VolumGroup2/LV30GB
VG Name VolumGroup2
LV UUID gJTafK-o0Al-pDNt-UIXJ-nUtp-YAkx-oZgNz3
LV Write Access read/write
LV Status available
# open 0
LV Size 30,00 GiB
Current LE 7680
Segments 1
Allocation inherit
Read ahead sectors auto
– currently set to 256
Block device 254:7

Vamos a darle formato con mkfs. Podemos realizar distintos formatos, XFS, EXT3 etc..

root@http:~# mkfs.ext3 /dev/VolumGroup2/LV30GB
mke2fs 1.41.12 (17-May-2010)
Etiqueta del sistema de fitxers=
Tipus de sistema operatiu: Linux
Mida del bloc=4096 (log=2)
Mida del fragment=4096 (log=2)
Stride=0 blocks, Stripe width=0 blocks
1966080 nodes-i, 7864320 blocs
393216 blocs (5.00%) reservats per al superusuari
Bloc de dades inicial=0
MÃ xim de blocs del sistema de fitxers=0
240 grups de blocs
32768 blocs per grup, 32768 fragments per grup
8192 nodes-i per grup
Còpies de seguretat del superbloc desades en els blocs:
32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208,
4096000
Escriptura de les taules de nodes-i: 30/240
fet
Creació del registre de transaccions (32768 blocs): fet
Escriptura de la informació dels súperblocs i de comptabilitat del sistema de fitxers:fet


Agregar en fstab

Ahora solo queda agregar el disco en el fstab para que lo monte cada vez que arranque el sistema

/dev/VolumGroup2/LV30GB /backup ext3 defaults 0 0

El resultado final

 

root@http:~# df -h
S. fitxers Mida En ús Lliure %Ãs Muntat a
/dev/mapper/pont-root 322M 107M 199M 35% /
tmpfs 125M 0 125M 0% /lib/init/rw
udev 120M 120K 120M 1% /dev
tmpfs 125M 0 125M 0% /dev/shm
/dev/sda1 228M 15M 202M 7% /boot
/dev/mapper/pont-home 2,7G 78M 2,5G 3% /home
/dev/mapper/pont-tmp 225M 6,1M 208M 3% /tmp
/dev/mapper/pont-usr 2,7G 495M 2,1G 20% /usr
/dev/mapper/pont-var 1,4G 935M 337M 74% /var
/dev/mapper/VolumGroup2-LV30GB 30G 173M 28G 1% /backup

root@http:~# vgdisplay
— Volume group —
VG Name VolumGroup2
System ID
Format lvm2
Metadata Areas 1
Metadata Sequence No 3
VG Access read/write
VG Status resizable
MAX LV 0
Cur LV 2
Open LV 1
Max PV 0
Cur PV 1
Act PV 1
VG Size 40,00 GiB
PE Size 4,00 MiB
Total PE 10239
Alloc PE / Size 8960 / 35,00 GiB
Free PE / Size 1279 / 5,00 GiB
VG UUID 0er3jx-M6p7-qsDC-WiHM-Qem3-n3R6-0xqhsK

 

Ampliar LogicalVolum

Si queremos ampliar el Volumen, tendremos que poner el nuevo tamaño, no el tamaño ampliar

root@http:~# lvextend -L34G /dev/mapper/VolumGroup2-LV30GB
Extending logical volume LV30GB to 34,00 GiB
Logical volume LV30GB successfully resized

Indicamos al sistema el nuevo tamaño

root@http:~# resize2fs /dev/mapper/VolumGroup2-LV30GB
resize2fs 1.41.12 (17-May-2010)
El sistema de fitxers a /dev/mapper/VolumGroup2-LV30GB està muntat a /backup; cal un canvi de mida en línia
old desc_blocks = 2, new_desc_blocks = 3
Canvi de mida en línia de /dev/mapper/VolumGroup2-LV30GB a 8912896 (4k) blocs.
El sistema de fitxers a /dev/mapper/VolumGroup2-LV30GB té ara una mida de 8912896 blocs.

En XFS seria: xfs_growfs /punto_montaje

Ya tenemos ampliado el LV

root@http:~# df -h
S. fitxers Mida En ús Lliure %Ãs Muntat a
/dev/mapper/pont-root 322M 107M 199M 35% /
tmpfs 125M 0 125M 0% /lib/init/rw
udev 120M 120K 120M 1% /dev
tmpfs 125M 0 125M 0% /dev/shm
/dev/sda1 228M 15M 202M 7% /boot
/dev/mapper/pont-home 2,7G 78M 2,5G 3% /home
/dev/mapper/pont-tmp 225M 6,1M 208M 3% /tmp
/dev/mapper/pont-usr 2,7G 495M 2,1G 20% /usr
/dev/mapper/pont-var 1,4G 935M 337M 74% /var
/dev/mapper/VolumGroup2-LV30GB 34G 177M 32G 1% /backup

 

Agregar un disco al VolumGroup

Primero detectamos el nuevo disco y creamos el soporte a VolumGroup:

pvcreate /dev/hdb1


Luego ampliamos el VolumGroup

vgextend grupo_volumen /dev/hdb1

 


Mas información en: http://www.tldp.org/HOWTO/LVM-HOWTO/