Hace poco te explicamos algunos conceptos básicos para comprender el funcionamiento de un administrador de volúmenes lógicos (LVM).

En esta ocasión, te vamos a explicar cómo crear un almacén a partir de varios discos duros y, partiendo del espacio de ese almacén, crear unidades del tamaño que queramos. También te explicaremos cómo reducirlas y extenderlas. ¡Vamos a ello!

Pongamos que en nuestro primer ejemplo práctico contamos con cuatro discos: /dev/sdb, /dev/sdc, /dev/sdd y /dev/sde.

Lo primero que haremos es crear una partición en cada uno de los cuatro discos. (Vamos a ver cómo hacerlo en uno, después se debe hacer en el resto).

*Las particiones tienen que tener preferiblemente un partition type 8e (Linux LVM), como se ve en la figura.

Creamos los volúmenes físicos con pvcreate, a continuación el comando pvs nos dará un resumen de los PVs gestionados por LVM:

Ahora vamos a crear dos grupos de volúmenes, vg1 y vg2. Después vemos un listado de volume groups con vgs:

*Podemos ver que los VGs que acabamos de crear (vg1 y vg2) tienen un tamaño  de 10GB cada uno.

Por último, vamos a crear los volúmenes lógicos. En el grupo vg1 crearemos dos LVs. En el grupo vg2 crearemos uno pequeño que ocupe menos de la mitad del espacio total, ya que haremos una prueba de redimensionamiento en caliente.

Podemos ver el consumo de extents y más información acerca de un VG con el comando vgdisplay:

Ahora vamos a crear un sistema de ficheros ext4 sobre el LV llamado backup que se creó en el grupo vg2.

Primero hay que tener en cuenta que el dev mapper ha creado para nosotros varios links simbólicos dentro de /dev para cada LV. En esta captura vemos dos ubicaciones típicas, pero puede haber más.

El fichero de bloques como tal está en /dev/dm-7.

*Podemos ver que los VGs que acabamos de crear (vg1 y vg2) tienen un tamaño  de 10GB cada uno.

Creamos un sistema de ficheros ext4 sobre el LV de 2GB y lo montamos en /mnt/backup:

Ahora llenamos el volumen creando un archivo grande:

Nos hemos quedado sin espacio, pero con LVM podemos solucionarlo. Como sabemos, el grupo vg2 tiene espacio de sobras.

AMPLIAR VOLUMEN

*Siempre que vayamos a hacer cualquier tipo de modificación en un volumen lógico es muy recomendable tener copia de seguridad de los datos que puedan estar almacenados en él.

Vamos a redimensionar el LV backup para que obtenga 5GB más del grupo de volúmenes. Con un solo comando, además, haremos el resize del sistema de ficheros ext4 en caliente.

*La opción –resizefs funcionará si se soporta el filesystem subyacente (en este caso ext4 está soportado).

Ahora tenemos espacio adicional en nuestro volumen.

REDUCIR VOLUMEN

*IMPORTANTE: Siempre que se intente hacer esto debemos asegurarnos de tener una copia de seguridad válida. Un simple error humano puede implicar la pérdida de los datos.

Si queremos reducir un LV, primero debemos reducir el sistema de ficheros que hay escrito sobre él (si dicho filesystem lo soporta) y después reducir el LV. Esto nos permitiría recuperar espacio en nuestro volume group. Esta operación normalmente no se podrá hacer en caliente.

El primer paso es la reducción del filesystem. Para ello, primero desmontamos el volumen y después realizamos un chequeo con e2fsck para reducir la posible fragmentación. El comando resize2fs nos permite establecer el nuevo tamaño del sistema de ficheros (en nuestro caso 5GB):

El sistema de ficheros se ha reducido, pero el LV sigue en 7GB y el espacio libre en el grupo de volúmenes vg2 es de unos 3GB:

Finalmente reducimos el tamaño del LV, y vemos como también se libera espacio en el VG:

Verificamos finalmente que el sistema de ficheros sigue estando accesible.

Y aquí finaliza esta breve explicación sobre LVM. Déjanos en comentarios lo que te ha parecido.