RAID

z Wikipédie, slobodnej encyklopédie
Prejsť na: navigácia, hľadanie

RAID alebo redundant array of independent disks (doslova redundantné (nadbytočné) pole nezávislých diskov) je súhrnný termín označujúci rôzne schémy ukladania dát používajúce viacero diskov na rozdeľovanie alebo replikáciu dát medzi jednotlivými diskami. (Niekedy sa používa namiesto slova independent pojem inexpensive, t. j. nenákladný, lacný.) Jednotlivé typy polí dosahujú v závislosti na konfigurácii rôznu úroveň zabezpečenia dát pred chybami a stratou spôsobenou zlyhaním hardwaru a rôzne veľké zvýšenie výkonu (dátovej priepustnosti) pri diskových operáciách vo vzťahu k počtu diskov, potrebe špecializovaných radičov polí a tým aj cene riešenia.

Úrovne (Levels) systému RAID[upraviť | upraviť zdroj]

RAID 0
RAID 1
RAID 3
RAID 4
RAID 5
RAID 6

Štandardné typy diskových polí (Standard RAID Levels)[upraviť | upraviť zdroj]

RAID 0[upraviť | upraviť zdroj]

RAID 0 (Striped Set = prekladaná sada) rozdeľuje bloky dát súmerne medzi 2 alebo viac diskov bez informácie o parite. Používa sa zvyčajne na zvýšenie výkonu, hoci môže byť použitá na vytvorenie malého počtu veľkých virtuálnych diskov. Výsledná pridaná kapacita je limitovaná najmenším diskom, teda napr. pri použití 160 a 100 GB disku je výsledná kapacita iba 2 x 100 GB = 200 GB (nie 100 + 160 GB). Všeobecne je celková kapacita RAID 0 vyjadrená vzťahom SRAID0 = n × min(S1,S2, ...Sn), kde SRAID0 je kapacita poľa, n počet diskov a S1, S2 až Sn kapacity jednotlivých diskov.

Zvýšenie výkonu (teoreticky n-násobné, pričom n je počet diskov v poli) je citeľné pri zápise a čítaní veľkých súborov. Pri práci s veľkým počtom malých súborov je výkon poľa značne degradovaný väčšou prístupovou dobou, keďže disky musia zakaždým vyhľadávať súvisiace bloky na jednotlivých diskoch. Ak je veľkosť súborov, s ktorými sa pracuje, menšia než veľkosť stripu, nárast výkonu RAID 0 oproti jedinému disku je nulový. (Strip = reťaz blokov cez disky naprieč celým poľom, na obr. vpravo tvoria strip bloky A1 a A2, bloky A3-A4 tvoria iný strip etc.)

Zlyhanie jediného disku v poli RAID 0 má za následok stratu všetkých dát uložených v poli. Úroveň zabezpečenia dát pred stratou je preto nižšia v porovnaní so samostatným diskom a znižuje sa približne nepriamo úmerne s rastúcim počtom jednotiek v poli: MTBFRAID0 ≈ MTBFdisk / n (MTBF = Mean Time Between Failures, tiež MTTF = Mean Time To Failure – stredná doba do výskytu kritickej chyby; očakávaná životnosť; n je počet diskov).

RAID 1[upraviť | upraviť zdroj]

RAID 1 (Mirrored Set = zrkadlená sada) vytvára identickú kópiu dát na dvoch alebo viacerých diskoch. To je výhodné, ak redundancia má prednosť pred využitím maximálnej možnej kapacity – toto pole pri postupnom zlyhávaní diskov pracuje, kým funguje posledný z nich (samozrejme, výkon sa zníži). Pravdepodobnosť zlyhania celého poľa je súčinom pravdepodobností zlyhania jednotlivých diskov (za predpokladu štatistickej nezávislosti zlyhaní): pRAID1 = p1 × p2 ×… × pn, kde n je celkový počet diskov. Napríklad v poli RAID 1 s dvoma diskami, každý s p = 0,001 (desatina %) je pravdepodobnosť zlyhania celej sústavy 0,0012 = 10−6. Tento teoretický predpoklad však treba v praxi brať s rezervou, ani redundancia nechráni dáta úplne. Disky pochádzajúce z jednej výrobnej série môžu trpieť tou istou výrobnou chybou a zlyhať prakticky súčasne; celé diskové pole môže tiež byť vyradené vplyvom vonkajších okolností – skrat v napájacom zdroji, prepätie a pod.

Kapacita tohto riešenia je rovná kapacite najmenšieho disku.

