Πώς να δημιουργήσετε αντίγραφα ασφαλείας για Citrix Xen VMs δωρεάν με Xen-pocalypse (Bash)
Έχετε ποτέ χρειαστεί να δημιουργήσετε αντίγραφα ασφαλείας των εικονικών μηχανών σας Citrix Xen (VM), αλλά δεν θέλετε να σπάσετε την τράπεζα να το κάνει; Το HTG έχει μόνο το σενάριο bash για εσάς με Xen-pocalypse.
Εικόνα από h.koppdelaney, Stuck σε Custom και Hotfortech.
Ένα από τα ωραία πράγματα στο Citrix Xen είναι ότι πολλά από τα χαρακτηριστικά του είναι Ελεύθερος χρέωση. Με αυτό είπε, αν θέλετε τη λειτουργία "Αυτοματοποιημένη προστασία και ανάκτηση VM", θα πρέπει να αρχίσετε να πληρώνετε για την άδεια "Advance". Ακόμα και τότε, πληρώνετε μόνο για αντίγραφα ασφαλείας επιπέδων δίσκου, τα οποία δεν επαρκούν για πολλούς τύπους φόρτου εργασίας, όπως Active directory, βάσεις δεδομένων κ.λπ. Για να ξεπεραστεί αυτό ίσως θέλετε το "στιγμιότυπο ζωντανής μνήμης και να επανέλθει", το οποίο μπορεί να σώσει ολόκληρο κατάσταση της μηχανής, συμπεριλαμβανομένων των περιεχομένων της μνήμης RAM. Ωστόσο, το χαρακτηριστικό αυτό αποτελεί μέρος των εκδόσεων "Enterprise" και "Platinum", οι οποίες είναι ακόμη πιο ακριβές. Δεν είναι ότι εμείς στην HTG απορρίπτουμε την αξία ενός πραγματικού λογισμικού δημιουργίας αντιγράφων ασφαλείας, αλλά αν είστε σε έναν σφιχτό προϋπολογισμό και δεν σας ενοχλούν κάποιο χρόνο διακοπής για την εφεδρική λειτουργία, ίσως βρείτε το Xen-pocalypse να είναι μια απόλυτα λογική λύση πριν προβείτε στη δέσμευση του προϋπολογισμού.
ΣΦΑΙΡΙΚΗ ΕΙΚΟΝΑ
Η "περίπτωση χρήσης": Έχετε δύο VM που απαιτούν ένα αντίγραφο ασφαλείας. Η "απενεργοποίηση ενός VM και εξαγωγή του ως αρχείου" από το "Κέντρο Xen" χρησιμοποιώντας τα δεξιά κλικ λειτουργεί καλά, αλλά θέλετε αυτή η διαδικασία να πραγματοποιείται αυτόματα και με χρονοδιάγραμμα. Αυτό το σενάριο Bash χρησιμοποιεί την εντολή "XE" για την εκτέλεση των καθηκόντων του. Το XE είναι η διεπαφή γραμμής εντολών Xen (CLI), αυτόματη ισοδύναμη για την έκδοση των "δεξιών κλικ" στο "Xen Center". Θα καλέσουμε το σενάριο από το Cron το οποίο θα παρέχει το τμήμα "προγραμματισμού". Στην απλούστερη μορφή της, η εφεδρική ροή είναι:
- Απενεργοποιήστε το στόχο VM.
- Εξαγωγή του VM ως αρχείο στη θέση δημιουργίας αντιγράφων ασφαλείας.
- Αν το VM ήταν ενεργοποιημένο, πριν ξεκινήσει το backup, θα ενεργοποιηθεί ξανά.
Ας πάρουμε ρωγμές :)
Αποκτήστε το σενάριο
Το Xen-pocalypse μπορεί να ληφθεί ελεύθερα από το github, χρησιμοποιώντας τις συνήθεις μεθόδους git. Με αυτό είπε, αν δεν είστε versed σε git ακόμα, μπορείτε να πάρετε το αρχείο zip με αυτόν τον σύνδεσμο. Καθώς το σενάριο πρέπει να τρέχει σε έναν από τους διακομιστές σας Xen, θα πρέπει να το εξάγετε εκεί για να διατηρηθούν τα δικαιώματα εκτέλεσης.
wget https://github.com/aviadra/Xen-pocalypse/archive/master.zip
unzip master
Ενώ τα παραπάνω θα λειτουργούσαν, σας συμβουλεύουμε να χρησιμοποιήσετε τη μέθοδο GIT, έτσι ώστε να μπορείτε να επωφεληθείτε από τις μελλοντικές ενημερώσεις.
Αποκτήστε το SendEmail (προαιρετικό)
Έχουμε γράψει για το πρόγραμμα Perl SendEmail στο παρελθόν, οπότε δεν χρειάζεται να επαναλάβω εδώ. Αρκεί να πούμε ότι λειτουργεί με τον ίδιο τρόπο στο Linux όπως και στα Windows.
Ενώ η ενεργοποίηση του μηνύματος ηλεκτρονικού ταχυδρομείου είναι προαιρετική, συνιστάται ιδιαίτερα επειδή τότε το σενάριο θα είναι σε θέση:
- Ενημερώστε πότε ξεκίνησε και τελείωσε.
- Σας ειδοποιεί για τυχόν λάθη που κατάφερε να εντοπίσει και να χειριστεί.
- Ενημερώστε για τα εκτοπίσματα του αντιγράφου ασφαλείας λόγω διαστημικών προβλημάτων. (Αυτή η συμπεριφορά μπορεί να απενεργοποιηθεί αν δεν είναι επιθυμητή)
Κατεβάστε το στο διακομιστή Xen και εξαγάγετε.
wget http://caspian.dotconf.net/menu/Software/SendEmail/sendEmail-v1.56.tar.gz
tar xvzhf sendEmail-v1.56.tar.gz
Σημειώστε τη θέση στην οποία το εξάγατε. Θα το χρειαστείτε για το αρχείο ρυθμίσεων.
Ορισμός ετικετών
Το Citrix Xen σάς δίνει τη δυνατότητα να διαμορφώσετε "Προσαρμοσμένα πεδία" για δυνατότητες φιλτραρίσματος. Θα δημιουργήσουμε τα πεδία και στη συνέχεια θα τα συμπληρώσουμε με τις πληροφορίες που χρησιμοποιεί το Xen-pocalypse. Το Xen-pocalypse αναγνωρίζει 3 TAG ελέγχου, τα οποία προσδιορίζουν το όνομα της ετικέτας για τη δημιουργία αντιγράφων ασφαλείας και τις σχέσεις γονέων με παιδιά. Αν δεν σκοπεύετε να χρησιμοποιήσετε τη μέθοδο εισαγωγής αρχείων, ΠΡΕΠΕΙ να δημιουργήσετε τουλάχιστον το πεδίο ονόματος εφεδρικής ετικέτας.
Για να το κάνετε αυτό, ανοίξτε τις ιδιότητες του διακομιστή ή ακόμα και του VM. Στο παράθυρο πλοήγησης, επιλέξτε "Προσαρμοσμένα πεδία".
Αν αυτή είναι η πρώτη φορά που ορίζετε μια σχέση (όπως στο παραπάνω παράδειγμα), δεν θα έχετε κανένα πεδίο για την εισαγωγή δεδομένων, οπότε θα πρέπει να τα δημιουργήσετε. Για να το κάνετε αυτό, κάντε κλικ στο "Επεξεργασία προσαρμοσμένων πεδίων" στο παράθυρο διαλόγου που εμφανίζεται, κάντε κλικ στο "Προσθήκη ..."
Δημιουργήστε τρία (3) πεδία τύπου "κειμένου". Κάποιος θα ονομάζεται "BackupTAG" και οι άλλοι "γονείς" και "παιδιά".
Σημείωση: Τα ονόματα των προσαρμοσμένων πεδίων έχουν "σκληρό κώδικα" στο σενάριο, οπότε δεν πρέπει να αποκλίνετε από την παραπάνω ορθογραφία, εκτός και αν αλλάξετε τον σχετικό κώδικα.
Αφού δημιουργηθούν όλα τα πεδία, πρέπει να δείτε:
Κλείστε το παράθυρο. Θα πρέπει τώρα να συμπληρώσετε τα πεδία "BackupTAG", "Γονείς" και "Παιδιά", όπως στην παρακάτω εικόνα.
Τώρα το μόνο που έχετε να κάνετε είναι να ορίσετε ποια VMs ανήκουν σε αυτό που "BackupTAG".
Για παράδειγμα, στην εταιρεία όπου καλλιεργήθηκε το σενάριο, είχαμε VMs που έπρεπε να υποστηρίζονται εβδομαδιαίως την Πέμπτη και την Παρασκευή, ένα πρόγραμμα για τα VMs προϊόντων Atlassian και μερικά που έπρεπε να υποστηρίζονται μόνο μηνιαία. Έτσι, η επισκόπηση μας έμοιαζε με:
Όπου για παράδειγμα "εβδομαδιαία-fri" ήταν το κείμενο που καταχωρήσαμε στο "CustomPage" "BackupTAG". Καλά; :)
Γονείς & παιδιά (προαιρετικά)
Η πραγματική ομορφιά αυτού του σεναρίου είναι ότι υποστηρίζει σχέσεις "γονέα" με "παιδί". Δηλαδή, είναι δυνατόν να ορίσετε μια λίστα των VM "παιδιών" που θα απενεργοποιηθούν και θα δημιουργηθούν αντίγραφα ασφαλείας πριν από τον γονέα και ότι αυτά τα παιδιά θα ενεργοποιηθούν ξανά μόλις ο γονέας έχει τελειώσει το αντίγραφο ασφαλείας και έχει γυρίσει πίσω επί. Αυτό είναι χρήσιμο σε περιπτώσεις όπου η απενεργοποίηση του γονικού VM θα προκαλέσει την μη παροχή της υπηρεσίας στο παιδί. Ένα τέτοιο πράγμα θα σήμαινε ότι η υπηρεσία στο VM του παιδιού θα ήταν μη διαθέσιμη δύο φορές, μία φορά για την διαδικασία δημιουργίας αντιγράφων ασφαλείας του παιδιού και μία φορά για τον γονέα. Η δημιουργία αυτής της σχέσης ξεπερνά αυτό το πρόβλημα.
Για παράδειγμα, όλα τα VM του Atlassian χρησιμοποιούσαν ένα VM DataBase (DB), το οποίο επίσης είχε οριστεί για να δημιουργηθεί αντίγραφο ασφαλείας. Επομένως, σημειώνοντας ότι το DB VM είναι ένας "γονέας" στα άλλα VM, μπορεί να εξασφαλιστεί μια σωστή σειρά διακοπής -> backup -> startup.
Τη στιγμή της γραφής, αυτή η λειτουργία έχει μερικές προειδοποιήσεις:
- Τα ονόματα των VM που πρόκειται να έχουν μια τέτοια σχέση δεν μπορούν να περιέχουν κενά. Θα πρέπει να αφαιρέσετε κενά από τα ονόματα VM, διότι θα οριοθετηθούν, όπως στο παρακάτω παράδειγμα.
- Μπορεί να υπάρχει μόνο ένας γονέας. Ο προσδιορισμός περισσότερων από έναν δεν είναι καν προγραμματισμένος για να μην αναφέρουμε δοκιμασμένο.
Για να δημιουργήσετε αυτήν τη σχέση, μεταβείτε στις ιδιότητες του VM. Αν αυτό είναι "γονέας", γράψτε ποιοι είναι τα παιδιά του και αν αυτό είναι "παιδί", γράψτε ποιος είναι ο γονέας του. Για παράδειγμα:
Σημείωση: Δεν ορίζει γονέα για ένα παιδί μπορεί να προκαλέσει την εκκίνηση του παιδιού πριν ο γονέας του είναι έτοιμος και μπορεί να προκαλέσει τη δημιουργία αντιγράφων ασφαλείας δύο φορές.
Η μέθοδος FILE (Προαιρετικό)
Για ιστορικούς λόγους, το Xen-pocalypse υποστηρίζει επίσης τη δημιουργία αντιγράφων ασφαλείας του καταλόγου VM ως αρχείο κειμένου. Ενώ ο "κώδικας" παραμένει εκεί, η λειτουργικότητα είναι πολύ κατώτερη από τη μέθοδο TAGs και ως εκ τούτου δεν συνιστάται. Με αυτό είπε, αν προτιμάτε να χρησιμοποιήσετε τη μέθοδο λίστας για κάποιο λόγο, ισχύουν οι ακόλουθοι περιορισμοί:
- Τα ονόματα των VM δεν μπορούν να περιέχουν διαστήματα ή ειδικούς χαρακτήρες.
- Μπορεί να υπάρχει μόνο ένα όνομα VM ανά γραμμή.
- Δεν επιτρέπονται κενές γραμμές.
Για να δημιουργήσετε τη λίστα, αντιγράψτε το όνομα του VM από το κέντρο Xen ή εκτελέστε σε έναν κεντρικό υπολογιστή Xen:
xe vm-list | grep όνομα-ετικέτα | awk
'print $ 4' | είδος
Αντιγράψτε την παραπάνω λίστα σε ένα κανονικό αρχείο κειμένου.
Η θέση δημιουργίας αντιγράφων ασφαλείας
Ενώ ανακάλυψα τυχαία το Citrix Xen, ανακάλυψα ότι τα Αποθηκευτικά Αποθηκευτικά (SRs) είναι διαθέσιμα για χρήση κάτω από το "/ var / run / sr-mount /% UUID%" όπου το UUID είναι το μοναδικό αναγνωριστικό του SR που λαμβάνεται από το GUI.
Αυτό σημαίνει ότι μπορούμε να χρησιμοποιήσουμε τον κανονικό "Next -> Next -> Finish" οδηγό για να δημιουργήσουμε τη βάση στην επιθυμητή θέση δημιουργίας αντιγράφων ασφαλείας και στη συνέχεια να χρησιμοποιήσουμε το σενάριο εκείνο το μονοπάτι (όπως προσαρμόζεται στο βήμα με τοποθέτηση από τη γραμμή εντολών) αυτό είναι πέρα από το πεδίο εφαρμογής αυτού του οδηγού.
Για να δημιουργήσετε μια νέα "mount", κάντε δεξί κλικ στο όνομα του διακομιστή και επιλέξτε New SR.
Σε αυτό το παράδειγμα θα δείξουμε το Xen σε ένα κοινόχρηστο παράθυρο των Windows, οπότε επιλέξτε "Κοινή χρήση αρχείων των Windows (CIFS)":
Ολοκληρώστε το Επόμενο -> Επόμενο -> Τέλος.
Λάβετε το UUID του SR
Για να αποκτήσετε UUID ενός SR, απλά κάντε κλικ στο όνομά του στο Κέντρο Xen και μεταβείτε στην καρτέλα "Γενικά".
Για να αντιγράψετε το UUID, απλά κάντε δεξί κλικ και επιλέξτε "copy".
Με αυτές τις πληροφορίες, είστε έτοιμοι να επεξεργαστείτε το αρχείο ρυθμίσεων.
Ρυθμίστε το αρχείο ρυθμίσεων.
Το έργο Xen-pocalypse συνοδεύεται από ένα πρότυπο αρχείου "settings". Αυτό το πρότυπο θα πρέπει να επεξεργαστεί ώστε να αντικατοπτρίζει την εγκατάστασή σας και να περάσει ως το πρώτο όρισμα στο σενάριο. Το αρχείο ρυθμίσεων ορίζει τα εξής:
Η μέθοδος για την απόκτηση των VM που πρέπει να δημιουργηθούν αντίγραφα ασφαλείας - Η προεπιλεγμένη μέθοδος είναι τα TAG. Μπορείτε να το αλλάξετε σε ΑΡΧΕΙΟ, αλλά αυτό δεν συνιστάται.
Η τοποθεσία του προορισμού backup - Εάν έχετε ακολουθήσει τον οδηγό σε αυτό το σημείο, πρέπει μόνο να αντικαταστήσετε το% UUID% με τα SR's όπως αυτό λήφθηκε από τα παραπάνω.
Η τοποθεσία του SendEmail - Εάν έχετε επιλέξει να ενεργοποιήσετε το Email, θα πρέπει να εισαγάγετε εδώ, όπου έχετε εξαγάγει το εκτελέσιμο αρχείο perl εδώ.
Στοιχεία ηλεκτρονικού ταχυδρομείου - Και πάλι, εάν έχετε ενεργοποιήσει το ηλεκτρονικό ταχυδρομείο, θα πρέπει να ορίσετε λεπτομέρειες όπως: To, From, Servername / IP & etc '.
Συμπίεση - Αυτό έχει οριστεί σε "Όχι" από προεπιλογή, διότι ενώ ενεργοποιώντας το θα παράγει ένα μικρότερο αντίγραφο ασφαλείας, θα προκαλέσει επίσης τη διαδικασία αντιγράφων ασφαλείας να εκτελεστεί για πολύ μεγαλύτερο χρονικό διάστημα.
Ελέγξτε για ελεύθερο χώρο στον προορισμό - Αυτό θα έχει το σενάριο να ελέγξει ότι η δημιουργία του αντιγράφου ασφαλείας του VM δεν θα προκαλέσει τον ελεύθερο χώρο του χώρου αποθήκευσης να πέσει κάτω από 10GB. Αυτό γίνεται για να εξασφαλιστεί ότι αντί για ένα πολύ μεγάλο VM υποστηρίζεται το μεγαλύτερο μέρος των VM. Ο υπολογισμός πραγματοποιείται χρησιμοποιώντας το συνολικό μέγεθος του μικτού δίσκου όλων των HD που σχετίζονται με το VM.
Debugging - Η προεπιλογή είναι να έχει απενεργοποιηθεί η αποσφαλμάτωση με την τιμή "0" (μηδέν). Δεν χρειάζεται να ενεργοποιήσετε αυτήν την ενέργεια, αλλά αν το κάνετε, περισσότερες πληροφορίες σημειώνονται στο τμήμα αντιμετώπισης προβλημάτων.
Εκτέλεση / Προγραμματισμός
Στην απλούστερη μορφή του, μια κλήση του Xen-pocalypse θα μοιάζει με:
./Xen-backup.sh settings.cfg εβδομαδιαία -ή
Σε περίπτωση που στην παραπάνω περίπτωση είμαστε μέσα στον κατάλογο που περιέχει τη δέσμη ενεργειών & το αρχείο ρυθμίσεων. Η "ετικέτα" που θα αναζητήσει το σενάριο είναι "weekly-fri".
Όπως σημειώθηκε παραπάνω, θα χρησιμοποιήσουμε το Cron για να προγραμματίσουμε την εκτέλεση. Πριν πάμε στη διαμόρφωση, είναι συνιστάται ότι ρυθμίζετε το ήδη εγκατεστημένο πακέτο SSMTP στον διακομιστή Xen. Παρόλο που αυτό είναι ένα προαιρετικό βήμα, αυτό θα σας δώσει έναν συλλέκτη αντίστροφης πλύσης. Έχοντας έναν τέτοιο "συλλέκτη backwash" μπορεί να σας ειδοποιήσει για πράγματα που το σενάριο δεν είναι σε θέση να.
Είσοδος στην επεξεργασία cron περισσότερο με την έκδοση:
crontab -e
Εάν έχετε ακολουθήσει τις παραπάνω οδηγίες και θέλετε να προσθέσετε ένα προγραμματισμένο αντίγραφο ασφαλείας για την Παρασκευή στις 18:01 (6:01 μ.μ.), εισάγετε τα παρακάτω:
01 18 * * fri /root/Xen-pocalypse-master/Xen_Backup.sh/root/Xen-pocalypse-master/settings.cfg εβδομαδιαία-fri
Τα παραπάνω είναι σωστά υποθέτοντας ότι το σενάριο και το αρχείο ρυθμίσεων βρίσκονται και στο "/ root / Xen-pocalypse-master /".
Αντιμετώπιση προβλημάτων
Παρόλο που έχω καταβάλει μεγάλη προσπάθεια για να καταστήσω το σενάριο τόσο εύκολο στη χρήση όσο και όσο πιο ξέγνοιαστο είναι δυνατόν, "Ο κόσμος είναι ένα μεγαλύτερο εργαστήριο". Οι παρακάτω πληροφορίες μπορεί να σας βοηθήσουν να διαπιστώσετε ποια είναι η πηγή των προβλημάτων σας.
Πρόοδος
Ίσως θελήσετε να χρησιμοποιήσετε αυτό το πλαίσιο για να "παρακολουθήσετε" γρήγορα όλες τις εργασίες που βρίσκονται σε εξέλιξη, για να διαπιστώσετε εάν αυτές εξελίσσονται καθόλου ή αν είναι πραγματικά κολλημένες.
ενώ [-e / dev / null]; κάντε για VM σε "$ (xe task-list | grep uuid | awk 'print $ 5')"; κάνουμε xe task-param-get param-name = πρόοδος uuid = $ VM; ύπνος 1; Έγινε; Έγινε
Για να σταματήσετε να παρακολουθείτε, χρησιμοποιήστε το συνδυασμό πλήκτρων Ctrl + C για να σταματήσετε το "while loop".
Ξύλευση
Όλες οι "καταγραφές" συλλέγονται από τον ξενιστή Xen που τρέχει το σενάριο στον μηχανισμό syslog. Αυτό φυσικά μπορεί να προβληθεί με:
λιγότερα + F / var / log / μηνύματα
Ψάχνετε για τη λέξη κλειδί "Xen-pocalypse".
Σημείωση: Η Citrix έχει θέσει μια πολιτική διατήρησης δύο (2) ημερών για το syslog των διακομιστών της. Μπορεί να θέλετε να το έχετε υπόψη σας για μεταθανάτια.
Debugging
Όπως σημειώνεται στο τμήμα αρχείων ρυθμίσεων, υπάρχει μια οδηγία για την ενεργοποίηση εντοπισμού σφαλμάτων. Η ενεργοποίηση του εντοπισμού σφαλμάτων θα προκαλέσει τη δέσμη ενεργειών να παράγει λεπτομερή καταγραφή στην κονσόλα και να την εκτοξεύσει από την αποστολή μηνυμάτων ηλεκτρονικού ταχυδρομείου και την πραγματική εκτέλεση των εξαγωγών, εκτός και αν έχουν οριστεί οι αντίστοιχες σημαίες. Οι πιθανές σημαίες σημειώνονται στο πρότυπο αρχείο ρυθμίσεων και σας δίνουν τη δυνατότητα να καθορίσετε λεπτομερώς τι θέλετε να διορθώσετε.
Ελπίζω ότι δεν χρειάζεστε κανένα σφάλμα και αποκομίζετε τους καρπούς της εργασίας μου :)
Ώθηση, ο άνθρωπος μου, είστε έτοιμος να γίνετε υπήκοος νούμερο ένα ...