Snapper es una utilidad de línea de comandos en Linux que se utiliza para crear y administrar instantáneas de volúmenes delgados LVM. Puede crear, eliminar y comparar instantáneas y revertir los cambios realizados entre instantáneas. Snapper también permite la fácil creación y administración de instantáneas para Btrfs.
Instalando pargo
Use el comando yum para instalar el paquete de software snapper.
# yum install snapper ... Transaction Summary ============================================================= Install 1 Package (+3 Dependent packages) Total download size: 499 k Installed size: 1.5 M Is this ok [y/d/N]: y ... Complete!
Utilice el comando rpm –ql para ver los archivos proporcionados por el paquete snapper.
# rpm –ql snapper /etc/cron.daily/snapper /etc/cron.hourly/snapper /etc/dbus-1/system.d/org.opensus.Snapper.conf /etc/logrotate.d/snapper /usr/bin/snapper /usr/sbin/snapperd /usr/share/dbus-1/system-services/org.opensus.Snapper.service ...Tenga en cuenta los dos archivos cron snapper.
– De forma predeterminada, snapper configura un cron.hourly trabajo para crear instantáneas en .snapshots subdirectorio del volumen y un cron.daily trabajo para limpiar instantáneas antiguas.
– Puede editar el archivo de configuración para deshabilitar o cambiar este comportamiento.
1. Creación de un volumen lógico de aprovisionamiento fino
Utilice el comando lvcreate para crear un volumen de aprovisionamiento delgado denominado thinvol1. Tenga en cuenta que este volumen debe montarse antes de crear la instantánea con el comando snapper.
# vgs VG #PV #LV #SN Attr VSize VFree myvolg 1 0 0 wz--n- 1020.00m 1020.00m
Crea una piscina delgada:
# lvcreate –v –L 100m –T myvolg/mythinpool ... Logical volume “mythinpool” created
Crear un volumen con aprovisionamiento ligero:
# lvcreate –v –V 200m –T myvolg/mythinpool –n thinvol1 ... Logical volume “thinvol1” created
Cree un sistema de archivos en el volumen delgado.
# mkfs.ext4 /dev/myvolg/thinvol1 ... Writing superblocks and filesystem accounting information: done
Monte el sistema de archivos:
# mkdir /myvol1 # mount /dev/myvolg/thinvol1 /myvol1
2. Creando el archivo de configuración del pargo
Para crear una instantánea con snapper, se requiere un archivo de configuración para el volumen delgado LVM o el subvolumen Btrfs. Los volúmenes LVM y Btrfs también deben tener un sistema de archivos montado. Utilice el comando create-config para crear el archivo de configuración. El siguiente ejemplo crea un archivo de configuración denominado myvol_snap para un sistema de archivos LVM ext4 montado en /myvol1:
# snapper –c myvol1_snap create-config –f "lvm(ext4)" /myvol1
– Este comando agrega una entrada a /etc/sysconfig/snapper.
– Este comando crea el archivo de configuración /etc/snapper/configs/myvol1_snap.
– Este comando crea un directorio .snapshots en /myvol1 directorio.
# cat /etc/sysconfig/snapper ... SNAPPER_CONFIGS=”myvol1_snap”
# cat /etc/snapper/configs/myvol1_snap ... # subvolume to snapshot SUBVOLUME=”/myvol1” # filesystem type FSTYPE=”lvm(ext4)” ... # start comparing pre- and post-snapshot in background after... BACKGROUND_COMPARISON=”yes” # run daily number cleanup NUMBER_CLEANUP=”yes” ... # create hourly snapshots TIMELINE_CREATE=”yes” # cleanup hourly snapshots after some time TIMELINE_CLEANUP=”yes” ... # cleanup empty pre-post-pairs EMPTY_PRE_POST_CLEANUP=”yes” ...
Las instantáneas del sistema de archivos /myvol1 se almacenan en el subdirectorio .snapshots.
# ls –la /myvol1 ... drwxr-x--- ... .snapshots ...
Tipos de instantáneas
Hay tres tipos de instantáneas que puede crear usando snapper:
pre: Úselo para registrar el estado de un volumen antes de una modificación. Las instantáneas previas siempre deben tener una instantánea posterior correspondiente.
publicación: Úselo para registrar el estado de un volumen después de una modificación.
único: Estas instantáneas no tienen una relación especial con otras instantáneas.
3. Creando instantánea
Cree algún archivo de prueba en el directorio /myvol1.
# echo "This is a test file" > /myvol1/test_file
Use snapper create -t pre para crear una instantánea previa del volumen definido por myvol1_snap archivo de configuración. Incluya la opción –p para mostrar el número de la instantánea que se está creando. (En este ejemplo, el número de instantánea previa es 1)
# snapper –c myvol1_snap create –t pre –p 1
Las instantáneas se almacenan por número de instantánea en el subdirectorio .snapshots del volumen. Ver el contenido del directorio /myvol1/.snapshots.
# ls –l /myvol1/.snapshots ... drwxr-xr-x ... 1
Ver el contenido del directorio /myvol1/.snapshots/1.
# ls –l /myvol1/.snapshots/1 ... -rw------- ... info.xml drwxr-x--- ... snapshot
Ahora modifique el contenido del directorio /myvol1 eliminando test_file.
# rm /myvol1/test_file
Utilice snapper create -t post para crear una instantánea posterior del volumen definido por el archivo de configuración myvol1_snap. Incluya la opción –pre-num 1 para asociar esta instantánea posterior con la instantánea previa 1. Incluya la opción –p para mostrar el número de la instantánea que se está creando.
# snapper –c myvol1_snap create –t post --pre-num 1 –p 2
Vería un nuevo nombre de directorio 2 creado en el directorio .snapshots.
# ls –l /myvol1/.snapshots/2 ... -rw------- ... filelist-1.txt -rw------- ... info.xml drwxr-x--- ... snapshot
La lista de archivos-1.txt contiene el archivo que se eliminó después de la instantánea previa y antes de la instantánea posterior.
# cat /myvol1/.snapshots/2/filelist-1.txt -..... /test_file
Comparación de instantáneas previas y posteriores
Utilice el comando snapper status para mostrar los archivos y directorios que se agregaron, eliminaron o modificaron entre la instantánea previa 1 y la instantánea posterior 2.
# snapper –c myvol1_snap status 1..2 -..... /test_file
Utilice el comando snapper diff para mostrar las diferencias entre el contenido de los archivos en la instantánea previa 1 y la instantánea posterior 2.
# snapper –c myvol1_snap diff 1..2 Binary files /myvol1/.snapshots/1/snapshot/test_file and /myvol1/.snapshots/2/snapshot/test_file differ
Use el comando snapper list para enumerar las instantáneas que existen para el volumen definido por el archivo de configuración myvol1_snap.
# snapper –c myvol1_snap list Type | # | Pre # | Date | User | Cleanup |Description| Userdata ------+---+-------+------+------+---------+------------+-------- single| 0 | | ... | root | | Current | pre | 1 | | ... | root | | | post | 2 | 1 | ... | root | | |
revertir los cambios de post snapshot a pre shanshot
Para deshacer los cambios de la instantánea posterior a la instantánea previa, es decir, para restaurar el archivo de prueba, use el deshacer cambio del complemento comando.
# snapper –c myvol1_snap undochange 1..2 create:1 modify:0 delete:0
Verificar
# ls /myvol1 lost+found test_file