Výkon je závislý na korektnej implementácii – v optimálnom prípade sa pri čítaní takmer znásobuje počtom diskov v poli, pretože rôzne časti jedného súboru sa čítajú z viacerých diskov súčasne a nezávislý seek diskov znižuje prístupovú dobu. V praxi sa však stáva, že starší alebo low-endový radič nedokáže pristupovať k diskom nezávisle a znižuje priepustnosť poľa na úroveň samostatného disku. Navyše nutnosť preskakovať medzi blokmi s fragmentmi súborov potláča aj výhodu rýchleho sekvenčného čítania. Pri zápise zostáva výkon nepatrne pod úrovňou samostatného disku, keďže objem zapisovaných dát sa znásobuje kvôli zápisu na všetky disky v poli a zlomok výkonu uberie aj réžia tohto procesu.

Pole RAID 1 disponuje niektorými administratívnymi výhodami. V niektorých systémoch je možné napr. odpojiť z neho jeden disk (označiť ako neaktívny) a vykonať jeho zálohovanie, následne sa disk opäť pripojí a vykoná sa rebuild poľa. Toto je osožné v systémoch, ktoré musia byť stále v chode a ich súbory vždy dostupné (pričom počas zálohovania sa nesmie na disk/pole zapisovať, aby bola zaručená konzistentnosť dát).

RAID 2[upraviť | upraviť zdroj]

RAID 2 rozdeľuje dáta na bitovej úrovni na 3 alebo viac diskov, s použitím Hammingovho kódu na opravu chýb. Rotácia diskov je synchronizovaná a dáta sú ukladané tak, aby každý sekvenčný bit bol na inom disku. Parita, s použitím Hammingovho kódu, sa počíta z príslušných bitov a ukladá sa aspoň na jeden disk, vyhradený pre paritu. Disky sú synchronizované radičom. Tento typ RAID poľa sa v praxi nepoužíva.

RAID 3[upraviť | upraviť zdroj]

RAID 3 rozdeľuje dáta na bajtovej úrovni s vyhradeným (dedikovaným) diskom na paritu. Rotácia diskov je synchronizovaná a dáta sú ukladané tak, aby každý sekvenčný bajt bol uložený na inom disku. Dáta parity sú počítané z príslušných bajtov a sú uložené na samostatnom disku, vyhradenom len pre paritu. Minimálny počet diskov je 3. Parita je vypočítavaná pomocou logickej funkcie XOR. Aj keď implementácia RAID 3 existuje, v praxi sa bežne nepoužíva.

RAID 4[upraviť | upraviť zdroj]

RAID 4 (Striped Set With Dedicated Parity) používa rozdeľovanie dát na blokovej úrovni s vyhradeným diskom na paritu. Je to podobné riešenie ako RAID 3 s tým rozdielom, že disky môžu pracovať samostatne, ak je vyžadovaný iba jeden blok. Je to dané faktom, že prekladanie dát sa deje na úrovni blokov, nie bajtov ako pri RAID 3. Ak to podporuje diskový radič, RAID 4 môže spracúvať viaceré požiadavky na čítanie súčasne. Rozdiel oproti RAID 5 spočíva v použití dedikovaného disku na ukladanie paritných blokov, kým v prípade RAID 5 sa všetky bloky (dátové aj paritné) rozdeľujú medzi všetky disky (distribuovaná parita). Dedikovaný disk s paritnými blokmi predstavuje najmä pri väčšom počte diskov v poli úzke hrdlo tohto riešenia – zápis na každý z dátových diskov si vyžaduje zápis na paritný disk; tiež pri rekonštrukcii dát po zlyhaní niektorého dátového disku je potrebné neustále čítať paritu súčasne s každým blokom z každého dátového disku. Preto je RAID 5 o niečo výkonnejší a preferovanejší typ diskového poľa. V prípade poruchy paritného disku sa pole správa ako RAID 0, v tomto jedinom prípade je jeho výkon vyšší, než výkon RAID 5.

RAID 5[upraviť | upraviť zdroj]

RAID 5 (Striped Set With Distributed Parity) používa rozdeľovanie dát na blokovej úrovni s paritou na každom disku. Takéto rozdeľovanie dát eliminuje úzke hrdlo RAID 4 tvorené preťažovaným paritným diskom. Je to jedno z najpopulárnejších RAID riešení a je často používané.

