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, debes 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. Comprueba 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ísico:
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. Crea 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. 2. Comprueba el volumen lógico creado utilizando el comando lvdisplay:
sudo lvdisplay
Verás información sobre el volumen lógico creado.
3. 3. Crea un sistema de ficheros en el volumen lógico utilizando el comando mkfs:
sudo mkfs.ext4 /dev/vg0/lv0
4. Crea un punto de montaje para el nuevo sistema de ficheros utilizando el comando mkdir:
sudo mkdir /mnt/lv0
5. Monte el nuevo sistema de ficheros 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%FREE /dev/vg0/lv0
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 te 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. Utiliza 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 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, utiliza 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 regular.
Thin pool permite crear configuraciones de almacenamiento más flexibles y eficientes en Linux. Thin pool se utiliza en combinación con thin volume para una utilización óptima del espacio en disco.