Blog IT

Configurar y extender Linux Logical Volume Manager / Configure and extend Linux Logical Volume Manager

Que es LVM? Es el administrador de volúmenes lógicos para el kernel de Linux. Es decir, explicándolo de un modo muy simplificado, nos va a permitir administrar nuestro almacenamiento y configurar un Raid 0.

LVM No permite Raid 1 ni Raid5. Para entornos virtuales en los que un alto rendimiento es una necesidad principal y se dispone de una buena solución de restore nos puede interesar mucho.

Que vamos a hacer en este tutorial?

Crear las particiones para cada disco, instalar y configurar LVM, crear los volúmenes físicos, crear un grupo de volumen, crear volúmenes lógicos, mapear el volúmen y después lo ampliaremos.

Nuestro entorno se compondrá de un servidor Linux con Ubuntu Server en una partición de 20Gb y 3 discos de 1GB para el LVM de datos.

Vamos allá!

Primero vamos a configurar nuestra máquina virtual con ubuntu instalado y le vamos a añadir 3 discos de 1GB. Los discos que vamos a destinar al LVM los pondremos en una segunda controladora. No es obligatorio… pero está mejor…

De manera que tendremos un disco de sistema de 20GB (0:0), y tres de datos de 1GB (1:0 | 1:1 | 1:2).

Nos conectamos al servidor por SSH y nos logueamos.

Lvm1

Lanzamos un fdisk -l y visualizamos los discos que tenemos. Como podéis ver están nuestros 4 discos.

  • 1: sda con 3 particiones
  • 2: sdb sin particiones
  • 3: sdc sin particiones
  • 4: sdd sin particiones

Como los 3 que vamos a configurar no tienen partición creada, nos ponemos a ello:

Lvm2

Lanzamos fdisk /dev/sdb para configurar la partición en el primer disco.

Lvm3

n   Añade una nueva partición

p   Seleccionamos la partición como primaria

1   para crearla como la primera partición del disco, y las dos siguientes opciones las dejamos por defecto

Lvm4

t   Cambia el identificador de sistema de una partición

8e   Para definir la partición como LVM

p  Para ver la configuración del disco (no tenéis que lanzarlo, es solo curiosidad)

w   Guardamos cambios

Lvm5

Si lanzamos de nuevo un fdisk -l veremos que ya tenemos las particiones de nuestros discos.

Lvm5b

Para poder configurar LVM tendremos que instalarlo apt-get install lvm2

Una vez instalado, lanzaremos estos 4 comandos:

systemctl enable lvm2-lvmetad.service

systemctl enable lvm2-lvmetad.socket

systemctl start lvm2-lvmetad.service

systemctl start lvm2-lvmetad.socket

Opcionalmente, LVM puede utilizar una caché central de metadatos implementado a través de un demonio (lvmetad) y una regla (udev). Si no habilitamos he iniciamos el servicio y el socket podría darnos un warning la configuración de los volúmenes físicos y de los lógicos. Un error parecido a este:

Lvm6

/run/lvm/lvmetad.socket: Connect failed: No existe el archivo o el directorio

WARNING: Failed to connect to lvmetad. Failling back to internal scanning.

Lvm7

Lo primero que haremos es crear los 3 volúmenes físicos.

pvcreate /dev/sdb1

pvcreate /dev/sdc1

pvcreate /dev/sdd1

Lvm8

El siguiente paso será crear el grupo de volúmen

vgcreate volgroup_01 /dev/sdb1 /dev/sdc1 /dev/sdd1 …. (tantos discos como tengamos, nosotros 3) donde volgroup es el nombre que queremos darle al grupo.

Lvm9

y por último crearemos los volúmenes lógicos. Yo crearé uno de 2GB. Podéis configurarlo con MB también…).

lvcreate -L2G -n volumen_01 volgroup_01 donde volumen_01 es el nombre que daremos al volúmen lógico.

Lvm10

Con vgscan consultamos los grupos existentes

Lvm11

Con pvscan consultamos volúmenes fisicos existentes

Lvm12

Con lvscan consultamos los volúmenes lógicos existentes

Lvm13

Ahora toca darle formato… mkfs.ext4 /dev/volgroup_01/volumen_01

Lvm14

… y montarlo como una partición normal, en este caso contra la carpeta datos. mount /dev/volgroup_01/volumen_01 /Datos/

Lvm15

Comprobamos que todo está bien df -h | grep Datos

Bueno, ya tenemos la primera parte hecha. Ahora.. que pasa si queremos ampliar la unidad porque se nos ha quedado pequeña? Esta claro.. que 2GB no dan para muchos datos :P

Vamos a ampliarle otros 3GB.. que hoy me siento generoso :D

Lo primero que vamos a hacer es editar la máquina virtual. Pero como? Tenemos que coger el tamaño que queremos asignar a nuestro volumen y dividirlo entre los discos configurados en LVM. En este caso… 3/3=1Gb por disco. Pues ampliamos 1GB por disco…

Lvm16

Instalamos lsscsi apt-get install lsscsi

Lvm17

Ejecutamos lsscsi para ver los dispositivos scsi que tenemos que reescanear

Lvm18

Reescaneamos los dispositivos scsi que forman parte del volumen:

echo “1” > /sys/class/scsi_device/33\:0\:0\:0/device/rescan
echo “1” > /sys/class/scsi_device/33\:0\:1\:0/device/rescan
echo “1” > /sys/class/scsi_device/33\:0\:2\:0/device/rescan

Lvm20

Redimensionamos los discos. Para ello hacemos un pvresize /dev/sd… por cada disco que forma parte del volumen.

Lvm21

Extendemos el volumen lógico: lvextend -L +3GB /dev/volgroup_01/volumen_01  (Siendo +23GB la cantidad de Gb que queréis y /dev/… la ruta del volumen lógico a extender)

Lvm22

Y por último extendemos el sistema de ficheros del volumen lógico: resize2fs /dev/volgroup_01/volumen_01