Sve je počelo u subotu navečer kada me supruga pitala zašto je naš DVR iznenada prestao igrati predstavu koju je gledala. Rekao sam joj da je to vjerojatno samo neki propust, ali pogledao bih. Ulazim u obiteljsku sobu potražiti, a pogreška je u osnovi tvrdila da temeljni disk više nije dostupan. Nije dobro! To je bio početak moje trodnevne horor priče …
Malo pozadine
Moj DVR je zapravo samo specijalizirani softver (SageTV za one znatiželjne) koji se izvodi na PC-u. Softver je vrlo fleksibilan i omogućava vam da odvojite sve različite aspekte. Imam zaseban stroj za centraliziranu kontrolu, zakazivanje i snimanje, zasebne uređaje za reprodukciju i zvijezdu ove priče, zaseban stroj za pohranu. Za pohranu koristim Linux datotečni poslužitelj, koji koristi LVM (Logical Volume Manager) za objedinjavanje mnogih zasebnih, neidentičnih pogona u jedan veliki (~ 6TB trenutno) logički pogon koji operativni sustav vidi. Budući da je izrada sigurnosne kopije više TB podataka nepraktična, a budući da su navedeni podaci "samo" TV emisije, moja filozofija izrade sigurnosnih kopija za to uvijek je bila da me jednostavno ne zanima. Do nedavnih događaja ovu filozofiju nije testirao događaj iz stvarnog svijeta.
Pokušaj oporavka podataka
Uvidjevši pogrešku na DVR-u, odmah počnem gledati na poslužitelj za pohranu. Datotečni sustav je nevjerojatno spor i sporo reagira, pa upitam LVM o stanju fizičkih pogona koji su u osnovi njegovog logičkog volumena. Nakon dugog kašnjenja, javlja se i kaže da nedostaje pogon od 750 GB. Uh oh! Ponovno pokrećem poslužitelj i nevjerojatno, pogon se vraća. Izdajem naredbu pvmove za automatsko premještanje svih podataka s tog pogona, ali ne uspijeva s manje od 2%.
Suočen s pogonom koji vrlo često ne sarađuje u pogledu čitanja njegovih podataka, ali barem se pokaže u BIOS-u, okrećem se svom omiljenom alatu za oporavak pogona, Spinrite. Iako se Spinrite uobičajeno čizmi s izmjenjivih medija, prije nekoliko godina u kući sam postavljao mreže za razne uslužne programe tako da se nisam morao brinuti pratiti li bilo koji medij. Obično se samo povezujem s mrežom, odabirem boot iz mreže i na raspolaganju imam razne alate za rješavanje mnogih problema. Problem je što je stroj koji čini sve to čarobno djelo isti stroj koji trenutno pada. Nema problema, kažem, samo ću se dignuti sa CD-a Spinrite. Osim prije nekoliko godina optički pogon na mom datotečnom poslužitelju dao je duh. U vrijeme kad se to dogodilo, odlučio sam kako nikad ne koristim optički medij na tom stroju i nije mi ga bilo potrebno zamjenjivati. Bez brige, rekao sam sebi, samo ću optički pogon izvaditi iz svog glavnog računala. Isključim glavno računalo i izvadim optički pogon. Zatim potražim svoj Spinrite CD za pokretanje. Ne mogu ga pronaći! U novu kuću uselili smo se prije nekoliko mjeseci, tako da je sve u malo neredu. Smatram da ću tek snimiti novu kopiju, ali ne mogu pronaći nijedan prazan optički medij! Na sljedećem planu flash pogon! Nakon nekoliko minuta na Googleu kako bih osvježio pamćenje, imam bootable Spinrite flash pogon. Podizam svoju Linux kutiju s toga i pokrećem Spinrite. Računalo se smrzava i čini se da se ruši. U potrazi za uklanjanjem varijabli, prebacujem loš pogon s spajanja na PCI-e karticu za proširenje na izravno priključenje na matičnu ploču. Sada se Spinrite pokreće u redu, ali treba puno godina i godina da nabrojimo pogone povezane s njim. Sustavno isključujem sve ostale pogone, osim lošeg, ali nikad ne dovršim nabrajanje pogona, bez obzira koliko dugo čekao. Na sljedeći plan! Izvadim pogon iz svog Linux okvira, povežem ga s glavnim računalom i pokrenem se sa svog sjajnog novog Spinrite flash pogona. Spinrite se pokreće i odmah vidi pogon, a ja mu kažem da započne s oporavkom podataka, zadovoljan što konačno postižem neki napredak. Vratim se da provjerim nakon možda 10 minuta, a na ekranu je došlo do pogreške, a čini se da je pogon opet nestao. Frustrirano pokušavam još nekoliko puta i kažem Spinritu da krene s različitih dijelova pogona, ali svaki put dobijem isti rezultat. Čini mi se da mi ipak neće pomoći.
U prilog iracionalne nade, vraćam pogon u svoju Linux kutiju i uključim ga. Na moje čuđenje, pogon se pokaže i LVM donosi sve aktivno. Dalje pokušavajući sreću, izdajem još jednu naredbu pvmove kako bih ponovno pokušao premjestiti podatke s pogona. Rano ujutro vidim poruke o pogrešci o nemogućnosti čitanja s pogona, ali nevjerojatno, pvmove i dalje postiže napredak, bliže i bliže 100% završetku. Mješavina zbrke, olakšanja i uzbuđenja ispirala me je. Hoću li se maknuti od ove netaknute? Nažalost, posljednje što LVM pod poklopcima čisti kako bi dovršio pvmove je pisanje ažuriranog dnevnika na sve pogone pod njegovom kontrolom. To, naravno, ne uspijeva kada se pokušava pisati na loš pogon, a time prekida cijeli postupak. Poraz još jednom izvučen iz čeljusti pobjede! Zaronim natrag u Google i otkrijem da je moguće kontrolirati koliko podataka se kreće naredba pvmove umjesto da se SVI podaci premjeste u jednom kadru. Eksperimentiram s tim i imam dobar uspjeh premještajući mali dio mojih podataka. Postajem pohlepan i pogon nestaje nekoliko puta, ali uvijek se vrati nakon ciklusa napajanja računala. Teoretizirajući da su možda samo određeni dijelovi pogona loši, počinjem skakati uokolo umjesto da radim na početku pogona. Nakon nekoliko ponavljanja ovoga, s diska sam se sigurno pomaknuo sa svega 40 GB od 750 GB. Za preostalih 40 GB nije se uspio pomaknuti bez obzira što sam pokušao. Bila je to nedjelja navečer i bila sam iscrpljena, pa sam odlučila sljedeći dan otići u krevet i riješiti se ovog problema.
Sljedećeg dana, nakon nekog sna i prve polovine dana na poslu, odlučim se samo ugristi metak, jer me nije bilo briga za posljednjih 40 GB snimljenih TV emisija, i krenuo u uklanjanje pogona iz moje LVM konfiguracije, To sam radio već mnogo puta, tako da sve ide prilično glatko. Sljedeći na popisu za čišćenje je popravak rupe na sredini datotečnog sustava. Mislim da sa samo 40 GB umjesto 750 GB nedostaje ne može biti previše loše, zar ne? Pogrešno! Nakon popravka, imao sam 900 GB dodatnog slobodnog prostora u odnosu na prije početka mučenja, tako da sam zapeo za prilično. Pa dobro, kažem sebi, ionako je to bio samo TV. Nakon tri dana stanke moj je DVR ponovno u funkciji i o tome mogu napokon prestati razmišljati sa svakim rezervnim ciklusom mozga.
Naučene lekcije
Pa što sam naučio iz svega ovoga? Trebao sam bolje obaviti ono što je zaista važno. To se dogodilo prije nekoliko tjedana, a za to vrijeme nisam ni propustio nijedan TV sadržaj koji je nestao. No, žalim što sam spriječio sebe, ali još važnije svoju obitelj, da mogu koristiti televizor tri dana i da sam se u ta tri dana stavio u krizni režim visokog stresa. Da sam odustao od povratka podataka u početku, funkcija bi se vratila za sat vremena, a ne za tri dana. Predobro znam da su nam podaci većinom dragocjeni, ali u ovoj situaciji nisu.
Drugo, ako su vaši podaci zaista dragocjeni i to 99% vremena uistinu jesu, trebate ih zaštititi! Izradite sigurnosnu kopiju podataka, nema izgovora. Kako su moji podaci nezamjenjivi, poput tisuća slika mog sina koje imam na računalu, potrudim se da ih sigurnosno kopiram na najmanje tri mjesta, od kojih je jedno pružatelj sigurnosnih kopija u oblaku. Što se tiče pohrane DVR-a, još uvijek mislim da nije praktično vratiti ga u oblak, ali s cijenama pogona ovih dana nemam izgovor da ga nisam zaštitio RAID-om, i upravo to sam idući. Kad sam prvi put pokrenuo svoj sklop za pohranu podataka, mislim da mi je trebalo 10 diskova ili više da dođem do baze s više TB-a. Upravo sam provjerio cijene i sada možete kupiti pogon od 3 TB za manje od 100 dolara. Jednostavno nemam izgovora da svoje podatke ostavljam nezaštićenima, a ako mi se opet dogodi takav gubitak podataka, to je uistinu moja greška.
