En Linux , Logical Volume Manager ( LVM ) es un marco de mapeo de dispositivos que proporciona administración de volúmenes lógicos para el kernel de Linux . La mayoría de las distribuciones modernas de Linux son compatibles con LVM hasta el punto de poder tener sus sistemas de archivos raíz en un volumen lógico . [ 3 ] [ 4 ] [ 5 ]
Heinz Mauelshagen escribió el código LVM original en 1998, cuando trabajaba en Sistina Software , tomando sus principales directrices de diseño del gestor de volúmenes de HP-UX . [ 1 ]
Usos
LVM se utiliza para los siguientes fines:
- Creación de volúmenes lógicos únicos a partir de múltiples volúmenes físicos o discos duros completos (algo similar a RAID 0 , pero más parecido a JBOD ), lo que permite redimensionar el volumen de forma dinámica.
- Gestionar grandes granjas de discos duros permitiendo añadir y sustituir discos sin tiempo de inactividad ni interrupción del servicio, en combinación con el intercambio en caliente .
- En sistemas pequeños (como un ordenador de sobremesa), en lugar de tener que estimar en el momento de la instalación el tamaño que podría necesitar una partición, LVM permite redimensionar fácilmente los sistemas de archivos según sea necesario.
- Realizar copias de seguridad consistentes mediante la creación de instantáneas de los volúmenes lógicos.
- Cifrado de múltiples particiones físicas con una sola contraseña.
LVM puede considerarse como una fina capa de software sobre los discos duros y las particiones, que crea una abstracción de continuidad y facilidad de uso para la gestión de la sustitución, el reparticionamiento y la copia de seguridad de los discos duros.
Características

