Volver

¿Qué es LVM?

LVM (Logical Volume Manager) es un framework del kernel de Linux que proporciona gestión de volúmenes lógicos, originalmente escrito por Heinz Mauelshagen en 1998 mientras trabajaba en Sistina Software. Actúa como una capa de software delgada sobre los discos duros físicos y las particiones, creando una abstracción que permite redimensionar dinámicamente el almacenamiento, crear instantáneas y gestionar discos flexibles sin tiempo de inactividad.

LVM organiza el almacenamiento en tres niveles: Volúmenes Físicos (PV), Grupos de Volúmenes (VG) y Volúmenes Lógicos (LV). Los volúmenes lógicos pueden redimensionarse en caliente añadiendo o eliminando extensiones físicas (PE), y la mayoría de las distribuciones modernas de Linux permiten tener el sistema de archivos raíz sobre un volumen lógico.

Casos de uso comunes

  • Combinar discos físicos: Unir múltiples discos duros en un solo volumen lógico, similar a JBOD, para crear grandes pools de almacenamiento sin necesidad de RAID por hardware.
  • Redimensionar sistemas en caliente: Aumentar o reducir el tamaño de los sistemas de archivos sin desmontarlos ni reiniciar el servidor, adaptándose a las necesidades cambiantes de almacenamiento.
  • Instantáneas para backups: Crear snapshots LVM con tecnología copy-on-write para realizar copias de seguridad consistentes de volúmenes en producción sin interrumpir servicios.
  • Migrar datos sin interrupción: Usar el comando pvmove para trasladar datos entre discos físicos mientras el volumen lógico permanece en línea y accesible.

Preguntas frecuentes

¿Cómo crear un volumen físico (pvcreate) en LVM paso a paso?

Para crear un volumen físico en LVM, primero identifica el disco con `lsblk` o `fdisk -l`. Luego ejecuta `pvcreate /dev/sdb`. Esto escribe la cabecera LVM en el disco, marcándolo como disponible para grupos de volúmenes. Si el disco ya tiene particiones, usa `pvcreate /dev/sdb1`. Verifica con `pvs` o `pvdisplay`. Puedes crear múltiples PVs: `pvcreate /dev/sdb /dev/sdc`. LVM permite combinar discos de diferentes tamaños, aunque es recomendable que sean del mismo tipo (HDD o SSD) para evitar cuellos de botella.

¿Qué es un Volume Group (vgcreate) en LVM y cómo configurarlo?

Un Volume Group (VG) agrupa uno o más volúmenes físicos (PV) para crear un pool de almacenamiento del que se extraen los volúmenes lógicos (LV). Para crear un VG: `vgcreate vg_datos /dev/sdb /dev/sdc`. Esto une ambos discos en un grupo. Verifica con `vgs` o `vgdisplay`. Puedes extender un VG existente con `vgextend vg_datos /dev/sdd`. El VG permite crear snapshots, redimensionar volúmenes y migrar datos entre discos sin interrumpir servicios.

¿Cómo crear un volumen lógico (lvcreate) y formatearlo en LVM?

Para crear un volumen lógico: `lvcreate -n lv_datos -L 100G vg_datos`. `-n` asigna nombre, `-L` define tamaño (también acepta `-l 100%FREE` para usar todo el espacio disponible). Luego formatea: `mkfs.ext4 /dev/vg_datos/lv_datos`. Monta: `mount /dev/vg_datos/lv_datos /mnt/datos`. Para extenderlo después: `lvextend -L +50G /dev/vg_datos/lv_datos` seguido de `resize2fs /dev/vg_datos/lv_datos` (ext4) o `xfs_growfs` (XFS). Los LV pueden redimensionarse en caliente sin desmontar.

¿Cómo extender un volumen lógico LVM sin perder datos?

Para extender un LV sin pérdida de datos: 1) Añade espacio físico: `pvcreate /dev/sdd` y `vgextend vg_datos /dev/sdd`. 2) Extiende el LV: `lvextend -L +100G /dev/vg_datos/lv_datos`. 3) Redimensiona el sistema de archivos: para ext4 usa `resize2fs /dev/vg_datos/lv_datos`, para XFS usa `xfs_growfs /mnt/punto_montaje`. Con ext4 la operación es en caliente sin desmontar. Reduce un LV con `lvreduce -L -50G` solo si el sistema de archivos lo soporta y siempre con respaldo previo.