Diskové pole

RAID (anglicky Redundant Array of Inexpensive Disksvícenásobné pole levných disků, nově též independent disks, tj. nezávislých disků) je v informatice metoda zabezpečení dat proti selhání pevného disku. Zabezpečení je realizováno specifickým ukládáním dat na více nezávislých disků, kdy jsou uložená data zachována i při selhání některého z nich. Úroveň zabezpečení se liší podle zvoleného typu RAID, které je označováno čísly (nejčastěji RAID 0, RAID 1, RAID 5 či nověji RAID 6). RAID je často používán na serverech, avšak je nutné si uvědomit, že RAID nenahrazuje zálohování dat.

Kromě zabezpečení provozu je RAID taktéž využíván k navýšení výkonu diskového subsystému, což je jeho neméně důležité využití.

Původ RAID

Pojem RAID vznikl v roce 1988, kdy byla Univerzitou California – Berkeley vydána publikace A Case For Redundant Arrays of Inexpensive Disks (David Patterson, Randy Katz a Garth Gibson). Písmenko I bývá vysvětlováno jednak jako Inexpensive = levný (například Adaptec), jednak jako Independent = nezávislý (například Microsoft). Obojí je pravda, protože RAID pole je složeno z obyčejných sériově vyráběných pevných disků, které nejsou nijak upravovány.

Levný (inexpensive) u RAID vyjadřovalo skutečnost, že bylo možné použít běžně dostupné a laciné IDE/ATA disky pro stolní kancelářské počítače (a nikoliv drahé SCSI disky pro serverové nasazení). Díky technologii RAID tak bylo s lacinými disky možné dosáhnout stejné nebo lepší spolehlivosti, než nabízely drahé SCSI disky pro profesionální/firemní použití.

Technologie RAID prošla postupným vývojem, kdy byly zjištěné nedostatky odstraňovány nebo bylo odlišným přístupem dosaženo vyššího výkonu nebo spolehlivosti výsledného RAID pole.

Terminologie

Odlišné způsoby ukládání dat jsou realizovány buď softwarově nebo hardwarově. V softwarovém řešení obsluhuje zápis do pole RAID operační systém (resp. speciální mezivrstva nebo přímo ovladač zařízení), a proto se jedná o nejlevnější řešení, které však trpí některými nedostatky (snížení rychlosti). Hardwarové řešení tyto nedostatky odstraňuje pomocí speciálního zařízení (řadič), který obstarává obsluhu RAID sám a hlavní procesor počítače tak není zatěžován. Problémem je, že většina lacinějších RAID řadičů na trhu je ve skutečnosti softwarově řízena, takže se o hardwarové řešení nejedná.[1]

Pokud dojde při provozu RAID pole k výpadku některého disku (resp. členu pole), dostane se pole do tak zvaného degradovaného stavu, ve kterém je jeho výkon typicky nižší, avšak stále jsou všechna uložená data k dispozici. Správce počítače vymění havarovaný disk za nový a ten začlení zpět do pole (anglicky hot add), čímž začne tak zvaná rekonstrukce pole, při které jsou dopočítány chybějící údaje a zapsány na nový disk. Data jsou typicky během rekonstrukce stále přístupná. Po dokončení rekonstrukce je RAID pole opět takzvaně synchronizováno. Někdy je v poli trvale k dispozici rezervní disk (anglicky spare), takže rekonstrukce pole může být zahájena zcela automaticky.

RAID pole vytváří logický (virtuální) úložný prostor, se kterým se dá typicky pracovat stejným způsobem, jako by to byl jediný pevný disk. Jednotlivé disky v poli nazýváme členy pole. Implementace RAID pole je typicky taková, že data na degradovaném nebo právě rekonstruovaném poli jsou stále k dispozici, i když obvykle se sníženým výkonem (rychlostí čtení a zápisu).

RAID není záloha dat

Častou chybou je považování RAID pole za zálohování dat. RAID totiž data nechrání před omylným smazáním či úmyslným smazáním virem, pouze před fyzickým selháním jednoho nebo více disků. Skutečná záloha tak vyžaduje doplňující operace (uložení dat na bezpečné místo, jejich fyzické zabezpečení, šifrování zálohy, možnost návratu ke starší verzi dat apod.). Proto není možné při používání RAID pole samotné zálohování vyloučit.[kdo?]

