GNU/Linux >> Linux Esercitazione >  >> Linux

Come creare snapshot di volumi sottili LVM utilizzando il comando snapper

Snapper è un'utilità della riga di comando in Linux utilizzata per creare e gestire snapshot di volumi sottili LVM. Può creare, eliminare e confrontare istantanee e ripristinare le modifiche apportate tra le istantanee. Snapper consente inoltre di creare e gestire facilmente le istantanee per Btrfs.

Installazione dello snapper

Usa il comando yum per installare il pacchetto 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!

Utilizzare il comando rpm –ql per visualizzare i file forniti dal pacchetto 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 
...
Nota i due file cron snapper.
– Per impostazione predefinita, snapper imposta un cron.hourly lavoro per creare snapshot in .snapshots sottodirectory del volume e un cron.daily lavoro per ripulire i vecchi snapshot.
– È possibile modificare il file di configurazione per disabilitare o modificare questo comportamento.

1. Creazione di un volume logico Thinly Provisioned

Utilizzare il comando lvcreate per creare un volume con thin provisioning denominato – thinvol1. Nota che questo volume deve essere montato prima di creare lo snapshot utilizzando il comando snapper.

# vgs
VG      #PV #LV  #SN  Attr     VSize      VFree
myvolg  1    0    0   wz--n-   1020.00m   1020.00m

Crea una piscina sottile:

# lvcreate –v –L 100m –T myvolg/mythinpool 
...
  Logical volume “mythinpool” created

Crea volume con thin provisioning :

# lvcreate –v –V 200m –T myvolg/mythinpool –n thinvol1 
...
  Logical volume “thinvol1” created

Crea un file system sul volume sottile.

# mkfs.ext4 /dev/myvolg/thinvol1
...
Writing superblocks and filesystem accounting information: done

Monta il file system:

# mkdir /myvol1
# mount /dev/myvolg/thinvol1 /myvol1

2. Creazione del file di configurazione dello snapper

Per creare uno snapshot utilizzando snapper, è necessario un file di configurazione per il volume sottile LVM o il sottovolume Btrfs. Anche i volumi LVM e Btrfs devono avere un file system montato. Utilizzare il comando create-config per creare il file di configurazione. L'esempio seguente crea un file di configurazione chiamato myvol_snap per un file system LVM ext4 montato su /myvol1:

# snapper –c myvol1_snap create-config –f "lvm(ext4)" /myvol1

– Questo comando aggiunge una voce a /etc/sysconfig/snapper.
– Questo comando crea il file di configurazione /etc/snapper/configs/myvol1_snap.
– Questo comando crea una directory .snapshots in /myvol1 directory.

# 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”
...

Gli snapshot del file system /myvol1 sono archiviati nella sottodirectory .snapshots.

# ls –la /myvol1
...
drwxr-x--- ... .snapshots
...

Tipi di istantanee

Esistono tre tipi di snapshot che puoi creare utilizzando snapper:
pre: Utilizzare per registrare lo stato di un volume prima di una modifica. Gli snapshot pre devono sempre avere uno snapshot post corrispondente.
post: Utilizzare per registrare lo stato di un volume dopo una modifica.
singolo: Queste istantanee non hanno alcuna relazione speciale con altre istantanee.

3. Creazione di un'istantanea

Crea un file di prova nella directory /myvol1.

# echo "This is a test file" > /myvol1/test_file

Usa lo snapper create -t ​​pre per creare una pre-istantanea del volume definito da myvol1_snap file di configurazione. Includere l'opzione –p per visualizzare il numero dello snapshot in fase di creazione. (In questo esempio, il numero pre-istantanea è 1)

# snapper –c myvol1_snap create –t pre –p
1

Gli snapshot vengono archiviati in base al numero di snapshot nella sottodirectory .snapshots del volume. Visualizza il contenuto della directory /myvol1/.snapshots.

# ls –l /myvol1/.snapshots 
...
drwxr-xr-x ... 1

Visualizza il contenuto della directory /myvol1/.snapshots/1.

# ls –l /myvol1/.snapshots/1 
...
-rw-------    ...     info.xml 
drwxr-x---    ...     snapshot

Ora modifica il contenuto della directory /myvol1 rimuovendo il file_test.

# rm /myvol1/test_file

Usa lo snapper create -t ​​post per creare un'istantanea del post del volume definito dal file di configurazione myvol1_snap. Includere l'opzione –pre-num 1 per associare questo post snapshot con lo snapshot pre 1. Includere l'opzione –p per visualizzare il numero dello snapshot in fase di creazione.

# snapper –c myvol1_snap create –t post --pre-num 1 –p 
2

Vedresti una nuova directory con i nomi 2 creati nella directory .snapshots.

# ls –l /myvol1/.snapshots/2 
...
-rw------- ... filelist-1.txt 
-rw------- ... info.xml 
drwxr-x--- ... snapshot

Il filelist-1.txt contiene il file che è stato eliminato dopo lo snapshot pre e prima dello snapshot post.

# cat /myvol1/.snapshots/2/filelist-1.txt 
-..... /test_file

Confronto tra snapshot pre e post

Usa il comando di stato dello snapper per visualizzare i file e le directory che sono stati aggiunti, rimossi o modificati tra il pre snapshot 1 e il post snapshot 2.

# snapper –c myvol1_snap status 1..2
-..... /test_file

Usa il comando snapper diff per visualizzare le differenze tra i contenuti dei file nella prima istantanea 1 e nella post istantanea 2.

# snapper –c myvol1_snap diff 1..2
Binary files /myvol1/.snapshots/1/snapshot/test_file and /myvol1/.snapshots/2/snapshot/test_file differ

Utilizzare il comando snapper list per elencare gli snapshot esistenti per il volume definito dal file di configurazione 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 |         |           |

annulla le modifiche dallo snapshot post a quello pre-shanshot

Per annullare le modifiche dallo snapshot post al pre snapshot, ad esempio per ripristinare il file_test, utilizzare snapper undochange comando.

# snapper –c myvol1_snap undochange 1..2 
create:1 modify:0 delete:0

Verifica

# ls /myvol1
lost+found
test_file


Linux
  1. Come creare un database in MySQL utilizzando la riga di comando

  2. Come creare un'unità USB avviabile utilizzando il comando dd

  3. Come creare snapshot del filesystem utilizzando Snapper Command su Linux

  4. Come creare file sparsi in Linux usando il comando 'dd'

  5. È così che funzionano gli snapshot LVM?

Come creare un collegamento simbolico in Linux usando il comando Ln

Come creare un file in Linux usando Cat Command

Come creare un alias in Linux

Come creare un file in Linux usando Terminal

Come creare e ripristinare snapshot VM in VirtualBox

Come creare una partizione usando il comando "separato".