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

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.

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>

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>

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

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.

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

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

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!