Populární typy RAID

RAID 0

Pole RAID 0 není vlastně skutečný RAID, protože neobsahuje žádné redundantní informace, a tedy neposkytuje uloženým datům žádnou ochranu (porucha členu znamená ztrátu dat). Jednotlivá zařízení jsou jen spojena do logického celku a vytváří tak kapacitu součtu všech členů. Spojení může být realizováno dvěma způsoby: jako zřetězení (tj. lineárně, anglicky linear), anebo prokládání (anglicky striping).

Zřetězení (JBOD)
JBOD - zřetězení
Just a Bunch Of Disks neboli „jen hromada disků“. Ve zřetězení jsou data postupně ukládána na několik disků. Jakmile se zaplní první, ukládá se na druhý, poté na třetí atd (za sebou, viz obrázek JBOD) Výhodou je snadné zvětšení kapacity přidáním dalšího členu a skutečnost, že při výpadku členu mohou být některé soubory nedotčeny. Pokud jsou v JBODu zapojeny dva a více disků s odlišnou kapacitou, zachová se maximální kapacita úložiště.
Prokládání
RAID 0 - prokládání
Při prokládání jsou data ukládána na disky cyklicky (střídavě, viz obrázek RAID 0 - striping). Prostor je rozdělen na části pevné velikosti a zápis nebo čtení delšího úseku dat tak probíhá z více disků. Při poruše disku není pravděpodobné, že by nějaký soubor zůstal nepoškozen. Prokládání může zrychlit čtení i zápis větších bloků dat, protože je možné zároveň číst (zapisovat) jeden blok z jednoho disku a následující blok z jiného disku. Zrychlení čtení by mělo být teoreticky menší, než v případě RAID 1, avšak při reálném použití je čtení i zápis v režimu RAID 0 výrazně rychlejší než v RAID 1. Výkonnostní nárůst při sekvenčním čtení bývá v domácích podmínkách kolem 50 % (tj. při použití dvou disků se sekvenčním čtením 100 MB/s bude mít diskové pole rychlost čtení (obvykle) přibližně 150 MB/s).[2] Zvýšení o 50 % samozřejmě neznamená o polovinu vyšší výkon, jelikož zapojení do RAID 0 nesnižuje přístupovou dobu. Pokud jsou v RAID 0 Striping zapojeny dva a více disků s odlišnou kapacitou, maximální kapacita úložiště bude rovna velikosti nejmenšího disku krát počet zapojených disků[zdroj?].

RAID 1 (zrcadlení)

RAID 1

Nejjednodušší, ale poměrně efektivní ochrana dat. Provádí se zrcadlení (mirroring) obsahu disků. Obsah se současně zaznamenává na dva disky. V případě výpadku jednoho disku se pracuje s kopií, která je ihned k dispozici. Podobná technika může být uplatněna o úroveň výše, kdy jsou použity dva samostatné řadiče. Tato technika se nazývá duplexing a je odolná i proti výpadku řadiče. Teoreticky se může výrazně zvýšit rychlost čtení a o něco snížit odezva, avšak záleží na konkrétním řadiči (softwarové řadiče většinou možnost čtení z obou disků nevyužijí vůbec). Zato zápis může být pomalejší, protože se ukládají stejná data na dva disky. Technika výrazně zvyšuje bezpečnost dat proti ztrátě způsobené poruchou hardware. Nevýhodou je potřeba dvojnásobné diskové kapacity.

RAID 5

RAID 5

RAID 5 vyžaduje alespoň 3 členy, přičemž kapacitu jednoho členu zabírají samoopravné kódy (neboli parity), které jsou uloženy na členech střídavě (a ne pouze na jednom, čímž byla odstraněna nevýhoda RAID 4). Výhodou je, že lze využít paralelního přístupu k datům, protože delší úsek dat je rozprostřen mezi více disků, takže čtení je rychlejší. Nevýhodou je pomalejší zápis (nutnost výpočtu samoopravného kódu). Je odolný vůči výpadku jednoho disku.

RAID 6

RAID 6

