přejít na obsah přejít na navigaci

Linux E X P R E S, Když se řekne RAID...

Když se řekne RAID...

Lubomír Čevela vysvětluje, že tento RAID hmyz nehubí...


reklama

Možná znáte ten pocit bezmoci, když vám počítač oznámí nedostupnost pevného disku. A nepomůže ani studený start, ani bádání v nastaveních BIOSu, ani přesunutí disku do jiného počítače. Zkrátka váš pevný disk se s vámi rozloučil, čest jeho památce. Co ale vaše data na něm umístěná? V lepším případě je máte zazálohována, v horším jsou nenávratně pryč. A to ani raději nebudu rozebírat situaci, kdy nejde o disk vašeho počítače, ale o disk vámi spravovaného serveru, na němž jsou umístěna data celé společnosti. Máte vše stoprocentně zazálohováno? I když ano, pak jsou data nedostupná nejméně po dobu jejich obnovení ze zálohy. Podobné situaci se dá snadno předejít. Tam, kde z důvodu výkonu nebo bezpečnosti k uložení dat nestačí jeden disk, přichází ke slovu diskové pole.

Zkratka RAID není pouze názvem oblíbeného prostředku k hubení hmyzu, ale ve světě výpočetní techniky znamená "Redundant Array of Independent Disks" - záložní pole z nezávislých disků, což se do češtiny obvykle volně překládá slovním spojením diskové pole (starší zdroje též uvádí "Redundant Array of Inexpensive Disks"). V principu jde o spojení několika disků do jednoho svazku, který se navenek tváří jako jeden pevný disk. Technické řešení diskových polí je dvojí, hardwarové a softwarové. V prvním případě se o spojení disků stará hardwarový řadič, v druhém totéž zajistí jádro vašeho oblíbeného operačního systému.

Obě řešení mají své výhody a nevýhody. Řešení postavená na hardwarovém řadiči jsou samozřejmě nákladnější. V nejlepším a nejdražším případě jde o samostatné skříně, které obsahují nejen řadič s velkou vyrovnávací pamětí, ale též v sobě nesou šuplíky s pevnými disky, obvykle v hot-swapovém provedení. Při poruše jednoho disku obsluha za provozu disk vyjme a vloží nový. Bez jakékoli ztráty dat či provozního výpadku a bez citelné ztráty výkonu pole. Pro menší servery a náročnější stanice je určen řadič RAID v podobě přídavné karty. V nejjednodušším provedení určeném většinou pro disky s rozhraním SATA jej obsahují i některé lépe vybavené základní desky. Jednodušší řadiče mají především tu nevýhodu, že podstatná část jejich funkcionality je tvořena softwarovým ovladačem, a tím pádem nároky na systémové zdroje nejsou zas tak rozdílné oproti čistě softwarovému řešení.

Hot-swap - výměna komponent za horka, tedy za chodu. Pokud je diskové pole označováno jako hot-swap, při havárii nebo nutnosti rozšířit diskovou kapacitu může operátor disk vyměnit (případně přidat) bez zastavení systému.

Není řadič jako řadič a už jsem se v praxi setkal se serverem, jehož poměrně levná karta s řadičem přestala v nejnevhodnějším okamžiku fungovat a ačkoli disky byly v pořádku, data z nich bez řadiče nešla přečíst. To se samozřejmě u náročnějších zařízení stává naprosto výjimečně. Levnějším řadičům RAID tedy může úspěšně konkurovat softwarové řešení. K němu potřebujeme pouze několik pevných disků. Nevýhodou softwarového řešení jsou oproti hardwarovému vždy o něco vyšší nároky na systémové prostředky. Existuje několik úrovní (levels) diskových polí RAID.

RAID 0 - Stripping

Stripping

Data jsou rozdělena do bloků (strippes) a ty jsou střídavě zapisovány na všechny disky, které jsou k dispozici. Žádná redundance dat se navzdory názvu pole nekoná. Výhodou je rychlost a 100% využití kapacity disků, nevýhodou je fakt, že při výpadku jednoho disku dojde k poškození všech dat. K použití se toto pole hodí spíše v softwarové podobě pro vysoce zatížené stanice, např. pro zpracování videosignálu v reálném čase nebo též pro hardwarová řešení, kde se RAID 0 kombinuje s jiným typem pole (např. RAID 1 + RAID 0 = RAID 10).

RAID 1 - Zrcadlení

Zrcadlení

