Πριν από λίγο καιρό, παρουσιάσαμε τη δυνατότητα λήψης στιγμιοτύπων ενός δίσκου. Αυτό είναι ένα πολύ χρήσιμο χαρακτηριστικό που σας επιτρέπει να αποθηκεύετε γρήγορα και αποτελεσματικά τις καταστάσεις του δίσκου ακόμη και σε ενεργά συστήματα.
Χάρη στο ZFS, τα αυτόματα στιγμιότυπα θα καταναλώνουν μόνο τη διαφορά μεταξύ της τρέχουσας κατάστασης και του σημείου όπου λήφθηκε το στιγμιότυπο. Αυτό σημαίνει ότι εάν ο αρχικός σας δίσκος ήταν 15GB και μόνο 1MB δεδομένων έχει αλλάξει μεταξύ του στιγμιοτύπου και της τρέχουσας κατάστασης, το μέγεθος του στιγμιοτύπου θα είναι 1MB. Εάν γράψετε άλλο ένα megabyte στον δίσκο, το στιγμιότυπο θα αυξηθεί κατά άλλο ένα megabyte.
Ένα άλλο πλεονέκτημα αυτού του συστήματος είναι ότι οποιοδήποτε στιγμιότυπο μπορεί να αναβαθμιστεί (να κλωνοποιηθεί) σε έναν πλήρη δίσκο. Αυτό σημαίνει ότι μπορείτε να δημιουργήσετε ένα ανεξάρτητο αντίγραφο που μπορεί να προσαρτηθεί σε έναν διακομιστή, ενδεχομένως σε ένα εντελώς διαφορετικό σύστημα αποθήκευσης. Ως εκ τούτου, αυτό αποτελεί τη βάση για μια στρατηγική διαχείρισης αποθήκευσης (ανάλογα με τον φόρτο εργασίας σας).
Μια προειδοποίηση
Αν και η χρήση περιοδικών στιγμιοτύπων μπορεί να αποτελεί μέρος της στρατηγικής δημιουργίας αντιγράφων ασφαλείας, είναι ασύνετο να βασίζεστε στα στιγμιότυπα ως τη μοναδική σας στρατηγική.
Υπάρχουν επίσης πολλές περιπτώσεις όπου η χρήση αυτών των στιγμιοτύπων δεν θα λειτουργήσει, όπως η λήψη στιγμιοτύπου ενός ενεργού διακομιστή βάσης δεδομένων. Η λειτουργία στιγμιοτύπου μπορεί να εξακολουθεί να είναι χρήσιμη σε απενεργοποιημένους διακομιστές βάσεων δεδομένων (για τη δημιουργία επαναφοράς σε συγκεκριμένο χρονικό σημείο), αλλά και πάλι, δεν θα πρέπει να είναι η μοναδική σας στρατηγική δημιουργίας αντιγράφων ασφαλείας.
Δημιουργία αυτόματων στιγμιοτύπων
Χρησιμοποιώντας τη βιβλιοθήκη Python, η αυτοματοποίηση των στιγμιοτύπων είναι πραγματικά απλή. Ωστόσο, δεδομένου ότι πρέπει να αποθηκεύσουμε τα CloudSigma διαπιστευτήρια στο σύστημα που ενεργοποιεί τα στιγμιότυπα, θα σας αποτρέπαμε κατηγορηματικά από το να εκθέσετε τα διαπιστευτήρια υπηρεσιών παραγωγής με μη ασφαλή τρόπο. Εάν θέλετε να το εκτελέσετε σε έναν διακομιστή cloud για παράδειγμα, βεβαιωθείτε ότι είναι θωρακισμένος από την υπόλοιπη υποδομή (όπως με τη χρήση της λειτουργίας πολιτικών δικτύου μας) και ότι είναι πλήρως κλειδωμένος.
Μετά την εγκατάσταση της βιβλιοθήκης Python, μπορείτε να κάνετε λήψη και να εκτελέσετε το σενάριο ως εξής:
[bash light=”true”] $ wget https://raw.githubusercontent.com/cloudsigma/pycloudsigma/master/samples/snapshot.py$ python snapshot.py drive-uuid my-snapshot
[/bash]
snapshot.py δέχεται δύο ορίσματα:
- Το UUID του δίσκου για τον οποίο θέλετε να δημιουργήσετε στιγμιότυπο
- Ένα φιλικό όνομα για το στιγμιότυπο
Αφού δημιουργήσετε μη αυτόματα ένα στιγμιότυπο και επαληθεύσετε ότι λειτουργεί (μπορείτε να το δείτε στην ενότητα ‘snapshot’ του δίσκου), μπορούμε τώρα να το αυτοματοποιήσουμε.
Ο πιο κατάλληλος και τυποποιημένος τρόπος για την εκτέλεση μιας τέτοιας εργασίας θα ήταν στο crontab (υποθέτοντας ότι χρησιμοποιείτε Linux ή Mac OS X).
Με τον ίδιο χρήστη που δημιουργήσατε το παραπάνω στιγμιότυπο, εκτελέστε:
[bash light=”true”]
$ crontab -e
[/bash]
Εάν θέλετε να λαμβάνετε ένα στιγμιότυπο κάθε βράδυ στη 1 π.μ., προσθέστε την ακόλουθη γραμμή:
|
1 |
0 1 * * * python /path/to/snapshot.py drive-uuid my-snapshot >> $HOME/snapshot.log 2>&1 |
Θα παρατηρήσετε επίσης ότι το σενάριο θα καταγράφει σε ένα αρχείο με όνομα snapshot.log στον αρχικό κατάλογο του χρήστη που εκτελεί το σενάριο.
Αυτόματη εκκαθάριση στιγμιοτύπων
Καθώς τα στιγμιότυπα αυξάνονται με την πάροδο του χρόνου, πιθανότατα θα θέλετε να διαγράψετε αυτά τα στιγμιότυπα μετά από κάποιο χρονικό διάστημα. Για να λύσουμε αυτό το πρόβλημα, δημιουργήσαμε ένα άλλο σενάριο που μπορεί να το κάνει αυτό για εσάς. Το σενάριο ονομάζεται snapshot_purge.py και δέχεται δύο ορίσματα:
- Το UUID του δίσκου
- Τον αριθμό των ημερών για τις οποίες θέλετε να διατηρήσετε στιγμιότυπα
Για παράδειγμα, εάν θέλετε να διατηρήσετε στιγμιότυπα 30 ημερών, μπορείτε απλώς να εκτελέσετε:
[bash light=”true”]
$ wget https://raw.githubusercontent.com/cloudsigma/pycloudsigma/master/samples/snapshot_purge.py
$ python snapshot_purge.py drive-uuid 30
[/bash]
Φυσικά, μπορείτε να το αυτοματοποιήσετε και αυτό. Για παράδειγμα, εάν θέλουμε να εκκαθαρίσουμε στιγμιότυπα παλαιότερα των 30 ημερών, μπορούμε να προσθέσουμε το ακόλουθο στο crontab μας (το οποίο θα εκτελείται στη 1:30 π.μ.):
|
1 |
30 1 * * * python /path/to/snapshot_purge.py δίσκος-uuid 30 >> $HOME/snapshot_purge.log 2>&1 |
Ανακεφαλαίωση
Αυτό ήταν όλο, φίλοι. Χρησιμοποιώντας αυτά τα δύο σενάρια, θα μπορείτε να αυτοματοποιήσετε τα στιγμιότυπα των δίσκων σας. Αν χρειάζεται να δημιουργήσετε στιγμιότυπα για πολλούς δίσκους, απλώς προσθέστε περισσότερες γραμμές snapshot.py στο crontab σας με διαφορετικά UUID.
Φυσικά, απλώς αγγίζουμε την επιφάνεια των όσων μπορούμε να κάνουμε με τα στιγμιότυπα, αλλά ελπίζω αυτό να χρησιμεύσει ως ένα γρήγορο εντατικό μάθημα στη χρήση στιγμιοτύπων για τις ρουτίνες διαχείρισης του αποθηκευτικού σας χώρου.
Αν έχετε πιο εξελιγμένες ανάγκες διατήρησης δεδομένων, ελπίζουμε να μπορέσετε να επαναχρησιμοποιήσετε μέρος του κώδικα στα παραπάνω σενάρια.
Σχόλια
Δεν υπάρχουν σχόλια ακόμα. Γράψτε το πρώτο.