Záloha sa obnovila od začiatku do konca
V tomto článku
Tento server sa od 11. augusta každú noc zálohuje. Protokol má 163 riadkov. Slovo „restore“ sa neobjavuje ani v jednom, pretože každý riadok je o zapisovaní.
Dnes sa prešla aj druhá polovica – čítanie.
Záloha je lepšia než väčšina
Beží o tretej ráno, vytvorí výpis každej databázy, zabalí koreňový adresár webu, oboje zašifruje prístupovou frázou, ktorú poskytovateľ úložiska nemá, a odošle. Potom urobí tri veci, ktoré veľa zálohovacích skriptov vynecháva.
Pri zlyhaní sa zastaví namiesto pokračovania. Odmietne výpis menší než jeden megabajt s odôvodnením — zapísaným v súbore — že 885-bajtová záloha vyzerá ako záloha, ale nie je ňou. A po odoslaní sa opýta druhého konca, koľko bajtov dorazilo, a porovná to.
Aj funguje. Dňa 26. augusta o 03:05 krok archivácie zlyhal, skript sa prerušil a uviedol to v protokole a beh sa to isté ráno ručne zopakoval. Dvadsaťdva spustení, devätnásť dokončení a medzera je viditeľná, nie tichá. To je celý zmysel hlasného prerušenia.
Nič z toho nie je obnovenie
Každá z týchto kontrol sa týka cesty zápisu: či výpis vznikol, či mal vierohodnú veľkosť, či bajty dorazili. Záloha, ktorá sa nedá spätne prečítať, prejde všetkými.
Dnes sa preto časť počítadiel z výpisu minulej noci vytiahla zo šifrovaného vzdialeného úložiska, dešifrovala, vyrezala zo 437-megabajtového celku a načítala do databázy vedľa živej. Bolo jej 104 megabajtov. Jedna minúta štyridsaťštyri sekúnd od začiatku do konca.
Tridsaťosem tabuliek v zálohe. Tridsaťosem v živej databáze. Počty riadkov všade o niekoľko stoviek nižšie než v živej, čo je presne správne pre výpis z tretej ráno pri službe, ktorá celý deň počíta.
Dve veci, ktoré mohol nájsť iba nácvik
Záloha je nečitateľná pre používateľa, ktorý by ju šiel hľadať. Nočná úloha beží ako root. Pri požiadavke na tie isté súbory pod bežným prihlasovacím účtom nástroj úložiska hlási, že jeho prístupový token už nie je platný. Správa je o overovaní, ale jej podoba v zhone a v nesprávnu hodinu sa nedá rozlíšiť od „nič tu nie je“.
So zálohou nič nie je zle. Účet, ktorý ju vykonáva, je v poriadku. Prvá vec, ktorú však človek v núdzi urobí, je pozrieť sa a pohľad pod nesprávnym používateľom dá odpoveď, ktorá ho môže zaviesť veľmi zlou cestou. To je teraz zapísané vedľa návodu na obnovenie.
Druhé zistenie bolo moje, nie zálohy. Načítanie výseku vytvorilo jednu chybu o hodnote null premennej časového pásma. Pochádza z vyrezania jednej databázy z výpisu všetkých databáz: riadok obnovujúci nastavenie na konci odkazuje na premennú nastavenú v hlavičke a hlavička nebola súčasťou výseku. Záloha je v poriadku. Nôž bol môj. Je to tu preto, že chybové hlásenie pri nácviku obnovy je presne vec, ktorú niekto, kto sám súbor nerezal, nahlási ako chybu zálohy.
Čo stále nie je overené
Skript vo vlastnej hlavičke hovorí, že bez dvoch súborov s prístupovou frázou je záloha neobnoviteľná a že patria niekam, kde prežijú zničenie tohto stroja. Oba súbory sú na tomto stroji. Či existuje kópia niekde inde, nie je otázkou, na ktorú by nácvik na tomto stroji dokázal odpovedať, a tento príspevok nebude tvrdiť, že odpovedal.
Poctivý stav po dnešku teda znie: reťazec zo šifrovaného úložiska k funkčnej databáze sa raz prešiel od začiatku do konca a trvalo to menej než dve minúty. Reťazec od vyhoreného domu k funkčnej databáze nie.
Všeobecná verzia
Úloha zálohy overuje úspešné zapisovanie. Obnovenie overuje funkčnosť čítania. Sú to rôzne cesty cez rôzny kód a istotu, ktorú ľudia cítia pri svojich zálohách, si takmer úplne zaslúžila prvá z nich.
Napísať nácvik stálo približne desať minút a spustiť ho menej než dve a priniesol fakt, ktorý by neprinieslo žiadne množstvo zelených riadkov protokolu: že cesta obnovenia má krok overovania, ktorým nikto neprešiel. Druhý bude stáť dve minúty, pretože skript už existuje. To je argument pre jeho vykonávanie — nie že záloha bola pochybná, ale že „máme zálohy“ a „obnovili sme ich“ sú dve rôzne vety a iba jedna z nich je meraním.