V principu jednoduchý typ pole složený nejméně ze dvou disků. Řadič nebo linuxové jádro se stará o to, aby v každém okamžiku byl obsah na obou discích shodný. I po rozpojení pole jsou data plně čitelná a to znamená, že v praxi se po výpadku jednoho disku v plném provozu může server nechat běžet po nezbytně dlouhou dobu pouze s jedním diskem, bez nutnosti časově a výkonově náročných operací s daty (nehezké, ale praktické). U větších polí je možné vytvořit několik dvojic disků, které se vzájemně zrcadlí. Asi jedinou nevýhodou RAID 1 je , že kapacita pole je rovna polovině součtu kapacity všech disků. Pro svou jednoduchost a relativní bezproblémovost jde o velice oblíbený typ diskového pole u malých serverů, a to jak v softwarové, tak v hardwarové podobě a je též asi nejvhodnější pro použití na domácí stanici.

RAID 5

RAID 5

Záměrně vynechávám historicky překonané implementace RAID 2, 3 a 4. Dnes je v praxi úspěšně nahrazuje RAID 5. K jeho realizaci jsou nezbytné nejméně tři pevné disky. Data jsou opět rozdělena do bloků a jsou zapisována střídavě na všechny disky. K nim je dopočítávána parita, která je na disky rovnoměrně rozložena. Pole je odolné proti výpadku (v případě pole ze tří disků max. jednoho) disku a též výkonově je na tom především při čtení větších souborů lépe než jeden pevný disk. Kapacita pole složeného ze tří disků bývá odhadována na dvě třetiny součtu kapacity zapojených disků. Ačkoli se v minulosti tradovala nízká spolehlivost softwarového provedení, jde o v současné době možná nejoblíbenější RAID pro servery, a to jak v softwarové, tak v hardwarové podobě.

Softwarový RAID pomocí linuxového jádra

Parita se obvykle dopočítává bitovou funkcí XOR (exclusive or). Jedná se o velmi jednoduchou a rychlou operaci, díky které je možno dopočítat vždy jednu chybějící hodnotu ze tří. V případě, že by zhavarovaly disky dva, by však i tato bitová parita byla krátká.

Pravděpodobně nejjednodušším způsobem použití softwarového diskového pole bude u menšího serveru zrcadlení disků s daty, přičemž operační systém zůstane bez dobrodiní diskového pole. Ty max. 3 GB instalace operačního systému je možno velice snadno obnovit ze zálohy uložené na DVD, ale několik desítek či stovek GB uživatelských dat se z pásky natahují dosti pomalu.

Ukažme si proto krok za krokem příklad sestavení RAID 1 ze dvou stejně velkých, čerstvě vytvořených diskových oddílů hda7 a hdc1. Už podle označení oddílů je zřejmé, že se v našem příkladu jedná o disky s rozhraním IDE. Pro zajištění rozumného výkonu by každý z těchto disků měl být připojen na jiném IDE kanálu. Ke zprovoznění RAID potřebujete mít nainstalován balík raidtools2 a podporu RAID v jádře (u běžně používaných distribucí není nutné do jádra zasahovat).

 Soubor /etc/raidtab
 raiddev /dev/md0
 raid-level 1            # úroveň raid, v našem případě RAID 1 - zrcadlení
 nr-raid-disks 2         # počet disků pole
 nr-spare-disks  0       # počet záložních disků
 persistent-superblock 1 # povinný parametr pro autodetekci pole jádrem
 device /dev/hda7        # první diskový oddíl tvořící pole
 raid-disk 0             # číslo oddílu v poli
 device /dev/hdc1        # druhý diskový oddíl tvořící pole
 raid-disk 1             # číslo oddílu v poli

Nejprve si vytvoříme konfigurační soubor /etc/raidtab (viz rámeček). Pro vlastní vytvoření pole stačí napsat příkaz mkraid /dev/md0. Pokud chcete vědět, zda jste byli úspěšní, stačí se podívat do souboru /proc/mdstat. Diskové pole poté zformátujte např. pomocí mke2fs -J /dev/md0 a pak jej můžete připojit jako další diskový oddíl například pomocí

 mount /dev/md0 /mnt/mojepole -t ext3

Příkaz ke spuštění všech diskových polí raidstart -a je obsažen ve startovacích skriptech většiny současných distribucí, a tedy ho není nutné nikam zadávat. Úplně na závěr upravte příslušným způsobem soubor /etc/fstab tak, aby byl vzniklý oddíl připojen při startu systému.

Provoz diskového pole

