Poslední aktu.
22.01.2003 21:34

Intel
AMD
Ostatní

Přidat k oblíbeným

Zobrazení stránek

 
 
 
 
 
 
 

 

 

 

 

 

 

 

 

 

 

 

                              

 

Jak funguje RAID

Disková pole RAID (Redundant Array of Independent Disks) byla až donedávna doménou výkonných serverů. Pro “normální” uživatele je RAID čímsi souvisejícím se SCSI disky a hlavně příliš drahým. S příchodem Ultra ATA/66 se objevily řadiče, které toto rozhraní podporují (pro starší základní desky) a také řadiče, které umožňují použít RAID pole i pro IDE (tedy levnější) disky. Ze známých firem nabízí IDE RAID řadiče například Promise (FastTrak66) nebo Iwill (Side RAID66). Oba tyto řadiče jsou velmi podobné, nabízejí tři základní typy RAID polí – RAID 0, RAID 1 a RAID 0/1 (někdy se označuje jako RAID 10), podporují až čtyři pevné disky. Obecně se dá říct, že RAID se používá ke zvýšení výkonu a/nebo spolehlivosti pevných disků. Jak jednotlivé typy RAID polí fungují a v čem jsou výhodné si teď vysvětlíme.

RAID 0 pole je určeno pro zvýšení výkonu systému pevných disků. Princip je v podstatě jednoduchý. Označuje se jako “Stripping”, používá dva (nebo více) pevných disků pro znásobeni rychlosti čtení a zápisu dat. Data (soubory) jsou RAID řadičem rozdělena a ukládána současně na oba disky - polovina souboru na jeden disk, druhá polovina na druhý disk. Data jsou dělena “za běhu” na menší části o určité velikosti (např. 8 KB) a ty jsou ukládány na oba disky současně. Neznamená to tedy, že první polovina souboru je na prvním disku, druhá polovina na druhém. Uložení 100 MB souboru na RAID 0 pole se dvěma disky zabere přibližně stejnou dobu jako uložení 50 MB souboru na jeden disk. Obdobné je to samozřejmě se čtením dat. Pro představu, RAID 0 funguje podobně, jako když hadicí napouštíte bazén. Použijete li dvě (stejné) hadice, bazén se naplní dvakrát rychleji (vzpomínáte si na slovní úlohy ze základní školy?). RAID 0 tedy nezvyšuje spolehlivost uložených dat, odejde-li vám jeden disk, pak s největší pravděpodobností přijdete také o všechna data. Pro RAID 0 je vhodné používat stejné disky, co do kapacity i výkonu, nejlépe tedy dva identické disky. Výkon a kapacita je dána “slabším diskem”. Je logické, že rychlejší disk by stejně musel čekat na pomalejší. Použijete-li např. jeden 4 GB a jeden 6 GB disk, využijí se z druhého disku pouze 4 GB a celková kapacita takového RAID 0 pole je 8 GB. Disků můžete samozřejmě použít více, dosáhnete tím ještě vyššího výkonu, přičemž opět platí pravidlo “nejlépe použít stejné disky”. Kapacita RAID 0 pole je dána kapacitou nejmenšího disku násobenou jejich počtem. Víc disků tedy znamená větší kapacitu (až na extrémní případy, kdy použijete třeba dva 10 GB disky a jeden 1 GB – výsledná kapacita pak je 3 GB).

RAID 1 pole je naopak určeno pro zvýšení spolehlivosti uložených dat, označuje se jako “Mirroring”. Už z názvu je zřejmý princip – data jsou ukládána současně na dva (nebo více) pevné disky, přičemž na všechny disky jsou ukládána stejná data. To znamená, že všechny disky použité v RAID 1 obsahují identická data a pokud jeden z nich “klekne”, nahradí ho jiný disk. U RAID 1 pole je celková kapacita dána velikostí nejmenšího disku (ničím nenásobená). Druhý (třetí, čtvrtý…) disk v poli nezvyšuje kapacitu, ale spolehlivost tím, že vytváří kompletní a rychle přístupnou zálohu dat. I pro RAID 1 pole je vhodné použít disky o stejné kapacitě a výkonu.

RAID 0/1 pole je kombinací obou výše popsaných. Jedná se vlastně o to, že vytvoříte RAID 0 pole a to pak zrcadlíte RAID 1 polem. Výsledkem jsou vlastně dvě RAID 0 pole obsahující identická data. RAID 0/1 zvyšuje jak výkon, tak spolehlivost, musíte ovšem použít nejméně čtyři disky, nejlépe opět se stejnými parametry.

