Trabajar con LVM

LVM es un sistema de gestión del espacio en disco con un grado adicional de abstracción de la capa física. Permite una gestión flexible y eficiente del espacio en disco, tolerancia a fallos de datos, y también ayuda a resolver diversas tareas sobre copias de seguridad de datos, despliegue de sistemas de almacenamiento para entornos de virtualización, etc.

En este artículo veremos cómo instalar y utilizar LVM en Linux.

Instalación

LVM suele venir instalado con tu sistema operativo Linux, pero si no es así, puedes instalarlo utilizando el gestor de paquetes de tu distribución Linux. Para la mayoría de las distribuciones, el comando para instalar LVM tendrá este aspecto:

Para Debian o Ubuntu:

sudo apt-get install lvm2

Para CentOS, Fedora y RHEL:

sudo yum install lvm2

Creación de volúmenes físicos

Antes de crear volúmenes lógicos, debe crear volúmenes físicos (pv). Un volumen físico es un dispositivo virtual, como un disco duro o una partición de disco, que LVM utiliza para crear volúmenes lógicos.

Nota: Se recomienda crear volúmenes físicos sobre el disco duro sin utilizar particiones, ya que de lo contrario el proceso de redimensionamiento dinámico de LVM se complica a la larga.

Para crear un volumen físico, siga estos pasos:

Utilice el comando pvcreate para crear un volumen físico:

sudo pvcreate /dev/sdb

Donde /dev/sdb es la ruta al dispositivo físico.

2. Compruebe el volumen físico creado utilizando el comando pvdisplay:

sudo pvdisplay

En la salida verás información sobre el volumen físico creado.

Creación de un grupo de volúmenes físicos

Un grupo de volúmenes físicos (vg) es un contenedor lógico que puede combinar varios volúmenes físicos en un grupo común. Sin embargo, nada impide que se utilice dentro de un único volumen físico. Para crear un grupo de volúmenes físicos, sigue estos pasos:

1. utilice el comando vgcreate para crear un grupo de volúmenes físicos:

sudo vgcreate vg0 /dev/sdb
# либо для нескольких pv
sudo vgcreate vg0 /dev/sdb /dev/sdc

Creación de un volumen lógico

Ahora puede crear volúmenes lógicos, que pueden representarse convencionalmente como particiones en un disco duro.

1. Cree un volumen lógico en el grupo de volúmenes físicos utilizando el comando lvcreate :

sudo lvcreate -n lv0 -L 10G vg0 # Создание логического тома lv0 размером 10 ГБ в группе физических томов vg0

Donde -n es el nombre del volumen lógico, -L es el tamaño del volumen lógico.

2. Compruebe el volumen lógico creado utilizando el comando lvdisplay:

sudo lvdisplay

Verás información sobre el volumen lógico creado.

3. Crea un sistema de ficheros en el volumen lógico utilizando el comando mkfs:

sudo mkfs.ext4 /dev/vg0/lv0

4. Cree un punto de montaje para el nuevo sistema de archivos utilizando el comando mkdir:

sudo mkdir /mnt/lv0

5. Monte el nuevo sistema de archivos en el punto de montaje utilizando el comando mount:

sudo mount /dev/vg0/lv0 /mnt/lv0

Ahora puede utilizar el nuevo sistema de archivos ubicado en el volumen lógico.

Uso de LVM

LVM proporciona muchos comandos para gestionar volúmenes físicos, grupos de volúmenes físicos y volúmenes lógicos. Algunos de los comandos más utilizados se enumeran a continuación:

  • pvcreate: Crea un nuevo volumen físico.
  • pvdisplay: Muestra información sobre los volúmenes físicos.
  • vgcreate: Crea un nuevo grupo de volúmenes físicos.
  • vgextend: Añade un volumen físico a un grupo de volúmenes físicos.
  • vgdisplay: Muestra información sobre los grupos de volúmenes físicos.
  • lvcreate: Crea un nuevo volumen lógico.
  • lvextend: Aumenta el tamaño de un volumen lógico.
  • lvdisplay: Muestra información sobre volúmenes lógicos.

LVM también permite aumentar el tamaño de volúmenes físicos, grupos de volúmenes físicos y volúmenes lógicos mientras el sistema está en ejecución. Para ello existen los comandos correspondientes:

  • pvresize: Cambia el tamaño de un volumen físico.
  • vgresize: Redimensiona un grupo de volúmenes físicos.
  • lvresize: Cambia el tamaño de un volumen lógico.

Ejecutando cualquiera de los comandos anteriores con el parámetro --help podrá familiarizarse con parámetros adicionales de los argumentos del comando.

Controla el tamaño de un volumen lógico:

Por ejemplo, para aumentar el tamaño del volumen lógico lv0 en el grupo de volúmenes físicos vg0 en 5 GB, utilice el comando

sudo lvresize -L +5G /dev/vg0/lv0

o todo el espacio libre restante en el volumen físico:

