Las instentáneas de volúmenes lógicos (LVM) ofrecen una funcionalidad similar a los puntos de restauración en el software de virtualización, permitiendo guardar el estado de un volumen lógico en un momento específico. Esto es invaluable para operaciones como copias de seguridad, pruebas o para revertir cambios accidentales.
Al trabajar con instantáneas LVM, es importante considerar algunas características clave:
- El tamaño del volumen de la instantánea debe ser suficiente para almacenar todos los cambios que se produzcan en el volumen lógico original después de la creación de la instantánea. Si el espacio asignado a la instantánea se agota, esta se invalidará.
- Una instantánea tradicional LVM es de un solo uso para fines de reversión (fusión). Una vez que se realiza la operación de fusión o restauración, el volumen de la instantánea se elimina automáticamente.
Ejemplo Práctico de Instantáneas LVM
A continuación, se detalla un proceso paso a paso para crear, utilizar y futionar una instantánea de un volumen lógico.
Paso 1: Creación de un Volumen de Instantánea
Utilizaremos el comando lvcreate con la opción -s (snapshot) y -L para especificar el tamaño del volumen de la instantánea. Es una buena práctica asignar un tamaño considerable para la instantánea, epsecialmente si se esperan muchos cambios en el volumen original. En este ejemplo, asignaremos un tamaño igual al volumen original para asegurar suficiente espacio para los cambios, sobre un volumen lógico ya existente llamado /dev/storage/vol_datos.
--- Logical volume --- LV Path /dev/storage/snap_respaldo LV Name snap_respaldo VG Name storage LV UUID ZmFSwZ-WGPJ-iByJ-uZ8z-EWOh-G5UW-D45N34 LV Write Access read/write LV Creation host, time localhost.localdomain, 2024-06-23 03:48:37 +0800 LV snapshot status active destination for vol_datos LV Status available
open 0
LV Size 120.00 MiB Current LE 30 COW-table size 120.00 MiB COW-table LE 30 Allocated to snapshot 0.01% Snapshot chunk size 4.00 KiB Segments 1 Allocation inherit Read ahead sectors auto
- currently set to 8192 Block device 253:5
</div>La salida de `lvdisplay` muestra ahora dos volúmenes lógicos. El volumen original `vol_datos` aparece como "source of snap\_respaldo", y `snap_respaldo` se muestra como "active destination for vol\_datos", confirmando su rol de instantánea.
#### Paso 2: Modificación de Datos en el Volumen Original y Observación del Uso de la Instantánea
Crearemos un archivo grande en el directorio montado del volumen lógico original (asumiendo que `/dev/storage/vol_datos` está montado en `/mnt/mi_volumen`) para simular cambios de datos. Luego, verificaremos el estado de la instantánea para observar cómo aumenta el porcentaje de uso de su espacio.
<div>```
[root@localhost ~]# dd if=/dev/zero of=/mnt/mi_volumen/archivo_grande count=1 bs=100M
1+0 records in
1+0 records out
104857600 bytes (105 MB, 100 MiB) copied, 1.00347 s, 104 MB/s
[root@localhost ~]# lvdisplay
--- Logical volume ---
LV Path /dev/storage/vol_datos
LV Name vol_datos
VG Name storage
LV UUID Pm8rum-Ht2q-jq06-oOiA-PAtV-KFPM-i5TFIu
LV Write Access read/write
LV Creation host, time localhost.localdomain, 2024-06-23 00:18:16 +0800
LV snapshot status source of
snap_respaldo [active]
LV Status available
# open 1
LV Size 120.00 MiB
Current LE 30
Segments 1
Allocation inherit
Read ahead sectors auto
- currently set to 8192
Block device 253:2
--- Logical volume ---
LV Path /dev/storage/snap_respaldo
LV Name snap_respaldo
VG Name storage
LV UUID ZmFSwZ-WGPJ-iByJ-uZ8z-EWOh-G5UW-D45N34
LV Write Access read/write
LV Creation host, time localhost.localdomain, 2024-06-23 03:48:37 +0800
LV snapshot status active destination for vol_datos
LV Status available
# open 0
LV Size 120.00 MiB
Current LE 30
COW-table size 120.00 MiB
COW-table LE 30
Allocated to snapshot 83.72%
Snapshot chunk size 4.00 KiB
Segments 1
Allocation inherit
Read ahead sectors auto
- currently set to 8192
Block device 253:5
Paso 3: Fusión de la Instantánea para Restaurar el Volumen Lógico
Para revertir el volumen original al estado de la instantánea, realizaremos una operación de fusión. Es crucial desmontar el volumen lógico original antes de proceder con la fusión.
Paso 4: Verificación de la Restauración
Una vez completada la fusión, el volumen de la instantánea (snap_respaldo) se eliminará automáticamente. Procederemos a montar nuevamente el volumen lógico y verificar que el archivo archivo_grande, creado en el Paso 2, ya no existe.
(No se muestra "snap_respaldo" en la lista)
</div>Como se puede observar, el contenido del directorio `/mnt/mi_volumen` ha vuelto a su estado original (solo `lost+found`), y el volumen de instantánea `snap_respaldo` ya no aparece en la salida de `lvdisplay`, confirmando que la restauración fue exitosa y la instantánea eliminada.