LVM: Tutorial

El Logical Volume Manager (LVM), nos permite el uso de volúmenes lógicos en Linux. Un volumen lógico esta compuesto por particiones de disco o discos enteros. Esto nos ayuda mucho a poder tener de una manera mas gestionada el almacenamiento. Ya que por ejemplo si tenemos varios discos, estos se pueden agrupar en un solo volumen. O incluso se pueden ampliar los volúmenes de una manera muy fácil. Distribuciones de la familia RHEL lo suelen traer por defecto en la instalación.

Añadir un disco físico al sistema

Escanear los discos nuevos. El path dependerá de que tipo de controladora queramos escanear.

echo "- - -" >/sys/class/scsi_host/host*/scan

Listar los discos del sistema

fdisk -l

Disco /dev/sdd: 214.7 GB, 214748364800 bytes
255 cabezas, 63 sectores/pista, 26108 cilindros
Unidades = cilindros de 16065 * 512 = 8225280 bytes

Crear la partición y dar formato al disco

fdisk /dev/sdd

Orden (m para obtener ayuda): n
Acción de la orden
e Partición extendida
 p Partición primaria (1-4)
p
Número de partición (1-4): 1
Primer cilindro (1-26108, default 1):
Using default value 1
Último cilindro o +tamaño o +tamañoM o +tamañoK (1-26108, default 26108):
Using default value 26108

Orden (m para obtener ayuda): t
Se ha seleccionado la partición 1
Código hexadecimal (escriba L para ver los códigos): 8e
Se ha cambiado el tipo de sistema de la partición 1 por 8e (Linux LVM)

Orden (m para obtener ayuda): w
¡Se ha modificado la tabla de particiones!

Llamando a ioctl() para volver a leer la tabla de particiones.
Se están sincronizando los discos.

Ver otra vez los discos y la partición creada

fdisk -l

Disco /dev/sdd: 214.7 GB, 214748364800 bytes
255 cabezas, 63 sectores/pista, 26108 cilindros
Unidades = cilindros de 16065 * 512 = 8225280 bytes

Disposit. Boot Start End Blocks Id System
/dev/sdd1 1 26108 209712478+ 8e Linux LVM

Añadir el disco al PV

pvcreate /dev/sdd1

Listar los discos de pv

pvs

/dev/sdd1         lvm2 --   200,00G 200,00G

Craear un VG

Para empezar, hay que crear el VG

vgcreate vgprueba /dev/sdd1

 Volume group "vgprueba" successfully created

Listar el VG que hemos creado

vgdisplay vgprueba
 
--- Volume group ---
 VG Name vgprueba
 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 200,00 GB
 PE Size 4,00 MB
 Total PE 51199
 Alloc PE / Size 0 / 0
 Free PE / Size 51199 / 200,00 GB
 VG UUID mEu7Aj-PxpL-XeAF-nIrL-YWQg-GUGs-vAgIck

Crear un logicalvolume

lvcreate -L 10G -n lvprueba vgprueba
 
Logical volume "lvprueba" created

Dar formato al lvm

mkfs.ext3 /dev/vgprueba/lvprueba

mke2fs 1.35 (28-Feb-2004)
Etiqueta del sistema de ficheros=
Tipo de SO: Linux
Tamaño del bloque=4096 (bitácora=2)
Tamaño del fragmento=4096 (bitácora=2)
1310720 nodos i, 2621440 bloques
131072 bloques (5.00%) reservados para el súper usuario
Primer bloque de datos=0
Maximum filesystem blocks=2684354560
80 bloque de grupos
32768 bloques por grupo, 32768 fragmentos por grupo
16384 nodos i por grupo
Respaldo del súper bloque guardado en los bloques:
 32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632

Mientras se escribían las tablas de nodos i: terminado
Creando el fichero de transacciones (8192 bloques): hecho
Escribiendo superbloques y la información contable del sistema de ficheros: hecho

Ahora, este LV ya está disponible para poder montarlo en el sistema y trabajar con el.

Ampliar un VolumeGroup

En este caso para hacer el ejemplo el mismo disco hemos creado 2 particiones con tabla Linux LVM

Disco /dev/sdd: 214.7 GB, 214748364800 bytes
255 cabezas, 63 sectores/pista, 26108 cilindros
Unidades = cilindros de 16065 * 512 = 8225280 bytes

Disposit. Boot Start End Blocks Id System
/dev/sdd1 1 10000 80324968+ 8e Linux LVM
/dev/sdd2 10001 26108 129387510 8e Linux LVM

Los pv quedarían así:

pvs

 /dev/sdd1 lvm2 vgprueba 76,60G 76,60G
 /dev/sdd2 lvm2    --    123,39G 123,39G

Y el vgprueba quedaría de la siguiente manera:

vgdisplay vgprueba

 --- Volume group ---
 VG Name vgprueba
 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 76,60 GB
 PE Size 4,00 MB
 Total PE 19610
 Alloc PE / Size 0 / 0
 Free PE / Size 19610 / 76,60 GB
 VG UUID j8nwfk-6lJv-w761-TKe0-hy5z-PDvv-440ckP

Para ampliar este vg, habría que hacer lo siguiente:

vgextend vgprueba /dev/sdd2
 
 Volume group "vgprueba" successfully extended

De esta manera, quedaría el vg así:

vgdisplay vgprueba

 --- Volume group ---
 VG Name vgprueba
 System ID
 Format lvm2
 Metadata Areas 2
 Metadata Sequence No 2
 VG Access read/write
 VG Status resizable
 MAX LV 0
 Cur LV 0
 Open LV 0
 Max PV 0
 Cur PV 2
 Act PV 2
 VG Size 199,99 GB
 PE Size 4,00 MB
 Total PE 51198
 Alloc PE / Size 0 / 0
 Free PE / Size 51198 / 199,99 GB
 VG UUID j8nwfk-6lJv-w761-TKe0-hy5z-PDvv-440ckP

Como se puede apreciar el VG Size ha aumentado con la suma de los 2 discos.

Ahora lo siguiente sería el aumentar el espacio del LV. Esto es muy parecido al VG, y hará que el LV que teníamos de 10G pase a tener ahora 20G.

lvextend -L +10G /dev/vgprueba/lvprueba

 Extending logical volume lvprueba to 20,00 GB
 Logical volume lvprueba successfully resized

Con esto le daríamos 10GB mas al LV y quedaría así:

lvdisplay /dev/vgprueba/lvprueba

 --- Logical volume ---
 LV Name /dev/vgprueba/lvprueba
 VG Name vgprueba
 LV UUID dgSAOM-uV1j-olQ4-xacm-7KrV-D0NM-jxAXUJ
 LV Write Access read/write
 LV Status available
 # open 0
 LV Size 20,00 GB
 Current LE 5120
 Segments 1
 Allocation inherit
 Read ahead sectors 0
 Block device 253:13

Y para terminar, para que refrescar el sistema, hay que ejecutar el siguiente comando:

resize2fs /dev/vgprueba/lvprueba

Leave a Reply

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