Teď si představte, že pevný disk, na němž je uložen oddíl /hdc1, má poruchu. Po výměně poškozeného disku postačí vytvořit příslušný prázdný oddíl např. pomocí utility fdisk a přidat ho do pole pomocí příkazu raidhotadd /dev/md0 /dev/hdc1. Pole si po tomto příkazu samo sesynchronizuje disky. "Zdravotní" stav pole je možné kontrolovat několika způsoby. Nejjednodušší je občas nakouknout do souboru /proc/mdstat. V novějších verzích balíku raidtools je tomu též k dispozici příkaz lsraid. Další možností je použití mdadm --detail /dev/md0 a poslední možností je použití mdadm v roli démona, hlídajícího vaše diskové pole:

 mdadm --monitor --mail=root@localhost --delay=1800 /dev/md0

V případě problému vás démon bude informovat do uvedené poštovní schránky. Pole je kdykoli možné rozdělit pomocí příkazu mdadm -S /dev/md0 a zase spojit pomocí mdadm -R /dev/md0.

Boot z diskového pole

Některé linuxové distribuce (Mandrakelinux, RedHat) umožňují vytvořit diskové pole přímo při instalaci a provést na něj instalaci systému včetně kořenového diskového oddílu (mimo oddíl /boot). Ani uživatelé ostatních distribucí nejsou bez možnosti provozovat kompletně celý systém na diskovém poli. Jen se musí trochu více namáhat. K dispozici mají nejméně dva postupy. Prvním je zkopírování operačního systému na diskové pole, druhým je vytvoření pole v degradovaném režimu (druhý disk připojíme dodatečně).

Uvádím první, který považuji za nejjednodušší. Pro něj ale musíme mít k dispozici navíc jeden disk, který není a nebude připojen do diskového pole a na němž již existuje instalace linuxové distribuce včetně raidtools a jádra s napevno zakompilovanou podporou RAID. Kompromisem může být např. použití binárního jádra z distribuce Mandrakelinux 10.1, které má podporu RAID pouze ve formě jaderného modulu. Kvůli němu ale musíte ponechat oddíl /boot mimo diskové pole, jinak se systém nezavede. Dále mějme k dispozici dva fyzické pevné disky hda a hdc a na nich oddíly pro vytvoření diskového pole. Dle mého mínění není žádoucí umisťovat oddíl swap na diskové pole. Proto pro něj musíme mít k dispozici zvláštní oddíl na jednom z těchto fyzických disků.

Nejprve již popsaným způsobem vytvořte diskové pole a připojte jej do adresáře /mnt/newroot. Poté zkopírujeme obsah kořenového diskového oddílu do diskového pole:

 cp -ax / /mnt/newroot

Poté upravte /mnt/newroot/etc/fstab tak, aby kořenový souborový systém v tomto souboru směřoval na diskové pole. Systém rebootujte a startujte ho pomocí lilo v textovém režimu s volbou linux root=/dev/md0. Pokud systém naběhne z diskového pole, na závěr upravte konfigurační soubor /etc/lilo.conf tak, aby obsahoval řádky:

 boot=/dev/md0
 raid-extra-boot="/dev/hda,/dev/hdc"
 root=/dev/md0

Nakonec aktualizujte nastavení zavaděče lilo pomocí příkazu /sbin/lilo. A na závěr přidávám jednu radu. RAID může pomoci snížit riziko ztráty dat a zkrátit dobu jejich nedostupnosti, ale není sám o sobě všelékem. Před viry, chybami operačního systému, souborového systému a nechtěným smazáním dat uživateli (v horším případě administrátorem) vás neochrání. A tak připomínám základní poučku všech adminů "Zálohovat, zálohovat, zálohovat".

Nahoru

Odkazy

(Jako ve škole)
Průměr: 1,00 | Hodnotilo: 4
 

Top články z OpenOffice.cz

Přidat téma diskuse

Nejsou podporovány žádné značky, komentáře jsou jen čistě textové. Více o diskuzích a pravidlech najdete v nápovědě.
Diskuzi můžete sledovat pomocí RSS kanálu rss



 
 

Lubomír Čevela

Lubomír Čevela

Lubomír Čevela (*1968) pracuje jako vývojář pro jednu velkou nadnárodní společnost. Pokud zrovna něco nesepisuje, zabývá se fotografováním nebo hraním na basu.


  • Distribuce: Ubuntu, Mandriva
  • Hodnocení autora: ***

| proč linux | blog