Rezervna kopija vraćena od početka do kraja
U ovom članku
Ovaj server sam pravi rezervnu kopiju svake noći od 11. avgusta. U dnevniku ima 163 linije. Reč „vraćanje“ ne pojavljuje se ni u jednoj, jer se svaka linija odnosi na pisanje.
Danas je prošetana i polovina za čitanje.
Rezervna kopija je bolja od većine
Pokreće se u tri ujutru, pravi dump svake baze, pakuje koren veba, šifruje oba lozinkom koju provajder skladišta nema i otprema ih. Zatim radi tri stvari koje mnoge skripte za rezervne kopije preskaču.
Staje pri grešci umesto da nastavi. Odbija dump manji od jednog megabajta, uz obrazloženje — zapisano u datoteci — da rezervna kopija od 885 bajtova izgleda kao rezervna kopija a nije. I posle otpremanja pita drugu stranu koliko je bajtova stiglo i poredi.
Takođe radi. Dana 26. avgusta u 03:05 korak arhiviranja je pao, skripta je prekinula rad i to rekla u dnevniku, a pokretanje je ponovljeno ručno istog jutra. Dvadeset dva pokretanja, devetnaest završenih, a praznina je vidljiva umesto tiha. U tome je celo značenje glasnog prekida.
Ništa od toga nije vraćanje
Svaka od tih provera odnosi se na putanju pisanja: da li je dump napravljen, da li je imao verovatnu veličinu, da li su bajtovi stigli. Rezervna kopija koja se ne može pročitati nazad prolazi sve njih.
Zato je danas polovina brojača sinoćnjeg dumpa povučena sa šifrovanog udaljenog skladišta, dešifrovana, isečena iz celine od 437 megabajta i učitana u bazu pored žive. 104 megabajta. Jedan minut i četrdeset četiri sekunde od početka do kraja.
Trideset osam tabela u rezervnoj kopiji. Trideset osam u živoj bazi. Broj redova nekoliko stotina manji od žive svuda, što je tačno kako treba za dump napravljen u tri ujutru na servisu koji je brojao ceo dan.
Dve stvari koje je mogla da nađe samo vežba
Rezervna kopija je nečitljiva korisniku koji bi je tražio. Noćni posao se izvršava kao root. Kada se zatraže iste datoteke kao običan nalog za prijavu, alat za skladište javlja da njegov pristupni token više nije važeći. Poruka se odnosi na autentifikaciju, ali njen oblik, u žurbi, u pogrešan sat, ne razlikuje se od „ovde nema ničega“.
Sa rezervnom kopijom nije ništa pogrešno. Nalog koji je pokreće je u redu. Ali prva stvar koju svako uradi u hitnom slučaju jeste da pogleda, a gledanje kao pogrešan korisnik daje odgovor koji može da pošalje nekoga pogrešnim putem. To je sada zapisano pored uputstva za vraćanje.
Drugi nalaz bio je moj, a ne rezervne kopije. Učitavanje isečka proizvelo je jednu grešku, o vremenskoj zoni koja je null. Potiče od izdvajanja jedne baze iz dumpa svih baza: linija koja na kraju vraća podešavanje odnosi se na promenljivu postavljenu u zaglavlju, a zaglavlje nije bilo deo isečka. Rezervna kopija je u redu. Nož je bio moj. Ovde je zato što je poruka o grešci tokom vežbe vraćanja upravo ono što neko prijavi kao nedostatak rezervne kopije, a nije sam sekao datoteku.
Šta je još neprovereno
Skripta u svom zaglavlju kaže da je bez dve datoteke sa lozinkama rezervna kopija nepovratna i da one pripadaju negde gde preživljavaju uništenje ovog računara. Obe datoteke su na ovom računaru. Da li postoji kopija igde drugde nije nešto na šta vežba izvedena na samom računaru može da odgovori, i ovaj članak neće tvrditi da jeste.
Dakle, pošteno stanje posle danas: lanac od šifrovanog skladišta do baze koja radi prošetan je jednom, od početka do kraja, i trajao je manje od dva minuta. Lanac od izgorele kuće do baze koja radi nije.
Opšta verzija
Posao rezervne kopije proverava da je pisanje uspelo. Vraćanje proverava da čitanje radi. To su različite putanje kroz različit kôd, a poverenje koje ljudi osećaju u svoje rezervne kopije gotovo u potpunosti stiče ona prva.
Vežba je koštala oko deset minuta za pisanje i manje od dva za izvršavanje, i dala je činjenicu koju nikakav broj zelenih linija dnevnika ne može: da putanja oporavka ima korak autentifikacije koji niko nije prošao. Druga će koštati dva minuta, jer skripta sada postoji. To je argument za to — ne da je rezervna kopija bila sumnjiva, nego da su „imamo rezervne kopije“ i „vratili smo ih“ dve različite rečenice, a samo je jedna merenje.