Články » Programování

Pevné disky - RAID

Vydáno dne v kategorii Programování; Autor: ; Počet přečtení: 1 317

Úvod do problematiky RAID pevných disků


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ž nkrá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

Tento clanek pro vas napsal Jakub Vojacek!

Test

Najděte druhou derivaci funkce


Hlavolam

Představte si, že máte kovový zvon jako na obrázku, který je připojen na čerpadlo. Uzávěry na trubkách 1, 2 a 3 jsou zavřené. Hlavní uzávěr je otevřen, zvon je ponořen do vody a čerpadlo je spuštěno. Čerpadlo vytváří ve zvonu podtlak, který dovnitř nasává vodu. Když je zvon plný vody, hlavní uzávěr se uzavře a čerpadlo vypne. Nyní se naráz otevřou uzávěry trubek 1 až 3 a na vás je určit, z které trubky bude voda stříkat nejdál.