RAID v Linuxu

Z Milan Kerslager
Verze z 9. 5. 2008, 15:52, kterou vytvořil Milan.Kerslager (diskuse | příspěvky) (Administrace RAIDu v Linuxu: rozšíření)
Přejít na: navigace, hledání

RAID (Redundant Array of Inexpensive Disks) je metoda, jak zvýšit výkon diskového systému nebo bezpečnost na disku uložených dat bez extrémních pořizovacích nákladů. Patří všude tam, kde je výpadek disku nebo dokonce ztráta dat nepřípustná. Typické nasazení jsou servery v počítačových sítích a místa, kde i malý výpadek přináší velké ekonomické ztráty.

Úrovně RAID

Úrovně RAID se liší různou úrovní zabezpečení dat a výkonností. V praxi se nepoužívají všechny definované úrovně, ale jen ty nejvýhodnější. Podrobné informace najdete například na adrese http://cs.wikipedia.org/wiki/RAID.

RAID 0 (disk striping)

RAID 0 není vlastně žádný RAID. Zajišťuje pouze zvýšení výkonu paralelním provozováním více disků. Pole může být lineární (disky jsou jakoby spojeny za sebou) nebo prokládaná (kapacita je rozdělena na bloky, které se střídají – např. všechny liché na prvním a všechny sudé na druhém disku). Veškerá kapacita je určena pro ukládání dat (žádný prostor pro bezpečnostní informace). Pole má velikost 100% celkové kapacity. Při výpadku disku jsou data ztracena.

RAID 1 (disk mirroring)

RAID 1 je nejstarší používaná metoda zabezpečení dat. V počítači jsou dva stejně velké disky a oba provádějí všechny požadované operace. Rychlost zápisu proto klesá na 1/2 (musí se zapsat na oba disky). Naopak rychlost čtení může být v ideálním případě dvojnásobná (z každého disku je potřeba přečíst jen 1/2 dat). Pole má velikost 50% celkové kapacity. Při výpadku disku z pole 2 disků je dále používán pouze zbývající disk a data nejsou dotčena. Vypadlý disk je však potřeba co nejrychleji nahradit, protože data už nejsou chráněna.

RAID 5

Bezpečnostní informace o paritě se ukládá rozprostřeně na všechny disky v poli, takže nedochází k přetěžování některého z disků. Zabezpečovací informace zabírají kapacitu jednoho z použitých disků. Minimální počet disků je 3. Pomocí zabezpečovací informace lze dopočítat ztracená data z 1 vypadlého disku. Výsledná kapacita je rovná součtu kapacity všech disků bez jednoho, takže s počtem disků se režie zmenšuje. Vypadlý disk je však potřeba co nejrychleji nahradit, protože data už nejsou chráněna.

RAID 6

RAID 6 je obdoba RAID 5, zabezpečovací informace jsou rozprostřeny po všech discích a zabírají kapacitu 2 disků. Pole je tak odolné vůči výpadku 2 disků. Při výpadku jednoho disku jsou tedy data po dobu rekonstrukce pole stále chráněna.

RAID 10

Označuje se jako RAID 1+0. Zrcadlené disky jsou tedy spojeny do 1 výsledného pole. Pole vyniká vysokou rychlostí čtení.

Administrace RAIDu v Linuxu

RAID pole lze v Linuxu vytvářet pomocí MD subsystému. Pro administraci RAID polí slouží v Linux příkaz mdadm.

Stav

Jádro Linuxu udržuje informace o aktuálním stavu MD subsystému v souboru /proc/mdstat. Pokud jsou v poli všechny disky, je pole funkční. V případě výpadku disku mluvíme o degradovaném RAID poli. Při vložení disku zpět do pole dojde k rekonstrukci chybějících dat (neplatí u RAID 0).

V níže uvedeném příkladu je v systému pole RAID 0, které se skládá ze dvou disků (sda1 a hda1). POle je plně funkční (oba disku jsou ve stavu Up, tj. funkční).

$ cat /proc/mdstat
Personalities : [raid1]
md0 : active raid1 sda1[0] hda1[1]
      19542976 blocks [2/2] [UU]

unused devices: <none>

Vytvoření pole

Pole se vytváří vždy v degradovaném stavu (neplatí pro RAID 0), takže okamžitě po vytvoření je zahájena rekonstrukce pole. Toho lze využít k tomu, že lze vytvořit i pole v degradovaném stavu.

# vytvoření RAID 0
mdadm -C /dev/md0 -l0 -n2 /dev/sda3 /dev/sdb3
# vytvoření RAID 1
mdadm -C /dev/md0 -l1 -n2 /dev/sda3 /dev/sdb3
# vytvoření RAID 5
mdadm -C /dev/md0 -l5 -n3 /dev/sda3 /dev/sdb3 /dev/sdc3

Zrušení pole

mdadm -S /dev/md0