sudo lvresize -l +100%LIBRE /dev/vg0/lv0
Tenga en cuenta que el último ejemplo utiliza la letra l mayúscula, mientras que el ejemplo anterior utiliza la letra L mayúscula.
En este formato, tienes la flexibilidad de establecer un porcentaje de cuánto espacio libre del espacio restante en el volumen físico añadir al volumen lógico.

A continuación, puede cambiar el tamaño del sistema de archivos sobre la marcha utilizando el comando resize2fs:

sudo resize2fs /dev/vg0/lv0

Instantáneas LVM

LVM en Linux soporta un mecanismo de instantáneas que le permite crear copias exactas de volúmenes lógicos en un punto específico en el tiempo. Esta es una característica útil que le permite guardar el estado de los datos en un momento determinado y restaurar a ese estado si es necesario.

La tecnología de instantáneas LVM funciona de la siguiente manera: una instantánea se crea guardando el estado de un volumen lógico en el momento en que se crea la instantánea. Una vez creada la instantánea, cualquier cambio que se produzca en el volumen lógico original se almacena en espacio de disco diferencial adicional. Esto puede ayudar a realizar copias de seguridad y restaurar datos en el momento en que se crea la instantánea.

Veamos cómo crear y utilizar el mecanismo de instantáneas LVM.

Creación de una instantánea LVM

La creación de una instantánea LVM se realiza utilizando el comando lvcreate. Por ejemplo, para crear una instantánea del volumen lógico myvolume en el grupo de volúmenes myvg, utilice el siguiente comando:

sudo lvcreate --snapshot --name myvolume_snap --size 1G /dev/myvg/myvolume

Este comando creará una instantánea del volumen lógico myvolume llamada myvolume_snap con un tamaño de 1 GB.

Tenga en cuenta que debe especificar el tamaño de la instantánea para crear una instantánea.

Uso de una instantánea LVM

Después de crear una instantánea, puede utilizarla para realizar varias tareas. Por ejemplo, puede utilizar la instantánea para restaurar datos o crear una copia de seguridad. Utilice el siguiente comando para montar la instantánea en el sistema de archivos:

sudo mount /dev/myvg/myvolume_snap /mnt/snapshot

Aquí /mnt/snapshot es el punto de montaje donde se montará la instantánea. Una vez montada la instantánea, puedes copiar datos desde ella o utilizarla para la recuperación de datos.

Borrar una instantánea LVM

Una vez que una instantánea ha sido utilizada, puede ser eliminada. Para eliminar una instantánea, utilice el comando lvremove. Por ejemplo, para eliminar la instantánea myvolume_snapshot en el grupo de volúmenes myvg, utilice el siguiente comando:

sudo lvremove /dev/myvg/myvolume_snap

Tenga en cuenta que si elimina una instantánea, se perderán todos los datos que se hayan modificado después de crear la instantánea.

Thin pools

Thin pool es un mecanismo de LVM que le permite crear un volumen lógico que utiliza sólo la parte de los dispositivos de disco físico que realmente contiene datos. Esto permite reducir el consumo de espacio en disco y gestionarlo de forma más eficiente. Esta característica de LVM se ha vuelto más común en los sistemas de virtualización como una solución conveniente y económica para asignar espacio en disco para máquinas virtuales y contenedores. Veamos cómo crear un thin pool en LVM.

Creación de un thin pool LVM

El thin pool se crea utilizando el conocido comando lvcreate. Por ejemplo, para crear un thin pool mythinpool en el grupo de volúmenes myvg en los volúmenes físicos /dev/sdb y /dev/sdc, utilice el siguiente comando:

sudo lvcreate -L 50G -T myvg/mythinpool /dev/sdb /dev/sdc

Aquí -L especifica el tamaño del thin pool en gigabytes y -T indica que estamos creando un thin pool. Este comando creará un thin pool mythinpool de 50 GB.

Creación de un volumen delgado LVM

Un thin volume es un volumen lógico que se crea dentro de un thin pool. Los volúmenes delgados pueden crearse utilizando el comando lvcreate. Por ejemplo, para crear un volumen delgado mythinvolume de tamaño 10 GB en thin pool mythinpool en el grupo de volúmenes myvg, utilice el siguiente comando:

sudo lvcreate -V 10G -T myvg/mythinpool -n mythinvolume

Aquí -V especifica el tamaño del volumen delgado en gigabytes y -n especifica el nombre del volumen delgado. Este comando creará un thin volume mythinvolume de 10 GB dentro del thin pool mythinpool.

Uso del volumen ligero LVM

El volumen fino se puede utilizar como un volumen lógico normal. Por ejemplo, para crear un sistema de archivos ext4 en un volumen delgado mythinvolume, utilice el siguiente comando:

sudo mkfs.ext4 /dev/myvg/mythinvolume

Una vez creado el sistema de archivos del volumen delgado, se puede montar y utilizar como un volumen lógico normal.

Thin pool permite crear configuraciones de almacenamiento más flexibles y eficientes en Linux. La reserva delgada se utiliza en combinación con el volumen delgado para una utilización óptima del espacio en disco.