Začelo se je v soboto zvečer, ko me je žena vprašala, zakaj je naš DVR nenadoma nehal predvajati oddajo, ki jo gleda. Rekel sem ji, da gre verjetno za kakšno težavo, vendar bi si jo ogledal. Stopi v družinsko sobo, da pogledam, in napaka je v bistvu zapisala, da spodnji disk ni več na voljo. Slabo! To je bil začetek moje tridnevne grozljive zgodbe …
Malo ozadja
Moj DVR je pravzaprav le specializirana programska oprema (SageTV za tiste, ki so radovedni), ki se izvaja na PC-ju. Programska oprema je zelo prilagodljiva in vam omogoča, da ločite vse različne vidike. Imam ločen stroj za centralizirano krmiljenje, načrtovanje in snemanje, ločene naprave za predvajanje in zvezdo te zgodbe, ločen stroj za shranjevanje. Za shranjevanje uporabljam datotečni strežnik Linux, ki uporablja LVM (Logical Volume Manager) za združevanje številnih ločenih, neidentičnih pogonov v en velik (približno 6TB trenutno) logični pogon, ki ga vidi operacijski sistem. Ker je varnostno kopiranje več podatkov o TB nepraktično in ker so ti podatki samo "samo" TV-oddaje, je moja filozofija za varnostno kopiranje za to vedno bila vseeno. Do nedavnih dogodkov te filozofije ni preizkusil dogodek iz resničnega sveta.
Poskus obnovitve podatkov
Ko vidim napako na DVR, nemudoma začnem pogledati na pomnilniški strežnik. Datotečni sistem je neverjetno počasen in počasen na odziv, zato poizvem po LVM o stanju fizičnih pogonov, ki so pod njegovo logično prostornino. Po dolgem zamiku se prikaže in pravi, da manjka pogon 750 GB. Ojoj! Ponovno zaženem strežnik in neverjetno se pogon vrne. Izdam ukaz pvmove, da samodejno preseli vse podatke iz pogona, vendar ne uspe z manj kot 2%.
Soočen s pogonom, ki pri branju svojih podatkov zelo ne sodeluje, vendar se vsaj kaže v BIOS-u, se obrnem na svoje najljubše orodje za obnovitev pogona Spinrite. Čeprav Spinrite običajno škornjira iz izmenljivih medijev, sem pred leti v svoji hiši nastavil omrežno škorenj za različne pripomočke, tako da mi ni bilo treba skrbeti, da bi spremljal noben medij. Običajno se samo povežem s svojim omrežjem, izberem škorenj iz omrežja in imam na voljo različna orodja za odpravljanje številnih težav. Težava je v tem, da je stroj, ki dela vse to čarobno delo, isti stroj, ki je trenutno navzdol. Nič hudega, pravim, zagorel bom samo s Spinrite CD-ja. Razen pred nekaj leti je optični pogon na mojem datotečnem strežniku opustil duha. V času, ko se je to zgodilo, sem se odločil, da v tem stroju nikoli ne uporabljam optičnih medijev, da mi ga ni treba zamenjati. Brez skrbi, rekel sem si, optični pogon bom vzel iz svojega glavnega računalnika. Izklopim glavni računalnik in vzamem optični pogon. Nato poiščem svoj zagonski CD Spinrite. Ne najdem ga! Pred nekaj meseci smo se vselili v novo hišo, tako da je vse v malo neredu. Računal sem, da bom samo zapisal novo kopijo, toda nobenega praznega optičnega medija ne najdem! V naslednji načrt zagonski bliskovni pogon! Čez nekaj minut v Googlu osvežim spomin, imam zagonski bliskovni pogon Spinrite. S tem zaprem svoj Linux box in zaženem Spinrite. Računalnik zamrzne in zdi se, da se zruši. Prizadevam si, da bi odpravil spremenljivke, če premaknem napačni disk na PCI-e razširitveno kartico in premaknem neposredno na matično ploščo. Zdaj se Spinrite zažene dobro, vendar traja več let in starosti, da naštejemo pogone, povezane z njim. Sistematično odklopim vse druge pogone, razen slabega, vendar naštevanja pogonov nikoli ne končam, ne glede na to, koliko časa čakam. V naslednji načrt! Pogon vzamem iz svojega škatle Linux, ga povežem z glavnim računalnikom in se zaženem iz mojega svetlečega novega bliskovnega pogona Spinrite. Spinrite se zažene in takoj vidi pogon, in rečem mu, da začne obnavljati podatke, zadovoljen, da končno napredujem. Vrnem se, da ga preverim po morda 10 minutah, na zaslonu pa je napaka in zdi se, da je pogon spet izginil. Frustrirano poskusim še nekajkrat in povem Spinriteu, naj začne na različnih delih pogona, vendar vsakič dobite enak rezultat. Kaže, da mi navsezadnje ne bo pomagalo.
V skladu z iracionalnim upanjem sem pogon vrnil nazaj v okence Linux in ga napolnil. Na moje presenečenje se pogon pokaže in LVM prinese vse aktivno. Nadalje poskušam srečo izdati še en ukaz pvmove, da poskušam podatke spet premakniti s pogona. Zgodaj opazim sporočila o napakah, da jih ni mogoče prebrati s pogona, toda presenetljivo je, da pvmove še naprej napreduje in se bliža 100-odstotnemu zaključku. Mene je mešala zmeda, olajšanje in navdušenje. Se bom pobegnil od tega neokrnjenega? Na žalost je zadnja stvar, ki jo LVM stori pod pokrovi, da čisto konča pvmove, da napiše posodobljen dnevnik na vse pogone pod njegovim nadzorom. To seveda ne uspe, ko poskuša pisati na slab pogon in s tem prekine celoten postopek. Poraz je še enkrat iztrgal iz čeljusti zmage! Potopim se nazaj v Google in ugotovim, da je mogoče nadzorovati, koliko podatkov premakne ukaz pvmove, namesto da v enem posnetku premaknem VSE podatke. Eksperimentiram s tem in dober uspeh premikam majhen del mojih podatkov naenkrat. Pohlepim in pogon nekajkrat izgine, vendar se vedno vrne po električnem ciklu računalnika. Teoretiziram, da so morda le določeni deli pogona slabi, začnem skakati naokoli, namesto da bi delal na začetku pogona. Po nekaj ponovitvah tega se je vse od 40 GB od 750 GB varno premaknilo s pogona. V preostalih 40 GB se ni uspel premakniti ne glede na to, kar sem poskusil. Zdaj je bila nedelja zvečer in sem bil izčrpan, zato sem se odločil, da grem spat in se naslednji dan bolj spoprijem s to težavo.
Naslednji dan se po nekaj spanca in prvi polovici dneva v službi odločim, da bom samo ustrelil kroglo, ker mi ni bilo vseeno za zadnjih 40 GB posnetih TV oddaj in se lotil odstranitve pogona iz moje konfiguracije LVM . To sem že večkrat naredil, tako da gre povsem gladko. Nato na seznamu čiščenja popravimo luknjo na sredini datotečnega sistema. Mislim, da samo 40 GB, namesto 750 GB manjka, ne more biti preveč slabo, kajne? Napačno! Po popravilu sem imel 900 GB dodatnega prostega prostora v primerjavi z začetkom izrekanja, tako da se je kar precej zataknilo. No, pravim si, vseeno je bila samo televizija. Moj DVR je končno spet funkcionalen po svojem tridnevnem hipu in končno lahko neham razmišljati o tem z vsakim rezervnim možganskim ciklom.
Naučena lekcija
Kaj sem se torej naučil iz vsega tega? Moral bi bolje opraviti tisto, kar je resnično pomembno. To se je zgodilo pred nekaj tedni in v tistem času sploh nisem zgrešil nobene TV-vsebine, ki je izginila. Vseeno obžalujem, da sam sebi, še pomembneje pa je, da moja družina ni mogla uporabljati televizije tri dni in da sem se v teh treh dneh postavila v krizni stres. Če bi opustil obnovitev podatkov na začetku, bi se funkcija povrnila v približno eni uri in ne v treh dneh. Predobro vem, da so večino časa naši podatki dragoceni, vendar v teh razmerah ni bilo tako.
Drugič, če so vaši podatki res dragoceni in je 99% resničnega časa, jih morate zaščititi! Varnostno kopirajte podatke, ni opravičil. Ker so moji podatki nenadomestljivi, tako kot na tisoče slik mojega sina, ki jih imam v računalniku, poskrbim, da jih varnostno kopiram na najmanj treh mestih, od katerih je eno ponudnik varnostnih kopij v oblaku. Glede shrambe DVR še vedno ne mislim, da je praktično nazaj v oblak, vendar s ceno pogonov v teh dneh nimam opravičila, da ga ne bi zaščitil z RAID-om, in prav to sem bom naredil. Ko sem pred leti prvič postavil svojo skupino za shranjevanje, mislim, da sem potreboval 10 pogonov ali več, da sem prišel do baze več TB. Pravkar sem preveril cene in zdaj lahko 3 TB pogon kupite za dobro pod 100 dolarjev. Preprosto nimam opravičila, da svoje podatke pustim nezaščitene, in če se mi takšna izguba podatkov ponovno zgodi, je resnično moja krivda.