Funcionalidad básica
- Los grupos de volúmenes (VG) se pueden redimensionar en línea absorbiendo nuevos volúmenes físicos (PV) o expulsando los existentes.
- Los volúmenes lógicos (LV) se pueden redimensionar en línea concatenando extensiones en ellos o truncando extensiones de ellos.
- Los LV se pueden mover entre los PV.
- Creación de instantáneas de solo lectura de volúmenes lógicos (LVM1), aprovechando una función de copia en escritura (CoW), [ 6 ] o instantáneas de lectura/escritura (LVM2)
- Los grupos de volúmenes (VG) se pueden dividir o fusionar in situ siempre que ningún volumen lógico (LV) abarque la división. Esto puede resultar útil al migrar volúmenes lógicos completos hacia o desde almacenamiento fuera de línea.
- Los objetos LVM pueden etiquetarse para mayor comodidad administrativa. [ 7 ]
- Los VG y LV se pueden activar a medida que los dispositivos subyacentes estén disponibles mediante el uso del
lvmetaddemonio. [ 8 ]
Funcionalidad avanzada
- Los volúmenes híbridos se pueden crear utilizando el destino dm-cache , que permite que uno o más dispositivos de almacenamiento rápidos, como las unidades SSD basadas en memoria flash , actúen como caché para uno o más discos duros más lentos . [ 9 ]
- Los LV con aprovisionamiento ligero se pueden asignar desde un pool. [ 10 ]
- En versiones más recientes de device mapper , LVM está lo suficientemente integrado con el resto de device mapper como para ignorar las rutas individuales que respaldan un dispositivo dm-multipath si
devices/multipath_component_detection=1está configurado enlvm.conf. Esto evita que LVM active volúmenes en una ruta individual en lugar del dispositivo multipath. [ 11 ]
RAID
- Se pueden crear LV para incluir funcionalidad RAID , incluyendo RAID 1 , 5 y 6. [ 12 ]
- Los volúmenes lógicos (LV) completos o partes de ellos se pueden distribuir entre varios volúmenes físicos (PV), de forma similar a RAID 0 .
- Un dispositivo de backend RAID 1 (un PV) se puede configurar como "principalmente de escritura", lo que provoca que se eviten las lecturas en dichos dispositivos a menos que sea necesario. [ 13 ]
- La tasa de recuperación puede limitarse utilizando
lvchange --raidmaxrecoveryrateylvchange --raidminrecoveryratepara mantener un rendimiento de E/S aceptable mientras se reconstruye un LV que incluye funcionalidad RAID.
Alta disponibilidad
LVM también funciona en un clúster de almacenamiento compartido en el que los discos que contienen los PV se comparten entre varios ordenadores host, pero puede requerir un demonio adicional para gestionar el acceso a los metadatos mediante algún tipo de bloqueo.
- CLVM
- Se utiliza un gestor de bloqueos distribuido para intermediar los accesos concurrentes a los metadatos de LVM. Siempre que un nodo del clúster necesite modificar los metadatos de LVM, debe obtener permiso de su gestor de bloqueos local
clvmd, que está en contacto constante con otrosclvmddemonios del clúster y puede comunicar el deseo de obtener un bloqueo sobre un conjunto específico de objetos. - HA-LVM
- La gestión del clúster queda a cargo de la aplicación que proporciona la función de alta disponibilidad. En cuanto a LVM, HA-LVM puede usar CLVM como mecanismo de bloqueo o bien seguir utilizando el bloqueo de archivos predeterminado y reducir las colisiones restringiendo el acceso únicamente a los objetos LVM con las etiquetas adecuadas. Dado que esta solución más sencilla evita la contención en lugar de mitigarla, no se permiten accesos concurrentes, por lo que HA-LVM se considera útil solo en configuraciones activo-pasivo.
- lvmlockd
- A partir de 2017, un componente LVM estable diseñado para reemplazar
clvmdhaciendo que el bloqueo de objetos LVM sea transparente para el resto de LVM, sin depender de un administrador de bloqueo distribuido. [ 14 ] Tuvo un desarrollo masivo durante 2016. [ 15 ]
Los mecanismos descritos anteriormente solo resuelven los problemas relacionados con el acceso de LVM al almacenamiento. El sistema de archivos seleccionado para ubicarse sobre dichos volúmenes lógicos debe admitir la agrupación en clústeres por sí mismo (como GFS2 o VxFS ) o bien debe poder ser montado por un único nodo del clúster en cualquier momento (como en una configuración activo-pasivo).
Política de asignación de grupos de volumen
Los grupos de volúmenes LVM deben contener una política de asignación predeterminada para los nuevos volúmenes creados a partir de ellos. Esta política se puede modificar posteriormente para cada volumen lógico mediante el lvconvert -Acomando o en el propio grupo de volúmenes vgchange --alloc. Para minimizar la fragmentación, LVM intentará primero la política más estricta (contigua) y luego avanzará hacia la política más permisiva definida para el objeto LVM hasta que la asignación se complete con éxito.
En las configuraciones RAID, casi todas las políticas se aplican a cada rama de forma aislada. Por ejemplo, incluso si un volumen lógico (LV) tiene la política ` cling` , la expansión del sistema de archivos no hará que LVM utilice un volumen físico (PV) si este ya está siendo utilizado por alguna de las otras ramas en la configuración RAID. Los LV con funcionalidad RAID asignarán cada rama a diferentes PV, lo que hará que los demás PV no estén disponibles para ninguna otra rama. Si esta fuera la única opción disponible, la expansión del LV fallaría. En este sentido, la lógica detrás de `cling` solo se aplicará a la expansión de cada una de las ramas individuales del array.
Las políticas de asignación disponibles son:
- Contiguo : obliga a que todos los lóbulos inferiores (LI) de un ventrículo izquierdo (VI) determinado sean adyacentes y estén ordenados. Esto elimina la fragmentación, pero reduce drásticamente la capacidad de expansión del VI.
- Cling obliga a que los nuevos LE se asignen únicamente a los PV que ya utiliza un LV. Esto puede ayudar a mitigar la fragmentación y reducir la vulnerabilidad de determinados LV en caso de que un dispositivo falle, al disminuir la probabilidad de que otros LV también tengan extensiones en ese PV.
- Normal : implica una selección casi indiscriminada de PE, pero intentará evitar que las ramas paralelas (como las de una configuración RAID) compartan un dispositivo físico.
- En cualquier lugar : no impone ninguna restricción. Es muy arriesgado en una configuración RAID, ya que ignora los requisitos de aislamiento, lo que anula la mayoría de las ventajas de RAID. En el caso de volúmenes lineales, puede provocar una mayor fragmentación.
Implementación


