RAID 0
Tento systém spojení více disků do jednoho neposkytuje žádnou odolnost vůči ztrátě dat. Dokonce šance na ztrátu dat je vetší než u jednoho disku (šance roste s větším počtem disků). RAID 0 data rovnoměrně rozloží na dva a více disků. Toto zapojení se většinou používá v systémech, kde je vyžadována rychlá rychlost čtení a není zas tak důležité zabránit ztrátě dat. Pokud velmi často čteme z RAID 0 něco, co je menší než velikost vrstvy, mohou jednotlivé disky pracovat paralelně a proto může být rychlost čtení větší. Ale při čtení velkých souborů je rychlost stejná jako při čtení z jednoho disku.
Velikost RAID 0 je vždy rovna n * s
, kde n
je počet disků a s
je velikost nejmenšího z disků.
Obnova dat po chybě jednoho z disků není možná → ztráta všech dat.
RAID 1
RAID 1 vytváří přesnou kopii (mirror
) jednoho disku na jeden nebo více dalších disků. Toto se hodí zejména tehdy, je-li rychlost čtení a ochrana před ztrátou dat důležitější než velikost disku. Obvykle je použita konstrukce, kdy jsou v RAID 1 zapojeny dva disky, ale může jich být i více.
Jelikož všechny disky mají stejný obsah, je rychlost čtení teoreticky až n
krát rychlejší (kde n
je počet disků v RAID 1), než při čtení z jednoho disku (v reálu je to ale méně, protože disk musí přeskočit blok, který už přečetl ten druhý).
Se zvětšujícím se počtu disků neroste kapacita výsledného RAID 0 (ta bude vždy rovna pouze velikosti nejmenšího disku), ale roste rychlost čtení / zápisu.
RAID 3
RAID 3 používá n-1
(n
je počet disků) na uložení dat a poslední disk je určen pro ukládání paritních informací. RAID 3 je specifický tím, že velikost bloku je jeden byte. RAID 3 se používá zřídkakdy, protože nezvládá číst více souborů na jednou - čtená dat budou vždy větší než je velikost bloku.
RAID 4
RAID 4 je velmi podobný RAID 3 s tím rozdílem, že velikost bloku už nemusí být jeden byte.
Nevýhodou RAID 4 je to, že paritní informace jsou ukládány pouze na jeden disk a proto, při zápisu hodně malých souborů mohou disky zapisovat data paralelně, ale vše bude zdržovat poslední disk, který nebude stíhat ukládat paritu. Tento problém řeší RAID 5.
RAID 5
RAID 5 je vždy tvořen minimálně třemi disky, přičemž kapacitu jednoho z nich zabírají informace o paritě, která je ale rovnoměrně rozložená mezi všechny disky. Odejde-li jeden disk, data mohou být obnovena použitím všech ostatních disků. Zápis je ale pomalejší, protože při každém zápisu se musí přepočítat paritní informace. Jeho výhodou je, že zatímco RAID 1 nebo RAID 1+0 využívají pouze 50%
kapacity, zatímco RAID 5 využívá , kde je velikost nejmenšího disku a n
je počet všech disků. Čtení z RAID 5 je rychlejší při čtení delších souborů, protože je zde možnost paralelního přístupu k jednotlivým diskům. Zápis na druhou stranu není tak rychlý, protože při každé změně se musí přepočítat paritní informace. Velikost vrstvy (stripe) může v rychlosti zápisu sehrát celkem velkou roli. Je-li totiž velikost zápisu menší než velikost vrstvy, musí se parita přepočítávat při každém zápisu. Ale když je velikost zápisu větší než velikost vrstva, parita se nemusí přepočítávat, pouze se přepíše.
#?) Máme k dispozici 4
disků o velikosti 2 TB
. Jaká bude velikost RAID 1 a jaká bude velikost RAID 5?
s = 8 TB n = 4
Parita
Způsob, jakým se RAID 5 chrání před ztrátou dat, je právě parita. Tvoří-li RAID 5 například 5 disků, tak 4 z nich jsou určeny na uložení dat a 1 je pro uložení parity. Pokaždé, když je zapsáno do jednoho bloku (v jednom ze čtyř disků), tak se přepočítá parita logickou funkcí XOR
(parita se ukládá na pátý disk).
#?) První čtyři disky udržují data, pátý paritu. Vypočtěte paritu.
Disk #1: 00101010 (Data) Disk #2: 10001110 (Data) Disk #3: 11110111 (Data) Disk #4: 10110101 (Data) Disk #5: -------- (Parita)
Jak už bylo řečeno, parita se vypočítá logickou funkcí XOR
. Výsledek proto bude:
00101010 XOR 10001110 XOR 11110111 XOR 10110101 = 11100110
V případě, že by se disk 1
rozbil, obnovu dat provedeme pomocí pátého disku.
Disk #1: ???????? (Data) Disk #2: 10001110 (Data) Disk #3: 11110111 (Data) Disk #4: 10110101 (Data) Disk #5: 11100110 (Parita)
Abychom získali data z disku 1
použijeme opět logickou funkci XOR
.
Disk #1 = Disk #2 XOR Disk #3 XOR Disk #4 XOR Disk #5 (Parita) Disk #1 = 00101010