Obdoba RAID 5, používá dva paritní bloky na každém z použitých disků, přičemž na každém z nich je samoopravný kód vypočten jiným způsobem. Opět kvůli přetížení paritních disků jsou paritní data uložena střídavě na všech discích. Výhodou je odolnost proti výpadku dvou disků. Rychlost čtení je srovnatelná s RAID 5, ale zápis je pomalejší než u RAID 5, právě kvůli výpočtu dvou sad paritních informací. RAID 6 je možno sestavit z minimálně čtyř disků (pokud bychom neuvažovali rozprostření paritních informací na všechny disky, pak by se dalo zjednodušeně říci, že dva jsou datové a dva paritní). V této minimální konfiguraci se však s ohledem na výslednou kapacitu příliš nepoužívá, neboť kapacita pole je poloviční, tedy stejná jako v konfiguraci zrcadlení (RAID 1) dvou párů disků. Při zrcadlení navíc není třeba počítat dvě sady paritních informací, je tedy mnohem rychlejší při zápisu a nepotřebuje vysoký výpočetní výkon. RAID 6 je tedy výhodné při použití pěti a více disků.

Víceúrovňové typy RAID

RAID 01 (RAID 0+1)

RAID 0+1

Jedná se o dvouúrovňové pole. Někdy bývá také označováno jako RAID 01. Data uložíme prokládaně (stripováním) na dva disky (A, B), poté totéž uděláme s dalšími dvěma disky (C, D). Získáme tak dva logické disky AB, CD, které mají zrcadlený obsah. (Máme-li soubor, který se při stripování rozdělí na dvě poloviny, první část souboru máme na disku A a C, druhou na disku B a D) RAID 0+1 je odolný proti výpadku všech disků jednoho podpole, popřípadě x disků s rozdílnými daty, když x je počet RAID 0 podpolí (v popisovaném příkladě disky A a D nebo B a C) Výhodou tohoto způsobu je, že nejen rozkládáme zátěž mezi více disků při čtení a zápisu, ale data jsou také uložena zrcadleně, takže se dají po chybě snadno obnovit. Mezi nevýhody patří využití pouze 50 % celkové diskové kapacity, a při výpadku jednoho ze čtyř disků ztrácíme redundanci dat. Celková využitelná kapacita se vypočítá následovně (c = kapacita nejmenšího použitého disku; n = celkový počet disků v diskovém poli):

RAID 10 (RAID 1+0)

RAID 10

Pole RAID 1+0 (stripování) je opět kombinací RAID 0 a RAID 1, ale postupujeme obráceně. Nejdříve uložíme stejná data na disk A, B, poté na disk C, D. Získáme tak dva logické disky AB, CD, na nichž jsou data uložena stripovaně. (Máme-li soubor, který se při stripování rozdělí na dvě poloviny, první část souboru je na disku A a B, druhá část je na disku C a D, na rozdíl od RAID 0+1) RAID 1+0 je odolný proti výpadku jednoho disku v každém podpoli. Výhody jsou podobné RAID 0+1, navíc je obnova dat po chybě oproti RAID 0+1 mnohem rychlejší. Díky stripování dat a faktu, že se nemusí dopočítávat paritní data toto pole, dosahuje velkých přenosových rychlostí, proto se často používá pro hodně vytížené databázové aplikace. Nevýhodou je opět využití pouze 50 % kapacity, využitelná kapacita se vypočítá následovně (c = kapacita nejmenšího použitého disku; n = celkový počet disků v diskovém poli):

RAID 50 (RAID 5+0)

RAID 50

RAID 50 je dvouúrovňové pole, vytvořené prokládáním několika RAID 5 polí. Prokládání zvyšuje rychlost oproti jednoúrovňovému RAID 5, ovšem v každém podpoli je potřeba jeden disk navíc na paritní data, to znamená, že pole je odolné proti selhání jednoho disku každého podpole (oproti RAID 60, které je odolné proti selhání dvou disků v každém podpoli). Celková velikost se vypočítá podle následujícího vzorce, kde n = počet disků v podřazeném poli RAID 5; c = kapacita disku; p = počet podřazených polí.

RAID 60 (RAID 6+0)

RAID 60

