LVM o Logical Volume Management (Manejo de Volumenes Logicos) es una tecnologia de manejo de dispositivos de almacenamiento que le da a el administrador la facilidad de crear "pools" para un manejo flexible y facil uso de los discos.

Las principales ventajas de los LVM son abstraccion, flexibilidad y control. Los volumenes logicos pueden tener nombres descriptivos como "base de datos" o "respaldos". Los volumenes pueden ser aumentados dinamicamente, ademas los LVM ofrecen capacidades avanzadas como la creacion de "snapshots" y "mirroring".

 

Volumenes Fisicos (PV):

  • Descripcion: discos de bloques fisicos o otro tipo de dispositivos de disco, por ejemplo los arreglos "RAID", LVM escribe un encabezado al dispositivo para su control.

Grupo de Volumenes (VG):

  • LVM combina los volumenes fisicos para crear "pools" de almacenamiento conocidos como Grupo de Volumenes (VG) el grupo de volumenes funciona uniendo varios discos duros y sumando la capacidad de los discos para ser tratado como una sola unidad logica de almacenamiento.

Volumenes Logicos (LV):

  • Un volumen logico puede ser dividido en "n" cantidad de volumenes logicos. Los volumenes logicos son equivalentes a las particiones que se utilizan en los discos duros tradicionales pero con mucha mas flexibilidad. Los volumenes logicos son el componente principal que los usuarios y aplicaciones utilizaran.

 

Para comenzar a crear los LVM's es necesario tener los discos fisicos conectados al servidor en el que se manejaran los volumenes logicos, no es necesario que tengan ningun tipo de particion ya que en un momento les explicare como realizar esta accion.

En este ejemplo, tenemos 3 discos duros fisicos conectados al servidor /dev/sdb, /dev/sdc/ y /dev/sdd cada uno de 5G para este ejemplo.

 

Primero vamos a crear los volumenes fisicos (PV)

pvcreate /dev/sdb /dev/sdc /dev/sdd

una vez creados los PV los puedes ver con el comando: sudo pvs

 

Ya que tenemos creados los volumenes fisicos (PV), vamos a crear los grupos de volumenes (VG)

vgcreate vg1 /dev/sdb /dev/sdc

donde "vg1" es la etiqueta que se le da a ese especifico grupo de volumenes y se puede ver con el comando: sudo vgs

 

Enseguida, la creacion de los volumenes logicos "particiones" que seran utilizados por los usuarios y aplicaciones

lvcreate -L 10G vg1 -n www

donde "www" es la etiqueta con la que se identificara esta particion logica y "vg1" es la etiqueta que se le dio a el VG anteriormente

 

Una vez que tenemos los volumenes logicos (LV) creados.

Formatear los LV
mkfs.ext4 /dev/vg1/www

Montar la unidad
mount /dev/vg1/www /var/www

 

En este momento ya se puede utilizar la unidad montada como cualquier otro dispositivo. Como mencione al principio los LVM's pueden incrementar dinamicamente, digamos que el servidor web esta creciendo que los 10G que creamos para el LV ya no es suficiente y necesitamos incrementar la capacidad del volumen logico.

Con este comando extendemos el "vg1" para utilizar el tercer PV que habiamos creado al principio del ejercicio:

vgextend vg1 /dev/sdd

 

Enseguida cambiamos la capacidad del volumen "www" actualmente de 10G incrementandolo hasta 15G

lvresize -L +5G /dev/vg1/www

 

Es importante informarle al sistema operativo de este cambio con el siguiente comando

resize2fs /dev/vg1/www

 

Ahora si revisamos la capacidad del volumen "www" con el siguiente comando, nos mostrara que ahora es de 15G

df -h

 

Si necesitas eliminar los encabezados que se agregaron a los discos para poder ser utilizados para otro proposito

Primero es necesario desmontar los LV

umount /var/www


Eliminar Volumenes Logicos (LV)

lvremove /dev/vg1/lv1



Eliminar los grupos de volumenes (VG)

vgremove /dev/vg1


y por ultimo eliminar los volumenes fisicos (PV)

pvremove /dev/sdb /dev/sdc /dev/sdd

 

Nota: los Volumenes Logicos (LV) pueden ser montados de manera persistente como cualquier otro dispositivo de blockes utilizando el archivo de configuracion /etc/fstab

/etc/fstab

/dev/vg1/www /var/www ext4 defaults,nofail 0 0