Některé RAID řadiče nabízejí další možnost, jak využít více disků. Jedná se o tzv. “Spanning”, neboli spojení několika fyzických disků do jednoho (velkého) logického celku. Použít lze libovolné disky, kapacita je dána prostým součtem kapacit jednotlivých disků. Tuto funkci však nabízejí i některé operační systémy (např. Windows NT, Windows 2000).

Jak se v praxi projeví zvýšení výkonu použitím pole se můžete přesvědčit na HardwareCentral. V syntetických benchmarcích je zvýšení výkonu opravdu výrazné, v praktických aplikacích už to tak žhavé není. Ve hrách se zvýšení výkonu neprojeví vyšším počtem snímků za sekundu, ale rychlejším startem a načítáním jednotlivých map. Také je třeba podotknout, že se nijak nezmění přístupová doba, ani přes RAID nelze k disku přistupovat dříve, než to on sám dovolí.

RAID 2 pouze přidává do základního RAID 0 pole dodatečnou ochranu dat pomocí ECC korekce 
(Error Checking and Correction). Vyžaduje však podporu ze strany pevných disků, proto se 
tato metoda komerčně nijak výrazněji nerozšířila.

RAID 3 opět vychází ze “stripped” pole, používá však praktičtější metodu ochrany dat – ukládá
paritní informace na vyhrazený disk. Na ostatní disky jsou data ukládána v malých “proužcích” 
(na úrovni bajtů). Z každého disku v poli je vždy pro každý bit na stejné pozici (v bajtu) 
vypočítána parita (funkcí XOR – exclusive OR) a uložena na “paritní disk”. Při výpadku 
jednoho disku je pak možné z dat uložených na zbývajících discích a paritních informací 
dopočítat ztracená data (po výměně vadného disku za nový). Proces dopočítání ztracených 
dat si samozřejmě vyžádá nějaký čas a hlavně výpočetní výkon, takže po dobu rekonstrukce 
dat je výkon celého systému poněkud snížen a stejně tak jeho schopnost vytvářet paritní 
informace. výkon RAID 3 trpí při zápisu nutností přečíst paritní data z vyhrazeného disku
a znovu je na něj uložit. Zápis je tak o něco pomalejší a paritní disk je limitujícím 
členem RAID 3. Při čtení je výkon RAID 3 vyšší než při použití jediného disku, protože 
data jsou čtena paralelně z několika disků najednou, podobně jako u RAID 0 pole. Pouze v
případě aplikací vyžadujících krátké úseky dat 
(typicky databáze) není výkon RAID 3 o mnoho vyšší ve srovnání s jediným diskem.


Jak funguje výpočet parity je vidět v následujíc tabulce. Řádky odpovídají bajtům uloženým na 
jednotlivých discích, parita je počítána ve sloupcích pro každý jednotlivý bit.

  Bit 0 Bit 1 Bit 2 Bit 3 Bit 4 Bit 5 Bit 6 Bit 7
Disk 1 0 1 0 0 1 0 1 0
Disk 2 1 1 1 0 1 0 0 0
Disk 3 0 1 0 1 0 0 0 1
Parita 1 1 1 1 0 0 1 1


RAID 4 se velmi podobá předchozímu RAID 3. Také používá dva nebo více disků pro uložení 
informací a jeden vyhrazený disk pro uložení paritních informací. Používá však dostatečnou
velikost “proužku” pro uložení celého záznamu (pracuje na úrovni bloků). To umožňuje
přistupovat k uloženým informacím nezávisle, což je výhodné pro čtení velkého množství 
malých bloků dat (např. pro databázové systémy). Stále ale trpí stejným problémem při 
zápisu jako RAID 3.

RAID 5 je oblíbeným typem diskového pole, protože překonává některé nedostatky RAID 3
a 4. Stejně jako ony, je i u RAID 5 ukládána paritní informace, nikoli však na jeden 
vyhrazený disk, ale je rozložena na všech discích v poli. Zápis je proto rychlejší než 
na RAID 3 nebo 4, nicméně stále je při zápisu třeba přečíst paritní informace, přepočítat
je a znovu uložit. Ve srovnání s RAID 0 je tedy zápis v RAID 5 o něco pomalejší. Výkon
při čtení je možné optimalizovat nastavením velikosti bloku ukládaných dat pro aplikaci, 
která je nejčastěji používána. Chyba disku a jeho výměna za nový opět způsobí zpomalení 
systému v důsledku dopočítávání ztracených dat. Cena RAID 3, 4 a 5 polí je prakticky 
stejná, vždy potřebujete jeden disk navíc pro uložení paritních informací.

