RAID (anglicky Redundant Array of Inexpensive/Independent Disks – vícenásobné diskové pole laciných/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.
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.
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 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á.
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 tak zvaně 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. Skutečná záloha však 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.
Populární typy RAID
RAID 0
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) a prokládáním (anglicky striping):
- Zřetězení (JBOD)
- 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. 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.
- Prokládání
- Při prokládání jsou data ukládána na disky cyklicky (střídavě, viz obrázek vpravo). 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). Zvýšení o 50 % samozřejmě neznamená o polovinu vyšší výkon, jelikož zapojení do RAID 0 nesnižuje přístupovou dobu.
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é 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.
- Pole RAID 0+1 (stripování) je kombinací RAID 0 a RAID 1. 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í redundantní 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) 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 redundantně, 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.
- 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) Výhody jsou podobné RAID 0+1, navíc je RAID 1+0 odolnější proti výpadku více disků a po chybě je obnova dat mnohem rychlejší. Nevýhodou je opět využití pouze 50 % kapacity.
RAID 5
RAID 5
RAID 5 vyžaduje alespoň 3 členy, přičemž kapacitu jednoho členu zabírají samoopravné kódy, 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í disky, přičemž na každém z nich je parita vypočtena 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ů.
Nestandardní a méně používané typy RAID
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ěť.
RAID 0+1
RAID 0+1
Jedná se o typ složený z několika diskových polí typu RAID. Někdy bývá také označováno jako RAID 01. V tomto případě se jedná o dvě disková pole typu RAID 0, která jsou zrcadlena RAIDem 1. 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
Od RAID 0+1 se liší tím, že se data nejdříve v diskových polích zrcadlí a teprve pak se tato pole vloží do dalšího diskového pole typu RAID 0 pro větší zrychlení přenosových rychlostí. Maximální počet pevných disků, který může selhat bez jakýchkoliv následků je jeden v každém poli. Tento typ se často používá pro hodně vytížené databázové aplikace. Nemusí se totiž počítat paritní data, čímž se vše zrychluje (případně zlevňuje). 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 50 (RAID 5+0)
RAID 0 .-----------------------------------------------------. | | | RAID 5 RAID 5 RAID 5 .-----------------. .-----------------. .-----------------. | | | | | | | | | 120 GB 120 GB 120 GB 120 GB 120 GB 120 GB 120 GB 120 GB 120 GB A1 A2 Ap A3 A4 Ap A5 A6 Ap B1 Bp B2 B3 Bp B4 B5 Bp B6 Cp C1 C2 Cp C3 C4 Cp C5 C6 D1 D2 Dp D3 D4 Dp D5 D6 Dp
Celková využitelná kapacita tohoto pole je 720GB (týká se výše zobrazené ilustrace).
RAID 60 (RAID 6+0)
RAID 0 .------------------------------------. | | RAID 6 RAID 6 .--------------------------. .--------------------------. | | | | | | | | 120 GB 120 GB 120 GB 120 GB 120 GB 120 GB 120 GB 120 GB A1 A2 Aq Ap A3 A4 Aq Ap B1 Bq Bp B2 B3 Bq Bp B4 Cq Cp C1 C2 Cq Cp C3 C4 Dp D1 D2 Dq Dp D3 D4 Dq
Celková využitelná kapacita tohoto pole je 480GB (týká se výše zobrazené ilustrace).
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. 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 také větší množství disků.
RAID 100 (RAID 10+0)
RAID 0 .-------------------------------------. | | RAID 0 RAID 0 .-----------------. .-----------------. | | | | RAID 1 RAID 1 RAID 1 RAID 1 .--------. .--------. .--------. .--------. | | | | | | | | 120 GB 120 GB 120 GB 120 GB 120 GB 120 GB 120 GB 120 GB A1 A1 A2 A2 A3 A3 A4 A4 A5 A5 A6 A6 A7 A7 A8 A8 B1 B1 B2 B2 B3 B3 B4 B4 B5 B5 B6 B6 B7 B7 B8 B8
Celková využitelná kapacita tohoto pole je 480GB (týká se výše zobrazené ilustrace).