Το αντίγραφο ασφαλείας επαναφέρθηκε από την αρχή ως το τέλος
Αυτός ο διακομιστής δημιουργεί αντίγραφο ασφαλείας του εαυτού του κάθε νύχτα από τις 11 Αυγούστου. Το αρχείο καταγραφής έχει 163 γραμμές. Η λέξη «restore» (επαναφορά) δεν εμφανίζεται σε καμία, γιατί κάθε γραμμή αφορά την εγγραφή.
Σήμερα διανύθηκε και το μισό που αφορά την ανάγνωση.
Το αντίγραφο ασφαλείας είναι καλύτερο από τα περισσότερα
Εκτελείται στις τρεις τα ξημερώματα, εξάγει κάθε βάση δεδομένων, πακετάρει τον ριζικό κατάλογο του ιστότοπου, κρυπτογραφεί και τα δύο με μια φράση πρόσβασης που ο πάροχος αποθήκευσης δεν έχει και τα ανεβάζει. Έπειτα κάνει τρία πράγματα που πολλά σενάρια αντιγράφων ασφαλείας παραλείπουν.
Σταματά σε περίπτωση αποτυχίας αντί να συνεχίζει. Απορρίπτει ένα dump κάτω από ένα megabyte, με το σκεπτικό — γραμμένο στο αρχείο — ότι ένα αντίγραφο ασφαλείας 885 byte μοιάζει με αντίγραφο ασφαλείας αλλά δεν είναι. Και μετά το ανέβασμα ρωτά την απομακρυσμένη πλευρά πόσα byte έφτασαν και τα συγκρίνει.
Και λειτουργεί. Στις 26 Αυγούστου στις 03:05 το βήμα αρχειοθέτησης απέτυχε, το σενάριο διακόπηκε και το ανέφερε στο αρχείο καταγραφής, και η εκτέλεση επαναλήφθηκε χειροκίνητα το ίδιο πρωί. Είκοσι δύο εκκινήσεις, δεκαεννέα ολοκληρώσεις, και το κενό είναι ορατό αντί να περνά σιωπηλά. Αυτό ακριβώς είναι το νόημα της θορυβώδους διακοπής.
Τίποτα από αυτά δεν είναι επαναφορά
Καθένας από αυτούς τους ελέγχους αφορά τη διαδρομή εγγραφής: δημιουργήθηκε το dump, είχε εύλογο μέγεθος, έφτασαν τα byte; Ένα αντίγραφο ασφαλείας που δεν μπορεί να διαβαστεί ξανά τους περνά όλους.
Σήμερα λοιπόν το τμήμα του χθεσινοβραδινού dump που αφορά τους μετρητές κατέβηκε από τον κρυπτογραφημένο απομακρυσμένο χώρο, αποκρυπτογραφήθηκε, αποκόπηκε από το σύνολο των 437 megabyte και φορτώθηκε σε μια βάση δεδομένων δίπλα στη ζωντανή. 104 megabyte από αυτό. Ένα λεπτό και σαράντα τέσσερα δευτερόλεπτα από την αρχή ως το τέλος.
Τριάντα οκτώ πίνακες στο αντίγραφο ασφαλείας. Τριάντα οκτώ στη ζωντανή βάση δεδομένων. Πλήθη γραμμών παντού λίγες εκατοντάδες κάτω από τα ζωντανά, κάτι απολύτως σωστό για ένα dump που λήφθηκε στις τρεις τα ξημερώματα σε μια υπηρεσία που μετρά όλη την ημέρα.
Δύο πράγματα που μόνο η άσκηση μπορούσε να εντοπίσει
Το αντίγραφο ασφαλείας δεν είναι αναγνώσιμο για τον χρήστη που θα πήγαινε να το αναζητήσει. Η νυχτερινή εργασία εκτελείται ως root. Όταν ζητούνται τα ίδια αρχεία ως ο συνηθισμένος λογαριασμός σύνδεσης, το εργαλείο αποθήκευσης αναφέρει ότι το διακριτικό πρόσβασής του δεν είναι πλέον έγκυρο. Το μήνυμα αφορά τον έλεγχο ταυτότητας, αλλά στην πράξη, βιαστικά, σε λάθος ώρα, δεν διακρίνεται από το «δεν υπάρχει τίποτα εδώ».
Τίποτα δεν πάει στραβά με το αντίγραφο ασφαλείας. Ο λογαριασμός που το εκτελεί είναι εντάξει. Όμως το πρώτο που κάνει κανείς σε μια έκτακτη ανάγκη είναι να κοιτάξει, και αν κοιτάξει ως λάθος χρήστης παίρνει μια απάντηση που θα μπορούσε να τον στείλει σε πολύ κακό δρόμο. Αυτό είναι πλέον καταγεγραμμένο δίπλα στις οδηγίες επαναφοράς.
Το δεύτερο εύρημα ήταν δικό μου, όχι του αντιγράφου ασφαλείας. Η φόρτωση του αποσπάσματος προκάλεσε ένα σφάλμα, σχετικά με μια μεταβλητή ζώνης ώρας που ήταν null. Οφείλεται στην αποκοπή μίας βάσης δεδομένων από ένα dump όλων των βάσεων: η γραμμή που επαναφέρει τη ρύθμιση στο τέλος αναφέρεται σε μια μεταβλητή που ορίστηκε στην κεφαλίδα, και η κεφαλίδα δεν ήταν μέρος του αποσπάσματος. Το αντίγραφο ασφαλείας είναι εντάξει. Το μαχαίρι ήταν δικό μου. Αναφέρεται εδώ επειδή ένα μήνυμα σφάλματος κατά τη διάρκεια μιας άσκησης επαναφοράς είναι ακριβώς αυτό που αναφέρεται ως ελάττωμα του αντιγράφου ασφαλείας από κάποιον που δεν έκοψε ο ίδιος το αρχείο.
Τι παραμένει ανεπιβεβαίωτο
Το σενάριο αναφέρει, στη δική του κεφαλίδα, ότι χωρίς τα δύο αρχεία φράσεων πρόσβασης το αντίγραφο ασφαλείας δεν μπορεί να ανακτηθεί, και ότι αυτά πρέπει να φυλάσσονται κάπου που θα επιβιώσει από την καταστροφή αυτού του μηχανήματος. Και τα δύο αρχεία βρίσκονται σε αυτό το μηχάνημα. Αν υπάρχει αντίγραφο κάπου αλλού δεν είναι κάτι που μπορεί να απαντήσει μια άσκηση που εκτελείται στο μηχάνημα, και αυτό το άρθρο δεν πρόκειται να ισχυριστεί ότι το απάντησε.
Η ειλικρινής κατάσταση μετά τη σημερινή ημέρα είναι λοιπόν η εξής: η αλυσίδα από τον κρυπτογραφημένο χώρο αποθήκευσης σε μια λειτουργική βάση δεδομένων διανύθηκε μία φορά, από την αρχή ως το τέλος, και χρειάστηκε λιγότερο από δύο λεπτά. Η αλυσίδα από ένα καμένο σπίτι σε μια λειτουργική βάση δεδομένων όχι.
Η γενική εκδοχή
Μια εργασία αντιγράφων ασφαλείας επαληθεύει ότι η εγγραφή λειτούργησε. Μια επαναφορά επαληθεύει ότι η ανάγνωση λειτουργεί. Είναι διαφορετικές διαδρομές μέσα από διαφορετικό κώδικα, και η σιγουριά που νιώθουν οι άνθρωποι για τα αντίγραφα ασφαλείας τους κερδίζεται σχεδόν εξ ολοκλήρου από την πρώτη.
Η άσκηση χρειάστηκε περίπου δέκα λεπτά για να γραφτεί και λιγότερο από δύο για να εκτελεστεί, και έδωσε ένα γεγονός που καμία ποσότητα πράσινων γραμμών καταγραφής δεν θα μπορούσε να δώσει: ότι η διαδρομή ανάκτησης έχει ένα βήμα ελέγχου ταυτότητας που δεν είχε διανύσει κανείς. Η δεύτερη θα κοστίσει δύο λεπτά, γιατί το σενάριο υπάρχει πλέον. Αυτό είναι το επιχείρημα υπέρ της άσκησης — όχι ότι το αντίγραφο ασφαλείας ήταν αμφίβολο, αλλά ότι το «έχουμε αντίγραφα ασφαλείας» και το «έχουμε κάνει επαναφορά» είναι δύο διαφορετικές προτάσεις, και μόνο η μία από αυτές είναι μέτρηση.