LVM Snapshots Backup and Restore on Linux

Nei nostri tutorial precedenti, abbiamo visto che l’implementazione di volumi LVM può essere molto utile per gestire lo spazio sul tuo host.

Il livello di gestione del volume logico espone un’API che può essere utilizzata per aggiungere o rimuovere spazio a piacimento, mentre il sistema è in esecuzione.

Tuttavia, c’è un’altra caratteristica fondamentale esposta da LVM che può essere molto utile per gli amministratori di sistema : snapshot LVM.

In informatica, le istantanee vengono utilizzate per descrivere lo stato di un sistema in un determinato momento.

In questo tutorial, vedremo come è possibile implementare snapshot LVM facilmente.

Stiamo anche andando a vedere come è possibile eseguire il backup di un intero filesystem utilizzando istantanee e ripristinarlo a volontà.

Indice

Prerequisiti

Per creare snapshot LVM, è ovviamente necessario avere almeno un volume logico creato sul proprio sistema.

Se non si è sicuri che questo sia il caso o meno, è possibile eseguire il comando ” lvs ” per visualizzare i volumi logici esistenti.

$ lvs
elenco dei volumi logici su linux

In questa situazione, abbiamo un volume logico 3 GB creato sul nostro sistema.

Tuttavia, avere un volume logico di 3 GB non significa necessariamente che l’intero spazio sia utilizzato sul nostro sistema.

Per verificare la dimensione effettiva del volume logico, è possibile controllare lo spazio su disco utilizzato utilizzando il comando “df”.

$ df -h

Nota : il volume logico deve essere montato per poter controllare lo spazio utilizzato..

Se non sei sicuro di montare volumi logici o partizioni, controlla il nostro tutorial sul montaggio dei filesystem.

controllo delle dimensioni del volume logico su linux

Come puoi vedere qui, il volume logico ha una capacità di 3 GB, ma solo 3.1 MB sono usati sul filesystem.

Ad esempio, diciamo che vogliamo eseguire il backup della cartella /etc del nostro server.

$ cp -R /etc /mnt/lv_mount

Ora che la nostra cartella di configurazione viene copiata nel nostro volume logico, vediamo come possiamo creare un’istantanea LVM di questo filesystem.

Creazione di istantanee LVM utilizzando lvcreate

Per creare un’istantanea LVM di un volume logico, è necessario eseguire il comando “lvcreate” con l’opzione “-s” per “snapshot”, l’opzione “-L” con la dimensione e il nome del volume logico.

Facoltativamente, è possibile specificare un nome per lo snapshot con l’opzione “- n”.

$ lvcreate -s -n <snapshot_name> -L <size> <logical_volume>
creazione di un'istantanea lvm utilizzando lvcreate

Nota: non sarà possibile creare nomi di snapshot con “snapshot” nel nome in quanto si tratta di una parola chiave riservata.

Dovrai anche assicurarti di avere abbastanza spazio rimanente nel gruppo di volumi poiché l’istantanea verrà creata nello stesso gruppo di volumi per impostazione predefinita.

Ora che la tua istantanea è stata creata, puoi controllarla eseguendo direttamente il comando “lvs” o il comando “lvdisplay”.

$ lvs$ lvdisplay <snapshot_name>
visualizzazione di lvm istantanee utilizzando lvs

Come si può vedere, il volume logico è un insieme di attributi diversi rispetto all’originale volume logico :

  • s : per l’istantanea “o” significato origine per l’originale volume logico copiato l’istantanea;
  • w : per scrivere il che significa che il vostro snapshot dispone di autorizzazioni di lettura e scrittura su di esso;
  • i: “ereditato”;
  • a: “allocato”, il che significa che un effettivo spazio è dedicato questo volume logico;
  • o : (nel sesto campo) che significa “apri” che indica che il volume logico è montato;
  • s : tipo di destinazione snapshot per entrambi i volumi logici

Ora che viene creato il volume logico snapshot, sarà necessario montarlo per eseguire un backup del filesystem.

Montaggio di un’istantanea LVM tramite mount

Per montare un’istantanea LVM, è necessario utilizzare il comando “mount”, specificare il percorso completo del volume logico e specificare il punto di mount da utilizzare.

$ mount <snapshot_path> <mount_point>

Ad esempio, diciamo che vogliamo montare “/dev/vg_1/lvol0” sul punto di montaggio “/mnt/lv_snapshot” sul nostro sistema.

Per ottenere ciò, eseguiremmo il seguente comando :

