RAID

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. 

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

800px-RAID_0.svg

 

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.

1024px-JBOD.svg

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í)

800px-RAID_1.svg

 

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

1280px-RAID_5.svg

 

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

1280px-RAID_6.svg

 

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

1280px-RAID_3.svg

 

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

1280px-RAID_4.svg

 

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

1024px-RAID_01.svg

 

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):

velikost = \frac{n \cdot c}{2}

 

RAID 10 (RAID 1+0)

1024px-RAID_10.svg

 

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):

velikost = \frac{n \cdot c}{2}

 

RAID 50 (RAID 5+0)

RAID_50_scheme.svg

                            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_6+0.svg

                        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_10+0.svg

                       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).