Na vytvorenie poľa RAID 5 sú potrebné najmenej 3 fyzické disky. Jeho využiteľná kapacita je daná vzťahom SRAID5 = (n-1) × Smin, kde Smin je veľkosť najmenšieho z diskov a n počet diskov. Využiteľnosť kapacity diskov aj úroveň bezpečnosti dát sa dajú škálovať zmenou počtu diskov v poli. Maximálny počet diskov v RAID 5 je teoreticky neobmedzený, v praxi však ich vysoký počet znamená vyššiu pravdepodobnosť simultánneho zlyhania dvoch a viacerých jednotiek (MTBF poľa môže dokonca klesnúť pod úroveň MTBF samostatného disku), príliš veľké časové nároky na rebuild poľa a väčšiu možnosť výskytu neopraviteľného sektoru počas rebuildu.

Pri zlyhaní ktoréhokoľvek z diskov si toto pole zachováva funkčnosť za cenu zníženého výkonu – chýbajúce bloky dát sú priebežne (on the fly) dopočítavané z dátových a paritných blokov zvyšných diskov. Na aplikačnej úrovni sa výpadok jedného disku takmer neprejaví. RAID 5 radič s udalosťou "oboznámi" operačný systém, ktorý vyzve administrátora na výmenu zlyhaného disku. Po výmene nastáva rebuild poľa – z dátových a paritných blokov funkčných diskov sa dopočítajú chýbajúce bloky na vymenenej jednotke. V časovom intervale medzi poruchou a dokončením rebuildu (Interim Data Recovery Mode) je RAID 5 vystavené zvýšenému riziku celkovej straty dát v prípade poruchy jedného zo zvyšných diskov, keďže pri zlyhaní dvoch alebo viacerých diskov naraz dochádza k strate všetkých dát.

Rýchlosť čítania z RAID 5 sa takmer vyrovná rýchlosti RAID 0, malý rozdiel je spôsobený nutnosťou preskakovať paritné bloky rozmiestnené medzi dátovými, keďže čítať paritu za normálnej prevádzky nie je potrebné. Nevýhodou riešenia je pomalý zápis. Ide totiž o komplikovaný proces, pri ktorom dochádza najprv k prečítaniu starých dát zo stripu (strip = postupnosť súvisiacich blokov na rôznych diskoch naprieč poľom), výpočet a zápis novej parity a nakoniec zápis nových dát na strip. Proces je náročný na diskové operácie a spôsobuje veľké toky dát medzi diskami a radičom. Obzvlášť markantný pokles výkonu nastane v prípade, že je bežná implementácia RAID 5 vystavená záťaži zahrňajúcej množstvo zápisov objemov dát menších, než je kapacita jedného stripu. Komplexnejšie implementácie zahŕňajú nevolatilnú vyrovnávaciu pamať (write-back cache), ktorá redukuje tento nepriaznivý jav.

V prípade, že nie je použitý špecializovaný radič RAID 5 s hardwarovou podporou paritných výpočtov, dochádza k zaťaženiu procesora (software RAID). Iný problém predstavuje tzv. write hole, jav, ktorý nastane, ak dôjde v momente zápisu k pádu systému a konzistentnosť parity stripu s dátami sa naruší. Ak toto nie je správne detegované a opravené skôr, než dôjde k zlyhaniu disku alebo bloku, po výmene chybného disku dôjde k nekorektnej obnove príslušného dátového bloku z nesprávnej parity a dáta v tomto bloku budú stratené. Túto hrozbu sa snažia eliminovať technológie ako záložné napájanie cache a RAID Z.

RAID 6[upraviť | upraviť zdroj]

RAID 6 (Striped Set With Dual Distributed Parity) používa rozdeľovanie na blokovej úrovni, podobne ako RAID 5, a rozširuje ho o ďalší blok s paritou. Používa teda dva bloky s paritou na každom disku.

RAID 6 sa skladá najmenej zo 4 fyzických diskov. Využiteľná kapacita poľa je určená vzťahom: SRAID6 = (n-2) × Smin, kde Smin je veľkosť najmenšieho z diskov a n počet diskov.

Výhodou je vyššia odolnosť voči zlyhaniu jednotlivých diskov, nevýhodou v porovnaní s RAID 5 ešte nákladnejšia réžia v zmysle poklesu výkonu pri operáciách zápisu.

RAID 0+1
RAID 10

Zložené typy diskových polí (Nested RAID Levels)[upraviť | upraviť zdroj]

Štandardné typy diskových polí je možné rôznymi spôsobmi kombinovať a škálovať tak ich vlastnosti, zvyčajne za cenu vyššieho najmenšieho počtu potrebných diskov, než predstavuje minimum potrebné na konštituovanie RAID 0 až 6. Obvyklé kombinácie sú RAID 0+1, 1+0, 5+0, 5+1, 6+0, 3+0, 10+0 a pod. Niektoré zdroje uvádzajú ich označenia bez znaku "+", t. j. RAID 10, 50, 51, 60, 100 atd. Výnimkou je označenie 0+1, kvôli vylúčeniu zámeny názvu RAID 01 s RAID 1.