$ mount /dev/vg_1/lvol0 /mnt/snapshot

È possibile verificare immediatamente che il funzionamento del montaggio sia efficace eseguendo nuovamente il comando “lsblk”.

$ lsblk
montaggio di uno snapshot lvm su linux

Backup degli snapshot LVM

Ora che lo snapshot è montato, sarà possibile eseguirne un backup utilizzando i comandi tar o rsync.

Quando si eseguono i backup, si hanno essenzialmente due opzioni : è possibile eseguire una copia locale oppure è possibile scegliere di trasferire gli archivi direttamente su un server di backup remoto.

Creazione di un backup di snapshot LVM locale

Il modo più semplice per eseguire il backup di uno snapshot LVM è utilizzare il comando “tar” con l’opzione “-c” per “crea”, l’opzione “z” per creare un file gzip e “-f” per specificare un file di destinazione.

$ tar -cvzf backup.tar.gz <snapshot_mount>

Nel nostro caso, poiché l’istantanea è montata sul mountpoint “/ mnt/ lv_snapshot”, il comando di backup sarebbe :

$ tar -cvzf backup.tar.gz /mnt/lv_snapshot

Quando si esegue questo comando, verrà creato un backup nella directory di lavoro corrente.

Creazione e trasferimento di un backup snapshot LVM

In alcuni casi, si possiede un server di backup che può essere utilizzato per archiviare regolarmente i backup LVM.

Per creare tali backup, si utilizzerà il comando “rsync”, specificando il filesystem da eseguire e il server di destinazione da utilizzare.

# If rsync is not installed already, you will have to install using apt$ sudo apt-get install rsync$ rsync -aPh <snapshot_mount> <remote_user>@<destination_server>:<remote_destination>

Nota: se non sei sicuro dei trasferimenti di file su Linux, dovresti controllare il tutorial che abbiamo scritto sull’argomento.

Ad esempio, diciamo che lo snapshot è montato su “/mnt/lv_snapshot” e che vogliamo inviare lo snapshot al server di backup che si trova sull’indirizzo IP “192.168.178.33”.

Per connettersi al server di backup remoto, utilizziamo l’account “kubuntu” e scegliamo di avere i file memorizzati nella cartella “/backup”.

$ rsync -aPh /mnt/lv_snapshot :/backups

Ora che viene eseguito il backup dello snapshot del volume logico, sarà possibile ripristinarlo facilmente su richiesta.

creazione di backup lvm da remoto

Ripristino delle istantanee LVM

Ora che il backup di LVM viene eseguito, sarà possibile ripristinarlo sul sistema locale.

Per ripristinare un volume logico LVM, è necessario utilizzare il comando “lvconvert” con l’opzione “–mergesnapshot” e specificare il nome dello snapshot del volume logico.

Quando si utilizza – – mergesnapshot”, l’istantanea viene unita al volume logico originale e viene eliminata subito dopo.

$ lvconvert --mergesnapshot <snapshot_logical_volume>

Nel nostro caso, l’istantanea del volume logico è stata denominata lvol0, quindi avremmo eseguito il seguente comando

$ lvconvert --mergesnapshot vg_1/lvol0
unione di snapshot utilizzando lvconvert

Come probabilmente hai notato, entrambi i dispositivi (l’originale e l’istantanea non possono essere aperti per il successo dell’operazione di unione.

In alternativa, è possibile aggiornare il volume logico per riattivarlo utilizzando i metadati più recenti utilizzando “lvchange”

$ lvchange --refresh vg_1/lv_1

Al termine dell’operazione di fusione, è possibile verificare che il volume logico sia stato rimosso dall’elenco dei volumi logici disponibili.

$ lvs
visualizzazione di volumi logici senza snapshot

Fatto!

L’istantanea del volume logico viene ora rimossa e le modifiche sono state unite al volume logico originale.

Conclusione

In questo tutorial, hai imparato a conoscere le istantanee LVM, cosa sono e come possono essere utilizzate per il backup e il ripristino dei file system.

La creazione di backup su base regolare è essenziale, soprattutto quando si lavora in un’azienda di medie e grandi dimensioni.

Avere backup ed essere in grado di ripristinarli facilmente è il modo migliore per assicurarsi che si sarà in grado di prevenire la perdita di dati importanti sui vostri sistemi.

Se sei interessato all’amministrazione del sistema Linux, abbiamo una sezione completa dedicata ad esso sul sito web, quindi assicurati di controllarlo!