Jedná se o dvouúrovňové pole, vytvořené prokládáním (stripingem) několika polí typu RAID 6. Ty poskytují vyšší zabezpečení než RAID 5, zatímco RAID 0 nad nimi pomůže k vysoké přenosové rychlosti. Minimální počet disků je 8, ovšem při použití pouze osmi disků je efektivnější vytvoření RAID 100 (které má při osmi použitých discích stejnou kapacitu a větší rychlost, protože nemusí dopočítávat paritní data). V současné době se jedná o jedno z nejbezpečnějších řešení pro vysoké výkony. Zároveň je zde možnost vysoké efektivity využití kapacity, pokud se použije větší množství disků. Velikost se spočítá stejně jako u pole RAID 50, pouze odečítáme dvojku (RAID 6 má dva disky s paritními daty, oproti RAID 5, který má pouze jeden)

RAID 100 (RAID 10+0)

RAID 100

RAID 10+0 nebo RAID 100 je tříúrovňové pole, vytvořené dvouúrovňovým prokládáním dat na zrcadlené podpole (RAID 1). K vytvoření takového diskového pole je potřeba minimálně 8 disků. Mezi výhody patří větší přenosové rychlosti díky prokládání a odolnost proti výpadku jednoho disku v každém podpoli. Nevýhodou je využití pouze 50 % kapacity, využitelná kapacita se spočítá následovně (c = kapacita nejmenšího použitého disku; n = celkový počet disků v diskovém poli):

Nestandardní a méně používané typy RAID

RAID 2

RAID 2

Je složitější verze RAID 3, kde jsou data po bitech stripována mezi jednotlivé disky. Data jsou zabezpečena pomocí tzv. Hammingova kódu. Díky němu lze rovněž rozpoznat a opravit chyby při čtení. Počet redundantních disků je úměrný počtu datových disků. Výhodou je zkrácení doby odpovědi při dlouhých přístupech na disk (spouštění paralelně), nevýhodou je malá propustnost.

RAID 3

RAID 3

Je použito N+1 stejných disků. Na N disků jsou ukládána data a na poslední disk je uložen exkluzivní OR - XOR (parita) těchto dat. Při výpadku paritního disku jsou data zachována, při výpadku libovolného jiného disku je možno z ostatních disků spolu s paritním diskem ztracená data zrekonstruovat. Výhodou je potřeba jen jednoho disku navíc, navíc se zkracuje doba odpovědi stejně jako u RAID 2. Nevýhoda je, že paritní disk je takzvaný bottle neck, neboli problémové místo systému, a je vytížen při zápisu na jakýkoliv jiný disk. Proto lze očekávat i jeho vyšší opotřebení a tím i nižší spolehlivost.

RAID 4

RAID 4

Disky jsou stripovány po blocích, ne po bitech a parita je na paritním disku opět ukládána po blocích. Výhody a nevýhody jsou stejné jako u RAID 3.

RAID 7

RAID 7 bylo vytvořeno firmou Storage Computer Corporation. Je odvozené od RAID 3 a RAID 4 a liší se zejména tím, že k nim přidává vyrovnávací paměť.

Výkon

Jednotlivé typy polí nabízejí různé výkonnostní charakteristiky. U diskových subsystémů je jednou ze zdaleka nejdůležitějších množství IOps (vstup/výstupní operace za sekundu). V případě mechanických disků je špičková hodnota limitována otáčkami disku a rychlostí vystavení hlaviček. Serverové disky s 15000 otáčkami atakují hodnotu 200 IOps, domácí disky cca 80 (5400 ot/s) až 120 (7200 ot/s). SSD může (v závislosti na typu) dosahovat na desítky tisíc IOps.

U diskových polí se pak udávají údaje zvláště pro čtení a zvláště pro zápis, neboť různá organizace disků ovlivňuje výkon různě. Je třeba zdůraznit, že jde o maximální teoretické hodnoty, a že ne všechny implementace takový způsob práce s disky podporují. Např. soho Intel Rapid (jinak také fake raid) čte data pouze z poloviny zrcadla.

R0
V tomto případě se množství IOps prostě násobí počtem disků, jak pro čtení tak pro zápis.
R1
Množství IOps pro zápis rovno jedinému disku (stejná data se zapisují na všechny disky), zatímco pro čtení jde o násobek disků (data lze číst ze všech disků pole).
R10
Zápis probíhá na N/2 disků, což je také násobek IOps pro zápis. Číst lze ze všech disků pole.
R5
Toto uspořádání umožňuje zápis rozložit na N-1 disků, zatímco čtení lze provádět ze všech disků pole.

Reference

Externí odkazy

Zdroj