Arquitectura de LVM de Linux y perspectivas de recuperación de datos
Logical Volume Manager o LVM (Administrador de volúmenes lógicos) es una herramienta de administración de discos que permite crear volúmenes lógicos a partir de varios dispositivos físicos y cambiar fácilmente su tamaño. Incluido en el núcleo de Linux desde 1999 y basado en su marco de mapeo de dispositivos (device mapper framework), el LVM ahora se soporta por todas las distribuciones modernas. Asegurando una mayor flexibilidad, este método de configuración de almacenamiento es ampliamente utilizado por los administradores de sistemas para diferentes servidores, sistemas NAS y SAN en Linux con el fin de organizar el espacio de almacenamiento con la máxima eficiencia. Aunque esta herramienta es particularmente beneficiosa en el entorno corporativo, en vista de las necesidades crecientes de los usuarios domésticos, ahora se usa comúnmente en las PC de escritorio, y se habilita de forma predeterminada en cada vez más instalaciones de Linux.
Así que, examinemos los conceptos clave de Logical Volume Manager, su arquitectura básica, fortalezas y debilidades.
Los básicos de LVM
Logical Volume Manager sirve de una capa de abstracción entre el sistema operativo y los discos físicos que utiliza. Sin embargo, en contraste con el modelo tradicional de administración de discos, en el que cada dispositivo de almacenamiento está representado por una o varias particiones, en LVM, los volúmenes lógicos no están vinculados de esta manera a un medio digital particular: un volumen puede abarcar muchas unidades, mientras que su tamaño se puede cambiar o y el volúmen en sí se puede eliminar en cualquier momento sobre la marcha.
Las estructuras de almacenamiento fundamentales en las que se basa son:
- Volúmenes físicos. Los volúmenes físicos son esencialmente particiones de disco convencionales o dispositivos de almacenamiento completos, como unidades de disco duro internas o externas, sistemas RAID de software o hardware, etc. Uno o varios volúmenes físicos forman un grupo de volúmenes.
- Grupos de volúmenes. Un grupo de volúmenes se puede comparar con una partición virtual. Consta de uno o más volúmenes físicos que forman un solo grupo de almacenamiento (storage pool) disponible para el sistema. Se requiere al menos un volumen físico para crear un grupo de volúmenes, mientras que otros se pueden agregar más tarde para aumentar la capacidad. Cuando se crea un grupo de volúmenes, se divide automáticamente en fragmentos de almacenamiento del mismo tamaño fijo que se llaman extentes físicos (physical extents).
- Extentes físicos. Un extente físico es el fragmento más pequeño en el que se dividen volúmenes físicos (el tamaño predeterminado es 4 MiB). Los extentes físicos se pueden describir como pequeñas partes de almacenamiento físico que se pueden asignar a cualquier volumen lógico bajo demanda.
- Volúmenes lógicos. Un volumen lógico es una parte de un grupo de volúmenes y consta de extentes físicos. Al igual que una partición estándar en un sistema de administración distinto de LVM, este volumen tiene un punto de montaje y un sistema de archivos, como Ext4 o XFS, pero a diferencia de ella, se puede crear, eliminar o cambiar de tamaño utilizando el espacio libre del grupo de volúmenes al que pertenece. Esto se logra al copiar y reorganizar los extentes físicos disponibles sin interrumpir el funcionamiento del sistema.
¿Cómo se organizan los datos?
Para organizar y realizar un seguimiento de sus estructuras internas, LVM utiliza etiquetas de volumen físico y metadatos.
Una etiqueta de volumen físico contiene el UUID (universally unique identifier en inglés, identificador único universal) del volumen físico correspondiente, su tamaño en bytes, y la lista de ubicaciones de áreas de datos y áreas de metadatos. Esta etiqueta generalmente se escribe en el segundo sector de 512 bytes del disco.
Los metadatos se almacenan en ASCII y contienen todos los detalles de configuración de cada grupo de volúmenes. Se escriben en un área de metadatos especial dentro de cada volumen físico que forma parte del grupo de volúmenes correspondiente. Los metadatos nuevos generalmente se agregan al final de los anteriores y luego se actualiza el puntero que indica el inicio de los metadatos.
Además de la información sobre cómo y cuándo se creó el grupo de volúmenes, su nombre, ID único, versión, propiedades, tamaño de extente, etc., los metadatos también incluyen:
- una lista de volúmenes físicos de los que se compone el grupo junto con sus UUID, propiedades, número de extentes y el offset (desplazamiento) al inicio del primer extente en sectores;
- una lista de volúmenes lógicos, cada elemento de la cual consta de una lista de segmentos de volumen lógico con el enlace a la lista de segmentos de volúmenes físicos.
Como Logical Volume Manager almacena esta información directamente en los sectores de disco en lugar de archivos separados, los discos siguen siendo legibles para él después de la reinstalación de Linux o en otros casos cuando se borra el sistema de archivos raíz.
Ventajas y desventajas
LVM ofrece una serie de ventajas destacables en términos de escalabilidad y gestión del espacio de almacenamiento:
-
Cambio dinámico de tamaño de volúmenes
En lugar de configurar particiones de tamaños fijos desde el principio, el usuario puede dejar el espacio de almacenamiento sin particionar y luego agregarlo a una partición montada una vez llenada a tope. No es necesario hacer una copia de seguridad de todos los datos y reformatear el almacenamiento.
-
Hacer que un volumen abarque varios discos
Con Logical Volume Manager, se puede asignar cualquier número válido de discos físicos al mismo volumen lógico que serán reconocidos por el sistema como una sola partición.
-
Expansión dinámica de capacidad
Se puede agregar cualquier número aceptable de dispositivos de almacenamiento físicos de cualquier tamaño a un grupo de volúmenes para expandir su capacidad en cualquier momento y sin tiempo de inactividad. Por ejemplo, se pueden agregar nuevas unidades al servidor para aumentar sus capacidades mientras que el sistema permanece en línea.
-
Aprovisionamiento ligero / Thin Provisioning
LVM brinda la posibilidad de asignar a volúmenes lógicos más capacidad de almacenamiento de la que está disponible en realidad en un grupo de volúmenes. A diferencia de un conjunto de particiones de tamaño fijo, dentro de un grupo de volúmenes, se puede crear un grupo de almacenamiento (pool) ligero especial que brinde espacio a todos los volúmenes lógicos ligeros vinculados a él. Con todo, ninguno de los volúmenes ligeros reserva una parte o el espacio completo para sus necesidades individuales hasta que unos datos se escriban en realidad en este espacio. De esta manera, a cada uno de los volúmenes ligeros se le asigna un tamaño virtual que puede exceder la cantidad de espacio libre en el almacenamiento físico.
-
Soporte de copias instantáneas (snapshots)
LVM soporta copias instantáneas, lo que permite crear una copia de seguridad del sistema de archivos en un momento determinado.
No obstante, como una capa de abstracción adicional entre el sistema operativo y los discos que administra, LVM plantea ciertas dificultades, en particular, cuando se enfrenta a la pérdida de datos:
-
Reducción insegura de tamaño de volumen
Los intentos de reducir el tamaño de un volumen lógico o reasignar el espacio de almacenamiento utilizado por él a otro volumen a menudo resulta en el daño y la pérdida de datos, especialmente cuando el sistema de archivos está lleno o este tipo de sistema de archivos no soporta la reducción de tamaño.
-
Falta de arranque dual
Otros sistemas operativos no reconocen LVM y, por lo tanto, no se puede acceder a las particiones del último desde Windows o macOS. Para un entorno de arranque dual, se debe crear una partición estándar sin LVM.
-
Riesgo de sobrescritura
En caso de arranque múltiple, es posible que otros sistemas operativos no detecten este administrador de volúmenes y traten el disco como vacío, lo que conlleva la posibilidad de sobrescritura.
-
Sin tolerancia a fallas predeterminada
La pérdida o eliminación de un disco del LVM resulta en que todo el almacenamiento junto con todos los archivos se vuelva inaccesible, mientras que la probabilidad de esta falla aumenta con cada disco agregado a él.
-
Alta probabilidad de corrupción de metadatos
LVM brinda la posibilidad de ampliar un volumen lógico y su sistema de archivos cuando está montado y activo. Sin embargo, cualquier interrupción repentina de dicho procedimiento causada por un corte de energía, una falla de software o hardware o un error de usuario puede impedir que se escriban los metadatos correctos por completo y hacer que todo el almacenamiento se haga inutilizable.
Posibilidades de recuperar datos
Las ediciones Professional y RAID de UFS Explorer pueden leer los metadatos en los discos de LVM y reconstruir automáticamente dicho volumen en modo virtual. Su almacenamiento virtual se agregará a la lista de almacenamientos conectados en el panel izquierdo de la pantalla principal del programa para la recuperación posterior de datos. Al mismo tiempo, también se brindará acceso a los componentes del volumen.
Aún así, un daño serio o la sobrescritura completa de los metadatos del administrador LVM puede plantear un gran desafío para la recuperación de datos: en la mayoría de las veces, los datos en el LVM se almacenan en sectores no contiguos, especialmente cuando hay varios volúmenes físicos en un grupo de volúmenes y los tamaños de volúmenes se han cambiado muchas veces.
En algunos casos, los metadatos se pueden recuperar con la ayuda de una copia de seguridad que se almacena en /etc/lvm/backup. El nombre del archivo coincidirá con el nombre del grupo de volúmenes.
Si necesita recuperar datos de un volumen LVM, por favor, consulte las instrucciones respectivas.
Última actualización: el 01 de septiembre de 2022