Administración de volúmenes lógicos en Linux

Introducción

LVM2 es un administrador de volúmenes lógicos desarrollado para el kernel de Linux, compatible con su predecesor LVM1.

La primer ventaja fundamental de LVM es que nos quita el inconveniente de dimensionar exactamente las particiones tal cuál las necesitaremos, encontrándonos luego con que el esquema de particionamiento escogido no es el más adecuado. Este caso es muy fácil verlo con un ejemplo:

Si tenemos un disco de 500GB y queremos instalar Linux, lo particionamos de la siguiente manera:

/boot 100M
/ 20G
/tmp 1G
swap 2G
/home 77G
/usr 200G
/var 200G

El problema al que nos enfrentamos en este caso es quedarnos sin espacio en alguna partición y tener lugar de sobra en otra. Por ejemplo, supongamos que se llena el disco raíz y sin embargo tenemos aún 27G libres en /home. Eso representa una situación donde se hace un uso ineficiente del espacio en disco, además de un problema. La solución más obvia en este caso es hacer algún link simbólico apuntando a algún lugar de /home, pero es una solución bastante mala.

Con LVM, la solución a este problema es simple, dado que se podría reducir la partición que contiene /home y aumentar luego el espacio asignado al directorio raíz.

Características de LVM2

LVM2 cuenta, básicamente, con las siguientes funcionalidades.

  • Redimensión de grupos de volúmenes y volúmenes lógicos en línea.
  • Crear instantáneas (snapshots) de lectura/escritura del sistema de archivos.
  • Constituir los volúmenes lógicos separados en los diferentes volúmenes físicos, de manera similar que RAID 0.
  • Mover los volúmenes lógicos entre los diferentes volúmenes físicos.

Conceptos básicos de LVM

Para entender cómo funciona LVM es necesario conocer algunos conceptos elementales, que son:

  • Grupo de volúmenes (VG): Es el punto de abstracción más alto en LVM. Este concepto define la unión de uno o más PVs en una unidad administrativa. Los PVs pueden comenzar a utilizarse en LVM recién cuando pasan a formar parte de un VG.
  • Volumen físico (PV): es un disco rígido, una partición o un RAID (físico o por software).
  • Volumen lógico (LV): es el equivalente a una partición en un sistema que no es LVM. El volumen lógico es visto como un dispositivo de bloque, ya que puede contener un sistema de ficheros.
  • Extensión física (PE): cada volumen físico está dividido en trozos de datos de tamaño fijo, eso es lo que se conoce como extensión física. Estas extensiones tienen el mismo tamaño que las extensiones lógicas para el grupo de volúmenes. Un volumen físico se divide en mútiples PEs del mismo tamaño. La extensión física por defecto es de 4MB pero puede variar desde 8kB hasta 16GB (usando potencias de 2).
  • Extensión lógica (LE): cada volumen lógico está dividido en trozos de datos de tamaño fijo, eso es lo que se conoce como extensión lógica. El tamaño de las extensiones es igual para todos los volúmenes lógicos en el grupo de volúmenes. Un volumen lógico se divide en mútiples LEs del mismo tamaño.
  • Device mapper: es un framework genérico del kernel de Linux que permite realizar un mapeo de un dispositivo de bloques a otro. Es la herramienta fundamental en la que se basa LVM para hacer el mapeo de los dispositivos virtuales con los dispositivos físicos.

Cuando un volumen lógico es creado se realiza un mapping entre las extensiones lógicas y las extensiones físicas; por ejemplo: supongamos que la extesión lógica 1 está mapeada a la extesión física 51, entonces los datos que se escriban en los 4 primeros MB de la extensión lógica se están escribiendo realmente en la extensión física 51.

Conclusión

LVM es un sistema muy interesante para utilizar ya sea en sistemas pequeños como en sistemas con muchos discos y esquemas complejos de particionamiento. Por su flexibilidad y sus capacidades puede reducir mucho el trabajo de mantenimiento de los equipos y cualquier cambio a nivel de almacenamiento.

« Linux | LVM2

Si no se indica lo contrario, el contenido de esta página se ofrece bajo Creative Commons Attribution-ShareAlike 3.0 License