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
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
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 2
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
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.
RAID 4
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
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
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.
RAID 10 (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 Hardware centru. 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 30, RAID 50
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.
Použití RAID
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.