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