Ako napovedá názov, RAID 0+1 v najjednoduchšej verzii pozostáva zo štyroch fyzických diskov, z ktorých sú vytvorené dva stripped páry RAID 0 a tieto následne zrkadlené v RAID 1. V prípade RAID 1+0 (RAID 10) je to naopak: dve zrkadlené sady sú následne prekladané (stripped). Obidve riešenia majú podobné vlastnosti: vyššiu priepustnosť, polovičnú celkovú kapacitu oproti súčtu kapacít samostatných (standalone) diskov redukovaných na veľkosť najmenšieho disku. Miera bezpečnosti dát sa však líši. V prípade poruchy ktoréhokoľvek disku (ak uvažujeme o 4-diskovom riešení) tieto polia nestrácajú funkčnosť, ak následne dôjde k poruche druhého disku, RAID 1+0 má pravdepodobnosť zachovania funkčnosti 2:3 (z 3 funkčných diskov porucha jedného z dvoch nie je kritická, porucha tretieho vyradí pole), kým "šanca na prežitie" RAID 0+1 je len polovičná – 1:3. Navyše, v RAID 1+0 je potrebný zápis len na jeden disk v prípade rebuildu poľa po páde jedného fyzického zariadenia, kým v RAID 0+1 je nutné obnoviť všetky (minimálne 2) disky v celom stripped sete. Z týchto dôvodov je všeobecne viac preferovaná konfigurácia diskov 1+0.

Podobne spôsob, akým sú kombinované ostatné typy štandardných polí, určuje vlastnosti výsledných zložených polí.

Princíp tvorby diskových polí umožňuje kombinovať aj samotné zložené polia. Napr. RAID 10+0 (RAID Level 100) pozostáva najmenej z 8 fyzických diskov, z ktorých sú vytvorené zrkadlené dvojice, tieto následne prekladané (dve a dve dvojice) a vzniknuté RAID 10 polia ešte raz prekladané (stripped).

MATRIX RAID
JBOD

Neštandardné typy diskových polí (Non-Standard RAID Levels)[upraviť | upraviť zdroj]

Niektoré neštandardné typy diskových polí môžu byť proprietárne.

MATRIX RAID[upraviť | upraviť zdroj]

Matrix Raid (Intel Matrix Storage Technology) kombinuje polia RAID 0 a RAID 1 na dvoch fyzických jednotkách. Každý z diskov sa rovnakým spôsobom rozčlení na partície, pričom jednotlivé (rovnaké) páry partícií na rôznych diskoch sa kombinujú do príslušných typov polí. Súbory, ktoré vyžadujú vyššiu ochranu a/alebo majú malú veľkosť, sú podľa uváženia užívateľa uložené v RAID 1 oblasti. Tie, ktoré zaťažujú systém veľkými dátovými tokmi (editované HD video a pod.), môžu využiť oblasť RAID 0. Ide o úsporné riešenie, prvýkrát podporované southbridge chipsetom Intel ICH-6R, ktoré umožňuje vytvoriť odlišné typy polí na jedinom páre fyzických diskov, bez nutnosti obstarania dodatočných diskových jednotiek. Niekedy sa nesprávne označuje ako RAID 10, pričom RAID 10 (tiež RAID 1+0) je odlišný typ zloženého poľa využívajúci najmenej 4 fyzické disky (pozri vyššie).

JBOD (SPAN)[upraviť | upraviť zdroj]

JBOD ("Just a Bunch of Disks" = doslovne "len taký zhluk diskov"; tiež SPAN). Nepríliš rozšírené zapojenie 2 a viacerých diskov, vytvára jeden virtuálny disk, ktorého kapacita je určená súčtom kapacit fyzických diskov. Dátové bloky sú ukladané postupne, za posledným blokom predchádzajúceho disku nasleduje prvý blok ďalšieho.

JBOD nenesie žiadne informácie o parite. Nejde o diskové pole v pravom zmysle, nevzniká pri ňom redundancia dát ani nedochádza k zvýšeniu výkonu. Pri zlyhaní jedného z diskov sa naruší konzistencia celého súborového systému, ktorý je rozprestrený cez celý konglomerát diskov. JBOD vytvára väčšiu logickú jednotku z menších fyzických diskov, preto je možné interpretovať ho ako opak partitioningu, pri ktorom sa jeden fyzický disk rozdelí na menšie logické jednotky (oddiely, partície).