Ένα αρχείο επαναφέρει μια λειτουργική εγκατάσταση Pritunl· το άλλο επαναφέρει μόνο μια εικόνα της. Ένα προφίλ πελάτη, ένα αντίγραφο της ρύθμισης του κεντρικού υπολογιστή και ένα tarball του καταλόγου κατάστασης μοιάζουν όλα με αντίγραφα ασφαλείας και κανένα από αυτά μόνο του δεν επιστρέφει τους οργανισμούς, τους χρήστες και τους ορισμούς διακομιστών που διαχειρίζεται το Pritunl. Η διαφορά είναι η ιδιοκτησία: μέρος της κατάστασης ανήκει σε μια βάση δεδομένων, μέρος στον κεντρικό υπολογιστή και μέρος είναι αναγεννημένη έξοδος. Επιλέξτε το λάθος επίπεδο και η επαναφορά παράγει έναν διακομιστή που ξεκινά, ακούει και δεν γνωρίζει τίποτα. Αυτή η σύγκριση χωρίζει τα τρία επίπεδα ώστε το αρχείο που κρατάτε να ταιριάζει με τη βλάβη από την οποία ανακάμπτετε.

Δύο αντικείμενα μοιάζουν με αντίγραφα ασφαλείας και μόνο ένα επαναφέρει την υπηρεσία

Ένα ληφθέν προφίλ πελάτη περιέχει πιστοποιητικό, κλειδί και τελικό σημείο. Είναι πλήρες για αυτή τη μία συσκευή και άχρηστο ως αρχείο της εγκατάστασης: δεν φέρει οργανισμούς, απενεργοποιημένους χρήστες, διαδρομές διακομιστών ή διαχειριστικούς λογαριασμούς. Η επαναφορά από φάκελο προφίλ δίνει πελάτες που δεν μπορούν να αυθεντικοποιηθούν σε τίποτα.

Ένα αντίγραφο της ρύθμισης του κεντρικού υπολογιστή είναι εξίσου μερικό. Το /etc/pritunl.conf περιέχει ρυθμίσεις επιπέδου κεντρικού υπολογιστή, συμπεριλαμβανομένου του τρόπου πρόσβασης στη βάση δεδομένων, και δεν περιέχει τα ίδια τα αντικείμενα VPN.

Τι κατέχει η βάση δεδομένων και τι κατέχει ο κεντρικός υπολογιστής

Το Pritunl διατηρεί ορισμούς διακομιστών, χρήστες, οργανισμούς και κλειδιά στο MongoDB. Αυτή η βάση δεδομένων είναι το έγκυρο επίπεδο ελέγχου και κάθε παραγόμενο αρχείο OpenVPN στον δίσκο είναι έξοδος που προέρχεται από αυτήν. Μια αλλαγή που γίνεται απευθείας σε παραγόμενο αρχείο επιβιώνει μέχρι την επόμενη αναγέννηση και μετά εξαφανίζεται, γι’ αυτό η επεξεργασία αρχείων χρόνου εκτέλεσης δεν είναι διαρκής διόρθωση. Ο ίδιος κανόνας ισχύει για τις ενεργές διαδρομές και τις διεπαφές: περιγράφουν τι παρήγαγε το επίπεδο ελέγχου, όχι τι θα έπρεπε να παράγει.

Ο κεντρικός υπολογιστής συνεισφέρει ένα μικρότερο αλλά μη μεταφερόμενο σύνολο τιμών. Μία από αυτές είναι το /var/lib/pritunl/pritunl.uuid, η ταυτότητα αυτού του συγκεκριμένου κόμβου.

Αυτή η ταυτότητα έχει τη μεγαλύτερη σημασία σε ένα σύμπλεγμα. Ένας αντικαταστάτης κεντρικός υπολογιστής χρειάζεται τη δική του εγγραφή αντί για κλώνο του UUID ενός ενεργού κόμβου, αλλιώς οι δύο μάχονται για την ίδια ταυτότητα. Καταγράψτε την αντιστοίχιση μεταξύ κάθε κεντρικού υπολογιστή, του UUID του και της βάσης δεδομένων στην οποία δείχνει, επειδή μία εξαγωγή βάσης δεδομένων δεν περιγράφει ποιες ρυθμίσεις κεντρικού υπολογιστή ανήκαν σε ποιο μηχάνημα. Οι εκδόσεις λογισμικού και τα δημόσια ονόματα τελικών σημείων ανήκουν στην ίδια εγγραφή.

