Qualche tempo fa, abbiamo introdotto la possibilità di creare snapshot di un'unità. Questa è una funzionalità molto comoda che consente di salvare in modo rapido ed efficiente gli stati dell'unità anche su sistemi live.
Grazie a ZFS, gli snapshot automatici consumeranno solo il delta tra lo stato corrente e il momento in cui è stato creato lo snapshot. Ciò significa che se l'unità originale era di 15 GB e solo 1 MB di dati è cambiato tra lo snapshot e lo stato corrente, la dimensione dello snapshot sarà di 1 MB. Se si scrive un altro megabyte sul disco, lo snapshot crescerà di un altro megabyte.
Un'altra bellezza di questo sistema è che qualsiasi snapshot può essere promosso (clonato) in un'unità disco completa. Ciò significa che è possibile creare una copia indipendente che può essere montata su un server, potenzialmente su un sistema di storage completamente diverso. In quanto tale, questo costituisce la base per una strategia di gestione dello storage (a seconda del carico di lavoro).
Un avvertimento
Sebbene l'uso di snapshot periodici possa far parte della strategia di backup, non è saggio affidarsi agli snapshot come unica strategia.
Ci sono anche numerose situazioni in cui l'uso di questi snapshot non funzionerà, come la creazione di snapshot di un server di database in esecuzione. La funzionalità di snapshot potrebbe essere comunque utile su server di database arrestati (per creare un ripristino a un punto preciso nel tempo), ma, ancora una volta, non dovrebbe essere l'unica strategia di backup.
Creazione di snapshot automatici
Utilizzando la nostra libreria Python, automatizzare gli snapshot è davvero semplice. Tuttavia, dato che dobbiamo memorizzare le credenziali di CloudSigma sul sistema che attiva gli snapshot, vi sconsigliamo vivamente di esporre le credenziali del servizio di produzione in modo non sicuro. Se desiderate eseguirlo su un server cloud, ad esempio, assicuratevi che sia schermato dal resto dell’infrastruttura (ad esempio utilizzando la nostra funzionalità di policy di rete) e che sia completamente protetto.
Dopo aver installato la libreria Python, è possibile scaricare ed eseguire lo script come segue:
[bash light=”true”] $ wget https://raw.githubusercontent.com/cloudsigma/pycloudsigma/master/samples/snapshot.py$ python snapshot.py drive-uuid my-snapshot
[/bash]
snapshot.py accetta due argomenti:
- L'UUID dell'unità di cui si desidera creare lo snapshot
- Un nome descrittivo per lo snapshot
Dopo aver creato manualmente uno snapshot e aver verificato che funzioni (è possibile vederlo nella sezione ‘snapshot’ dell’unità), ora possiamo automatizzarlo.
Il modo più adatto e standardizzato per eseguire un'attività come questa sarebbe tramite il crontab (presupponendo che vi troviate su Linux o Mac OS X).
Con lo stesso utente con cui è stato creato lo snapshot sopra, eseguire:
[bash light=”true”]
$ crontab -e
[/bash]
Se si desidera creare uno snapshot ogni notte all'una, aggiungere la riga seguente:
|
1 |
0 1 * * * python /path/to/snapshot.py drive-uuid my-snapshot >> $HOME/snapshot.log 2>&1 |
Noterete anche che lo script registrerà i log in un file chiamato snapshot.log nella home directory dell’utente che esegue lo script.
Eliminazione automatica degli snapshot
Poiché gli snapshot crescono nel tempo, probabilmente si desidererà eliminare questi snapshot dopo un certo periodo. Per risolvere questo problema, abbiamo creato un altro script in grado di farlo. Lo script si chiama snapshot_purge.py e accetta due argomenti:
- L'UUID dell'unità
- Il numero di giorni di snapshot che si desidera conservare
Ad esempio, se si desidera conservare 30 giorni di snapshot, è sufficiente eseguire:
[bash light=”true”]
$ wget https://raw.githubusercontent.com/cloudsigma/pycloudsigma/master/samples/snapshot_purge.py
$ python snapshot_purge.py drive-uuid 30
[/bash]
Naturalmente è possibile automatizzare anche questo. Ad esempio, se vogliamo eliminare gli snapshot più vecchi di 30 giorni, possiamo aggiungere quanto segue al nostro crontab (che verrà eseguito all'1:30):
|
1 |
30 1 * * * python /path/to/snapshot_purge.py drive-uuid 30 >> $HOME/snapshot_purge.log 2>&1 |
In conclusione
Questo è tutto, gente. Utilizzando questi due script, sarete in grado di automatizzare gli snapshot dei vostri drive. Se avete bisogno di creare snapshot di più drive, aggiungete semplicemente altre righe di snapshot.py al vostro crontab con UUID diversi.
Naturalmente stiamo solo grattando la superficie di ciò che possiamo fare con gli snapshot, ma spero che questo serva da rapido corso accelerato sull’uso degli snapshot per le vostre routine di gestione dell’archiviazione.
Se avete esigenze di conservazione dei dati più sofisticate, speriamo che possiate riutilizzare parte del codice degli script sopra.
Commenti
Ancora nessun commento. Scrivi il primo.