RAID 6 je posledním (nehybridním) diskovým polem. Podobně jako RAID 5 využívá rozprostření
paritních informací na všech discích v poli, vytváří však dvě nezávisle vypočtené paritní
informace. RAID 6 je díky tomu nejspolehlivější a i při výpadku dvou disků lze data znovu 
zrekonstruovat. Rychlost čtení je srovnatelná s RAID 5, avšak zápis je o něco pomalejší, 
protože je nutné vypočítat a uložit dvě sady paritních informací. Také cena RAID pole je 
o něco vyšší, používá se proto jen tam, kde je kladen opravdu maximální důraz na spolehlivost
a přístupnost dat.

Jednotlivé typy diskových RAID polí už jsme si prošli, zbývá ještě zmínit se o hybridních typech, které kombinují dva z již uvedených typů. V hybridních RAID polích se využívá základního RAID 0 pole, které je kombinováno s dalším typem zajišťujícím ochranu dat. Každý soubor je rozdělen v RAID 0 poli mezi dva a více “disky”, které jsou ovšem tvořeny dalším RAID polem.

O RAID 10 jsme se již zmiňovali, v podstatě se jedná o zrcadlení disků v každé větvi RAID 0 pole. Výhodou je vysoký výkon (díky paralelnímu přístupu v RAID 0), nevýhodou ovšem poněkud vyšší cena, protože pro uložení dat potřebujete dvojnásobnou kapacitu disků (data jsou zrcadlena, čili uložena dvakrát).

RAID 30 a RAID 50 fungují podobně jako RAID 10 s tím rozdílem, že jednotlivé větve RAID 0 pole netvoří “zrcadla”, ale RAID 3 nebo RAID 5 pole. Data jsou nejprve rozdělena a jednotlivé části jsou uloženy v paritním RAID 3/5 poli. Velikostí “proužku” se dá RAID 30/50 pole optimalizovat pro sekvenční (např. video) nebo transakční (např. databáze) aplikace.

Jednotlivé charakteristiky RAID polí si shrneme v tabulce:

  Spolehlivost Výkon při čtení Výkon při zápisu Výkon při obnově dat Minimální kapacita disků
RAID 0 Žádná velmi dobrý velmi dobrý n/a N
RAID 1 Vysoká velmi dobrý dobrý dobrý 2xN
RAID 2  Dobrá velmi dobrý dobrý dobrý N+1 
RAID 3         N+1
RAID 4         N+1
RAID 5 dobrá sekv. dobrý trans. velmi dobrý přijatelný pokud není použita write-back cacheslabý N+1
RAID 6 vysoká velmi dobrý slabý slabý N+2
RAID 10 vysoká velmi dobrý přijatelný dobrý 2xN
RAID 30/50 vysoká velmi dobrý přijatelný přijatelný N+2

Pozn.: “N” značí požadovanou kapacitu diskového pole.

Pole RAID 0 je vhodné pro ukládání “méně důležitých” dat za účelem zvýšení výkonu diskového subsystému. RAID 1 je vhodné pro menší databáze s kritickými daty, nevýhodou je vysoká cena. RAID 2 vyžaduje speciální disky s podporou konkrétního typu ECC a prakticky se nepoužívá. RAID 3 je vhodné pro pracovní stanice, práci s velkými objemy sekvenčních dat, jako je např. video. RAID 4 je vhodné pro databázové systémy a systémy pracující s malými úseky dat. Podobně RAID 5 je vhodné pro databáze a transakční čtení/zápis. RAID 6 je vhodné pro malé a střední databáze s důrazem na vysokou spolehlivost a dostupnost dat, v praxi se ovšem moc nepoužívá. RAID 10 je vhodné pro náročné datové přenosy velkých objemů dat s vysokou spolehlivostí. RAID 30 a 50 jsou vhodná pro středně velké databáze (transakční přenos) a datově náročné systémy.


Optimalizováno pro rozlišení 1024*768*32 a Internet Explorer 6.
Webmaster
,  © 2001-2003 Abitfun czech club