Vyšlo v týdeníku Computerworld č. 4/95 v roce 1995
Vytištěno z adresy: http://www.earchiv.cz/a95/a504c120.php3

Disk striping

Techniky „disk mirroring" a „disk duplexing", kterými jsme se zabývali v minulém příspěvku této rubriky, jsou příkladem technik, používaných pro vytváření systémů odolných proti výpadku (tzv. fault-tolerant systémů). Jsou založeny na velmi jednoduché myšlence: předpokládají, že veškerá data se budou průběžně zapisovat identickým způsobem na dva samostatné disky. Na každém z těchto disků tak bude v každém okamžiku existovat „plnohodnotný" obraz dat, a dojde-li k eventuálnímu výpadku jednoho z obou disků, je možné pokračovat dále se zbývajícím diskem. Rozdíl mezi technikou „disk mirroring" a „disk duplexing" je pak pouze v tom, že první z nich předpokládá připojení obou disků k jedinému diskovému řadiči, zatímco druhá technika počítá s tím, že každý disk bude připojen k vlastnímu diskovému řadiči.

Společnou nevýhodou obou těchto technik je ale jejich relativně vysoká režie - na to, aby se dokázaly vyrovnat s výpadkem jednoho disku, potřebují jeden další, stejně velký disk. V tomto ohledu tedy pracují tedy s režií 100%. Na druhé straně jejich implementace může být relativně velmi jednoduchá, a nemusí mít žádný nepříznivý vliv na výkonnost diskových subsystémů.

Existují ovšem i propracovanější techniky, které také umožňují dosáhnout určitého stupně odolnosti vůči výpadkům disků, ale s nižší režií (co do „spotřeby" disků). Tou nejpopulárnější je dnes zřejmě technika, označovaná jako disk striping, ev. data striping. Pro její správné pochopení je vhodné si ji nejprve představit v takové podobě, ve které ještě nepřináší žádnou odolnost vůči výpadků (ale přináší určité urychlení práce s diskem).

Základní myšlenka metody „disk striping" je ta, že data jsou rozdělena na stejně velké části, a tyto se střídavě zapisují na různé disky. Zmíněnými „částmi" přitom mohou být jednotlivé bity, celé byty, slova, nebo například diskové sektory.Půjde-li například o techniku „disk striping" na úrovni jednotlivých bitů, pak vše funguje tak, že jeden bit se zapíše na první disk, následující bit na druhý disk, další bit na třetí disk atd. dokud se nevyčerpají všechny dostupné disky, načež se pokračuje znovu od prvního disku. Představíme-li si například systém se čtyřmi disky, pak na první z nich se zapíší v pořadí první, pátý, devátý atd. bit, na druhý disk druhý, šestý, desátý bit atd.

Jak ale nyní zajistit odolnost vůči výpadku některého z disků? Opět tím, že se nejméně jeden další disk přidá. Zůstaňme u našeho příkladu se čtyřmi disky, a přidejme k nim ještě stejně velký pátý disk.Na něj pak budeme zapisovat paritní informace o každé čtveřici stejnolehlých bitů, nahraných na původních čtyřech discích (datových discích). Rozhodneme-li se například pro tzv. lichou paritu, a čtveřice stejnolehlých bitů na datových discích bude mít sudý počet jedniček, zapíšeme do odpovídajícího bitu pátého (paritního) disku jedničku (a v opačném případě tam zapíšeme nulu). Dojde-li pak někdy později v výpadku jednoho z disků (kteréhokoli), projeví se to tím, že vždy jeden z každé pětice bitů (čtyř datových a jednoho paritního) nebude znám. Díky redundanci, zavedené pátým paritním bitem, ale bude možné hodnotu tohoto ztraceného bitu dopočítat - jednoduchým doplněním počtu jedniček podle zvolené parity!!

Právě naznačenou myšlenku je vhodné si ještě dát do souvislosti s technickými možnostmi diskových subsystémů, které techniku „disk striping" používají. Tyto systémy totiž umožňují výměnu jednotlivých disků za chodu, bez přerušení práce systému a jeho vypnutí (umožňují tzv. hot swap, viz CW 93/51). Dojde-li tedy k výpadku jednoho z použitých disků, je možné jej za chodu vyměnit a nahradit jiným, funkčním diskem. Celý diskový subsystém je pak schopen sám automaticky zrekonstruovat obsah poškozeného disku a nový disk potřebným způsobem „zabydlet". Tedy úspěšně překlenout výpadek jednoho ze svých disků.

Porovnejme si ještě celkový efekt právě popsané metody „disk striping" s metodami „disk mirroring" a „disk duplexing". Jak jsme si již naznačili výše, tyto dvě metody mají vždy 100% režii. Metoda „disk striping" je ale schopna vystačit s mnohem menší režií - v našem konkrétním případě systému se čtyřmi datovými a pátým paritním diskem má její režie hodnotu 25%.

Kromě toho má metoda „disk striping" i příznivý efekt na rychlost práce s celým diskovým subsystémem, neboť umožňuje provádět více operací čtení i zápisu paralelně. Nelze se proto divit, že jde o dosti oblíbenou a široce využívanou metodu. Na jejím použití jsou založena např. tzv. disková pole, resp. pole RAID. Ale o tom zase až někdy příště.