Obsah lekce:
RAID (zkratka z anglického Redundant Array of Independent Disks – nebo česky Vícenásobné pole nezávislých disků) je označení pro diskové řadiče, které umožňují zapojení dvou a více disků pro zvýšení výkonu a ochranu proti chybám.
Nejjednodušší implementací diskových polí RAID je RAID 0, někdy označované jako prokládání (anglicky „stripping“). Na takové diskové pole jsou data ukládána po menších blocích střídavě na jednotlivé disky.
Výhodou tohoto řešení je mírné zvýšení výkonu (výkon zde chápeme jako rychlost čtení a zápisu), avšak v tomto případě uživatel nezíská žádné zabezpečení proti chybám.
Způsob ukládání dat na takové diskové pole při použití dvou disků znázorňuje níže uvedený obrázek.
Diskové pole RAID 1, které je označováno také jako zrcadlení (anglicky „mirroring“) vyžaduje pro svůj chod sudý počet pevných disků. Data jsou v tomto případě ukládána duplicitně na dva disky současně (stejná data se nachází na obou pevných discích).
Výhodou tohoto řešení je ochrana proti chybám – při poruše jednoho z pevných disků je k dispozici záložní kopie, takže stačí nahradit chybný disk a uživatel nepřichází o svá data. Nevýhodou je fakt, že je využíváno maximálně 50 % skutečné diskové kapacity (v případě rozdílné kapacity použitých disků lze využít velikost odpovídající menšímu ze dvojice disků). Navíc toto diskové pole nenabízí žádné zvýšení výkonu při ukládání dat.
Způsob ukládání dat na takové diskové pole při použití dvou disků znázorňuje níže uvedený obrázek.
Pole typu RAID3 pracuje minimálně se třemi disky a umožňuje opravu dat v případě poruchy jednoho disku (umožňuje dopočítat chybějící data). Samozřejmě zůstává riziko ztráty dat v případě výpadku více disku.
Na úvod je nutné vysvětlit dva pojmy: parita a logická funkce XOR.
Veškerá data na disku máme uloženy jako řetězec binárních dat - bitů. Tyto bity mohou představovat číselné hodnoty, obrazové informace - např. číselné vyjádření barevných složek jednotlivých obrazových hodnot, text - jednotlivé znaky textu jsou dle kódovací tabulky převedeny na číselné hodnoty a uloženy jako binární číslo, ...). V následujícím textu proto budou v tabulkách používány hodnoty 0 a 1, které by tvořila fiktivní data na pevném disku (samozřejmě v mnohem větším rozsahu, než je zde na příkladech uvedeno.
Nyní již k definici pojmu parita. Parita je jednou z metod ochrany proti chybám, která umožňuje detekovat a odstranit jednu chybu. Pro tuto detekci chyb je využita logická operace exkluzivního logického součinu (zkráceně XOR). Výsledek této operace se (v případě dvou disků s daty a jedním diskem s kontrolním součtem) řídí následující tabulkou.
Hodnota 1 | Hodnota 2 | Výsledek |
---|---|---|
0 | 0 | 0 |
0 | 1 | 1 |
1 | 0 | 1 |
1 | 1 | 0 |
Když se podíváme na výše uvedenou tabulku, tak zjistíme, že pokud je dvojice hodnot shodná, výsledkem je 0, a pokud je rozdílná, výsledkem je 1.
Můžeme však mít také situaci, kdy je více disků s daty. Podívejme se na příklad, kdy máme 3 disky s daty a jeden disk pro paritu.
Hodnota 1 | Hodnota 2 | Hodnota 3 | Výsledek |
---|---|---|---|
0 | 0 | 0 | 0 |
0 | 0 | 1 | 1 |
0 | 1 | 0 | 1 |
0 | 1 | 1 | 0 |
1 | 0 | 0 | 1 |
1 | 0 | 1 | 0 |
1 | 1 | 0 | 1 |
1 | 1 | 1 | 0 |
Jak bude XOR fungovat u více vstupních hodnot? V tomto případě budeme výraz vyhodnocovat zleva doprava. Pro ukázku bude vysvětleno na tučně zvýrazněném řádku z výše uvedené tabulky. Jedná se zde o výpočet 0 XOR 1 XOR 1, který lze zapsat také jako (0 XOR 1) XOR 1 = 1 XOR 1 = 0.
S operací XOR se můžeme kromě diskových polí setkat například i v kryptografii.
Diskové pole RAID 3 pro svůj provoz potřebuje minimálně 3 pevné disky. Jeden je použit pro paritní data, zbylé disky (minimálně 2) jsou použity pro data. Výhodou tohoto řešení je detekce a oprava chyby – v případě chyby jednoho z disků lze data, na základě informací ze zbylých disků, bez problémů obnovit. Nevýhodou je nemožnost využít celou kapacitu diskového pole – vždy je jeden disk blokován pro paritní data.
Následující tabulka demonstruje uložení dat na pole o třech discích, na kterém následně bude demonstrována obnova. Pro zjednodušení je velikost bloku dat pro ukládání nastavena na 1 bit.
Pozn. Parita je dopočítána dle výše uvedené tabulky pro exkluzivní logický součin. Při použití více pevných disků by se parita vypočítávala postupně (nejprve logických součin prvních dvou hodnot, následně přidání další hodnoty). Například na prvním řádku jsou data s hodnotami 0 a 1 a výsledek exkluzivního logického součtu je 1, na paritní disk se tedy ukládá hodnota 1.
V případě poškození jednoho disku lze na základě zbylých dat dopočítat data na poškozeném disku. Tuto situaci shrnuje následující tabulka (poškozená data jsou nahrazena znakem „X“).
Pozn. Data na poškozeném disku jsou nahrazena znakem „X“, za který budou dopočítána data. Například na prvním řádku tabulky je na prvním disku uložena hodnota 0, na druhém disku je hodnota poškozena a paritní disk obsahuje hodnotu 1. Obnovená data tedy budou výsledkem operace 0 XOR X = 1 a podle tabulky pro logický součin je získána hodnota X.
Diskové pole RAID 5 je založeno na stejném principu jako RAID 3 s tím rozdílem, že paritní data se ukládají střídavě na různé disky (kontrolní součet není pouze na jednom disku, jako v předchozím případě). Toto řešení mírně zvyšuje výkon (paritní data nejsou pouze na jednom disku, takže jeden disk není přetěžován opakovaným zápisem). Další výhody i nutné podmínky jsou již shodné s RAID 3.
Pole typu RAID 0+1 a RAID 10 jsou založeny na podobném principu. Kombinují totiž pole RAID 0 (prokládání) a RAID 1 (zrcadlení). Díky této kombinaci spojuje jejich výhody. Výhodou tohoto řešení je urychlení zápisu na disky (zapisují se vždy dva různé bloky dat současně) a plné zálohování dat (data se zapisují na dva různé disky ve stejné podobě). Nevýhodou jsou vyšší náklady na pořízení disků (nutno pořídit 4 disky a možno využívat pouze 50 % skutečné kapacity).
Pole RAID 0+1 je tvořeno dvěma poli typu RAID 0, které jsou propojeny do pole typu RAID 1. Způsob ukládání dat v takovém poli shrnuje následující obrázek.
Pole RAID 10 (někdy se označuje také jako 1+0) je velmi podobné poli RAID 0+1. Jediným rozdílem je způsob zapojení. Toto pole je tvořeno dvěma poli typu RAID 1, která jsou propojeny do pole RAID 0. Princip tohoto pole vystihuje následující obrázek.
Kromě výše vyjmenovaných typů RAID polí, se kterými se lze v dnešní době nejčastěji setkat, existují ještě různé méně typické varianty. Další informace o RAID polích naleznete například zde http://cs.wikipedia.org/wiki/RAID nebo zde http://connect.zive.cz/node/456.