Záchrana dat z diskových polí

Disková pole jsou výkonná a velmi spolehlivá zařízení, dostupná v mnoha schématech optimalizovaných pro konkrétní použití.



Nejrozšířenější je RAID-5, protože je odolný proti výpadku jednoho disku, případný výpadek disku nedegraduje zásadně výkon, dosahuje vyššího agregovaného výkonu při čtení než jednotlivý disk, zpomalení při zápisu je akceptovatelné a nároky na výkon procesoru řadiče nejsou vysoké. Výkon je navíc tím vyšší, čím je vyšší počet disků - zátěž je rozdělena a řadič může provádět více operací najednou. Rovněž v zájmu dosažení vyššího výkonu je parita implementována jako rotující, tedy pro každý blok je paritní jiný disk, i když princip redundance dat rotaci parity nevyžaduje.

Trocha teorie
Pro libovolný blok n na discích platí rovnice:
Pn = An Ň Bn Ň Cn
A až C jsou data a P je parita, pole má celkem 4 disky. Pokud vypadne například disk B, vypočítáme obsah n-tého bloku disku B jednoduchou úpravou rovnice:
Bn = Pn Ň An Ň Cn
Tímto způsobem řadič pole dopočítá obsah každého bloku vadného disku, dokud do pole nezařadíme náhradní disk a neprovedeme rekonstrukci, která postupně vypočítá a zapíše obsah všech bloků nového disku.
Rekonstrukce je ovšem velmi náročná a zdlouhavá operace, při které musí řadič projít všechny bloky všech původních disků pole, aby mohl naplnit všechny bloky disku nového a pole bylo opět konzistentní a odolné proti případnému dalšímu výpadku kteréhokoliv disku. Protože je vzhledem k vlastnostem souborových systémů a povaze uložených dat (obvykle na síťovém serveru sdíleném více uživateli) běžné, že celé velké oblasti disků jsou nepoužívané, může při rekonstrukci dojít k tomu, že řadič "objeví" vadný blok i na jiném disku, nemůže ho přečíst, operace selže a pole je nepoužitelné, neboť schéma RAID-5 je odolné pouze proti výpadku jednoho disku.
Jinou příčinou výpadku více disků pole může být selhání zdroje, mechanický ráz, přehřátí, znečištění a samozřejmě chyba obsluhy, protože řadič pole je neschopen činnosti i v případě, kdy si jen "myslí", že má více vadných disků, k čemuž může dojít i tak, že je obsluha takto označí. U starších typů polí je možným zdrojem chyby i přehození disků v šachtách, protože adresa disku v poli byla často odvozena právě jen od toho, kde byl fyzicky umístěn.

Co ale znamená, že disk "vypadl"?
Řadiče diskových polí vesměs nečekají na situaci, kdy operace na disku selže. Buď používají S.M.A.R.T. rozhraní disků a/nebo provádějí vlastní diagnostiku, založenou zejména na rychlostí zpracování operací jednotlivými disky. Pak mohou i havárii do značné míry předvídat a stav disku označit jako ne zcela spolehlivý, tudíž vhodný k výměně. Tu je nutné provést co nejdříve. Většina výrobců nabízí možnost instalace náhradního disku, který je v případě výpadku použit automaticky. Na základě dlouholetých zkušeností ale doporučuji tuto funkci využívat pouze u externích řadičů, které se mohou účinně bránit před pády a jinými problémy operačních systémů.
Skutečný problém pro záchranu proto představují disky, které administrátor ponechá v poli dlouho vypadlé, ale jsou fyzicky v podstatě v pořádku a dají se v laboratorních podmínkách číst. Když pak dojde k výpadku dalšího disku, což je pro řadič RAID-5 neopravitelná chyba, dostaneme se do situace, kdy není jasné, který disk vypadl včera a který před půl rokem (pokud tedy řadič nebo administrátor nemá log, z něhož to lze přečíst). Disk, který vypadl před půl rokem, je z větší části zcela konzistentní s ostatními disky v poli, protože obsahuje data, jež se za tu dobu nezměnila, nebo oblasti, které nejsou souborovým systémem využity. To značně komplikuje zjištění, který disk můžeme použít.
Celou situaci lze ještě ztížit tím, že například ve zmíněném případě zhroucení při rekonstrukci nelze některé oblasti některých disků pole číst, tudíž je rozhodování o tom, který disk obsahuje nejvíce validní data, přesunuto z úrovně disku na úroveň bloku. Místo jednoho rozhodování stojíme před několika sty, tisíci až miliony rozhodování. Pro tuto operaci lze použít vlastní SW s heuristickými rysy, i tak ale jde o náročnou a dlouhou práci.

Jak postupovat
Postup při záchraně dat z diskových polí lze shrnout do několika kroků:
n Diagnostika.
n Pořízení funkčních obrazů všech disků pole s mapou nečitelných oblastí.
n Analýza, která data jsou validní.
n Přečtení vybraných oblastí disků pole a sestavení binárního obrazu původního virtuálního disku tak, jak jej viděl operační systém.
n Diagnostika souborového systému na obraze virtuálního disku.
n Oprava souborového systému (zhroucení pole v 99 % případů znamená poškození souborového systému i v případě, že je žurnálovaný).
n Přenos zachráněných dat na jiné pole, disk nebo médium a předání zákazníkovi.
Protože se implementace různých výrobců obvykle liší metodou rotace parity, délkou bloku datového a paritního, vytvářením oddílů (slices) na poli a využitím části disku pro uložení informací a nastavení řadiče (některá pole využívají i disky s délkou sektoru více než 512 bajtů), vyvíjejí specialisté programy pro záchranu dat v mnoha variantách, a to až do úrovně plné emulace funkce čtení řadiče. To je nutné například tehdy, kdy jsou disky pole zcela v pořádku, ale odejde řadič nebo server, ve kterém byl instalován, a vzhledem ke stáří nebo výjimečnosti nelze nalézt náhradu.
Ve srovnání se samostatně pracujícími disky je záchrana dat z diskových polí RAID-5 úspěšnější a dosahuje téměř 100 %, zejména proto, že pro obsah jednoho datového bloku existují vždy dva zdroje.

Autor pracuje ve společnosti TDP-Ontrack.










Komentáře