Normalmente, el primer megabyte de cada volumen físico contiene una estructura codificada principalmente en ASCII , denominada "encabezado LVM". Originalmente, el encabezado LVM se escribía en el primer y último megabyte de cada PV para garantizar la redundancia (en caso de fallo parcial del hardware); sin embargo, posteriormente se modificó para que solo se escribiera en el primer megabyte. El encabezado de cada PV es una copia completa de la estructura de todo el grupo de volúmenes, incluyendo los UUID de todos los demás PV y LV, así como el mapa de asignación de PE a LE . Esto simplifica la recuperación de datos en caso de pérdida de un PV.
En la serie 2.6 del kernel de Linux, LVM se implementa mediante el mapeador de dispositivos , un esquema sencillo a nivel de bloques para crear dispositivos de bloques virtuales y asignar su contenido a otros dispositivos de bloques. Esto minimiza la cantidad de código del kernel, relativamente difícil de depurar, necesario para implementar LVM. Además, permite compartir sus servicios de redirección de E/S con otros gestores de volúmenes (como EVMS ). Cualquier código específico de LVM se traslada a sus herramientas de espacio de usuario, que simplemente manipulan estas asignaciones y reconstruyen su estado a partir de los metadatos en disco en cada invocación.
Para poner en línea un grupo de volúmenes, utilice la herramienta "vgchange":
- Busca variables de proceso en todos los dispositivos de bloques disponibles.
- Analiza el encabezado de metadatos en cada PV encontrado.
- Calcula la disposición de todos los grupos de volúmenes visibles.
- Recorre cada volumen lógico del grupo de volúmenes que se va a poner en línea y:
- Comprueba si el volumen lógico que se va a poner en línea tiene todos sus volúmenes físicos (PV) visibles.
- Crea una nueva asignación de dispositivo vacía.
- Lo asigna (con el objetivo "lineal") a las áreas de datos de los PV a los que pertenece el volumen lógico.
Para mover un volumen lógico en línea entre volúmenes físicos (PV) en el mismo grupo de volúmenes, utilice la herramienta "pvmove":
- Crea una nueva asignación de dispositivo vacía para el destino.
- Aplica el objetivo "mirror" a los mapas de origen y destino. El kernel iniciará el espejo en modo "degradado" y comenzará a copiar datos del original al destino para sincronizarlos.
- Cuando el espejo se sincroniza, reemplaza la asignación original con la de destino y, a continuación, destruye la original.
Estas operaciones de asignación de dispositivos se realizan de forma transparente, sin que las aplicaciones ni los sistemas de archivos se den cuenta de que su almacenamiento subyacente se está moviendo.
Advertencias
- A partir de 2015No existe ningún programa de desfragmentación en línea o fuera de línea para LVM. Esto se mitiga en cierta medida, ya que la fragmentación solo ocurre si se expande un volumen y al aplicar las políticas de asignación mencionadas anteriormente. Sin embargo, la fragmentación sigue ocurriendo, y si se desea reducirla, se deben identificar las extensiones no contiguas y reorganizarlas manualmente mediante el
pvmovecomando. [ 16 ] - En la mayoría de las configuraciones de LVM, solo se guarda una copia del encabezado LVM en cada PV, lo que puede hacer que los volúmenes sean más susceptibles a fallas en los sectores del disco. Este comportamiento se puede anular usando
vgconvert --pvmetadatacopies. Si LVM no puede leer un encabezado adecuado usando la primera copia, verificará el final del volumen en busca de un encabezado de respaldo. La mayoría de las distribuciones de Linux mantienen una copia de seguridad en ejecución en/etc/lvm/backup, lo que permite reescribir manualmente un encabezado LVM corrupto usando elvgcfgrestorecomando.
Véase también
- Btrfs (tiene sus propias "instantáneas" que son diferentes, pero usar instantáneas LVM de btrfs conlleva la pérdida de ambas copias) [ 17 ]
- mapeador de dispositivos
- Administrador de discos lógicos (LDM)
- Gestión lógica de volúmenes
- Instantánea (almacenamiento informático)
- Virtualización del almacenamiento
- ZFS
Referencias
- 1 2 "LVM README" . 17-11-2003 . Consultado el 03-04-2026 .
- ↑ "v2_03_38" . 15 de diciembre de 2025. Consultado el 14 de marzo de 2026 .
- ↑ "7.1.2 Configuración de LVM con YaST" . SUSE. 12 de julio de 2011. Archivado del original el 25 de julio de 2015. Recuperado el 22 de mayo de 2015 .
- ↑ "Cómo configurar Ubuntu Desktop con particiones LVM" . Ubuntu. 1 de junio de 2014. Archivado del original el 4 de marzo de 2016. Consultado el 22 de mayo de 2015 .
- ↑ "9.15.4 Crear volumen lógico LVM" . Red Hat. 8 de octubre de 2014. Consultado el 22 de mayo de 2015 .
- ↑ "Rendimiento de BTRFS en comparación con LVM+EXT4 en lo que respecta a cargas de trabajo de bases de datos" . 29 de mayo de 2018.
- ↑ "Etiquetado de objetos de almacenamiento LVM2" . Micro Focus International . Consultado el 21 de mayo de 2015 .
- ↑ "El demonio de metadatos" . Red Hat Inc. Consultado el 22 de mayo de 2015 .
- ↑ "Uso de la nueva función de caché de LVM" . 22 de mayo de 2014. Consultado el 11 de julio de 2014 .
- ↑ "2.3.5. Volúmenes lógicos con aprovisionamiento ligero (Volúmenes ligeros)" . Access.redhat.com . Consultado el 20 de junio de 2014 .
- ↑ "4.101.3. RHBA-2012:0161 — Actualización de corrección de errores y mejoras de lvm2" . Consultado el 8 de junio de 2014 .
- ↑ "5.4.16. Volúmenes lógicos RAID" . Access.redhat.com . Consultado el 7 de febrero de 2017 .
- ↑ "Control de operaciones de E/S en un volumen lógico RAID1" . redhat.com . Consultado el 16 de junio de 2014 .
- ↑ "Re: Instantánea de LVM con VG agrupado [ RESUELTO ] " . 15 de marzo de 2013 . Recuperado el 8 de junio de 2015 .
- ↑ ""vmlockd.c git history"" .
{{cite web}}: CS1 maint: servicio de archivado obsoleto ( enlace ) - ↑ "¿Desfragmentará al usar pvmove (un LV a la vez)?" . 29-04-2010 . Consultado el 22-05-2015 .
- ↑ "Problemas" . Wiki de btrfs . Consultado el 24 de abril de 2017 .
{{cite web}}: CS1 maint: servicio de archivado obsoleto ( enlace )
Lecturas adicionales
- Lewis, AJ (27-11-2006). "LVM HOWTO" . Proyecto de Documentación de Linux . Recuperado el 04-03-2008 ..
- Patente estadounidense 5129088 , Auslander, et al., "Método de procesamiento de datos para crear discos virtuales a partir de grupos no contiguos de bloques direccionables lógicamente contiguos de un dispositivo de almacenamiento de acceso directo", emitida el 7 de julio de 1992 (patente fundamental).
- "RedHat Linux: ¿Qué es el Administrador de Volúmenes Lógicos o LVM?" . techmagazinez.com . 6 de agosto de 2013. Archivado del original el 10 de agosto de 2013. Consultado el 4 de septiembre de 2013 .
- "Página de recursos de LVM2" . sourceware.org . 8 de junio de 2012. Consultado el 4 de septiembre de 2013 .
- "Cómo instalar Ubuntu en particiones LVM" . Debuntu.org . 28 de julio de 2007. Consultado el 4 de septiembre de 2013 .
- "Administrador de volumen lógico" . markus-gattol.name . 13 de julio de 2013.
- gestor de volumen
- Software relacionado con el sistema de archivos de Linux
- Características del kernel de Linux
- Software Red Hat