Gestión de Instantáneas (Snapshots) de Volúmenes Lógicos LVM en Linux

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.

Etiquetas: LVM Logical Volumes snapshots linux Volume Management

Publicado el 7-21 03:00