Κάντε μια συνεπή εξαγωγή, όχι αντίγραφο καταλόγου

Η αντιγραφή του καταλόγου δεδομένων του MongoDB όσο η υπηρεσία γράφει παράγει αρχεία που μπορεί να μη σχηματίζουν χρησιμοποιήσιμη βάση δεδομένων. Χρησιμοποιήστε αντί αυτού την υποστηριζόμενη διαδρομή εξαγωγής της βάσης δεδομένων, εκτελεσμένη απέναντι στην τοπολογία που έχετε πραγματικά:

mongodump --uri="mongodb://127.0.0.1:27017/pritunl" --out=/var/backups/pritunl/db
sudo tar czf /var/backups/pritunl/host.tgz /etc/pritunl.conf /var/lib/pritunl/pritunl.uuid

Ένας αυτόνομος κεντρικός υπολογιστής ανέχεται αυτή την απλή μορφή. Ένα σύνολο αντιγράφων χρειάζεται ένα συνεπές χρονικό σημείο και μια εξαγωγή βασισμένη σε oplog έχει απαιτήσεις που μια απλή εξαγωγή δεν έχει. Η υποστηριζόμενη διαδικασία εξαρτάται από την έκδοση και την τοπολογία MongoDB σας, οπότε μην τη συμπεραίνετε από την ύπαρξη καταλόγου δεδομένων. Αρχειοθετήστε το επίπεδο του κεντρικού υπολογιστή δίπλα στην εξαγωγή, στην ίδια εκτέλεση, με την ίδια χρονική σφραγίδα.

Εξασκηθείτε στην επαναφορά πριν τη χρειαστείτε

Ένα αντίγραφο ασφαλείας που κανείς δεν επανέφερε είναι υπόθεση. Χτίστε την υπηρεσία σε απομονωμένο δίκτυο, επαναφέρετε την εξαγωγή και βάλτε πίσω τα αρχεία του κεντρικού υπολογιστή:

mongorestore --uri="mongodb://127.0.0.1:27017" --drop /var/backups/pritunl/db
sudo tar xzf /var/backups/pritunl/host.tgz -C /

Στη συνέχεια επαληθεύστε τα αντικείμενα και όχι τη διαδικασία: συνδεθείτε, επιβεβαιώστε ότι οι οργανισμοί και οι χρήστες υπάρχουν και ξεκινήστε έναν δοκιμαστικό πελάτη απέναντι σε έναν ορισμό διακομιστή που αναγνωρίζετε. Εμποδίστε τον επαναφερμένο κεντρικό υπολογιστή να διαφημίζει το τελικό σημείο παραγωγής ή να δέχεται πραγματικές συνδέσεις μέχρι οι διευθύνσεις και οι ταυτότητες να είναι σκόπιμες. Εδώ επίσης ανακαλύπτετε ότι το αρχείο χρειάζεται διαπιστευτήρια που ζούσαν μόνο στο μηχάνημα που απέτυχε, οπότε αποθηκεύστε τα διαπιστευτήρια ανάκτησης σε ανεξάρτητο μέρος. Μια επαναφορά που εξαρτάται από τον κεντρικό υπολογιστή που μόλις χάσατε δεν είναι σχέδιο επαναφοράς.

Τέλος, θυμηθείτε ότι ένα παλιό στιγμιότυπο επαναφέρει παλιές αποφάσεις. Αν ένας διαχειριστής απενεργοποίησε μια ταυτότητα αφού λήφθηκε η εξαγωγή, η επαναφορά την ενεργοποιεί ξανά. Η συμφιλίωση μετά την ανάκτηση ανήκει στη διαδικασία, όχι στη μεταγενέστερη σκέψη.

Σχετικά άρθρα