Když jeden disk nestačí

28. 8. 2001
Doba čtení: 4 minuty

Sdílet

Dnešním článkem začíná krátká série, která se zabývá problematikou softwarových RAID polí v Linuxu. V prvním dílu si povíme něco o základních RAID konfiguracích a ukážeme si, jak takové jednoduché diskové pole vytvořit.

RAID je zkratkou pro „Redundant Aray Of Inexpensive Disks“, obtížně se to překládá, ale nejspíše to znamená něco jako „Záložní pole tvořené z levných disků“. Technologie RAID funguje tak, že se snaží seskupovat několik pevných disků do logických jednotek (polí), a to z důvodu zvýšení spolehlivosti a rychlosti přístupu k datům. Dříve se RAID používal výhradně na serverech, kde jeho funkci zajišťoval speciální hw. řadiče. Z hlediska operačního systému je takové diskové pole trasparentní – vypadá jeko jeden souvislý velký disk. Tento článek však popisuje tzv. softwarový RAID, který lze v Linuxu provozovat i bez zvláštního RAID řadiče. V tomto případě se totiž o veškerou dodatečnou režii stará jádro, které je odpovědné za sestavení a správnou funkci diskového pole. Zkušenost ukazuje, že pro jednodušší RAID konfigurace, jako je například zrcadlení, můžeme celkem v klidu vystačit se softwarovou implementací, zatímco pro nasazení složitějších vícediskových polí (RAID 3, RAID 5) už je lépe použít dedikované hardwarové řadiče.

Samozřejmě není řadič jako řadič, a tak se v poslední době setkáváme se základními deskami s podporou RAIDu na IDE rozhraních. Většinou se ale nejedná o plnohodnotný hardwarový RAID a pro funkci takového zařízení jsou i ve Windows zapotřebí speciální ovladače. Jen málokterou desku lze takto provozovat i v Linuxu. Pokud má někdo ze čtenářů zkušenost (ať už pozitivní, či negativní) s takovou deskou, může se o ní zmínit v diskusním fóru.

Jak již jsem se zmínil, existuje více různých způsobů, jak zkonfigurovat diskové pole. Softwarově se realizují nejčastěji tři různé konfigurace, a to RAID 1, RAID 5 a RAID 0. Někdy se lze setkat i s jejich kombinacemi – (RAID 0+1, 2× RAID 5,…), které ovšem nejsou tak časté, neboť je pro ně zapotřebí až nepraktické množství disků.

Nejjednodušší, ale zároveň i nejčastější konfigurací je RAID 1, neboli zrcadlení. Pracuje v něm nejčastěji dvojice pevných disků, na kterých se udržuje naprosto stejný obsah, takže když dojde k poškození jednoho z disků, počítač může nadále pracovat s druhým diskem a nedojde ke ztrátě dat. Vedlejším, avšak vítaným efektem je zrychlení práce, neboť data lze číst s obou disků současně, čímž se efektivně sčítají přenosové rychlosti obou disků. Zápisové operace se však neurychlí, neboť je nutné je provádět synchronně na oba disky současně. Jistou nevýhodou zrcadlení je plýtvání místem, neboť lze využít jen polovinu nominální kapacity disků. Naopak na straně výhod stojí jistě fakt, že se jedná o velice jednoduchou technologii, která si za předpokladu použití moderních disků nevyžádá od procesoru počítače téměř žádnou zvýšenou režii.

Druhou používanou technologií je RAID 5, které však pro svoji funkčnost potřebuje minimálně tři pevné disky. Kromě vlastních dat se na všechny disky ukládá navíc ještě paritní informace. Pokud dojde k selhání libovolného z disků, lze z ostatních disků rekonstruovat jeho obsah. RAID 5 je více úspornější než RAID 1, takže například při konfiguraci se třemi disky ztrácíte pouze třetinu nominální kapacity, zatímco u zrcadlení je to polovina. Čtení dat z pole RAID 5 je rychlé, neboť čtecí operace lze rozkládat mezi všechny disky, naopak při zápisu rychlost klesá, protože je nutné vypočítávat a ukládat navíc paritu.

Někteří uživatelé používají RAID 0. Pracuje v něm dvojice (nebo i více) disků, přičemž data jsou na nich rovnoměrně rozložena. Nepřináší žádnou vyšší míru bezpečnosti, naopak při havárii jednoho z disků jsou ztracena i data na ostatních jednotkách. Důvodem, proč se RAID 0 používá, je rychlost. Všechny čtecí i zápisové operace lze rozložit mezi více disků, takže například ze dvou rychlých disků lze udělat jeden superrychlý.

Podpora softwarového RAIDu je většinou integrována přímo v jádře Linuxu, takže jediné, co potřebujete, je nainstalovat soubor utilit raidtools, který je většinou součástí distribuce. Konfigurace diskového pole se provádí pomocí souboru /etc/raidtab, jehož formát může vypadat třeba nějak takto:

raiddev /dev/md0
raid-level 1
nr-raid-disks 2
nr-spare-disks 0

device /dev/hda1
raid-disk 0

device /dev/hdb1
raid-disk 1

Uvedený zápis znamená, že do diskového pole, označovaného jako /dev/md0, patří dvě partition, a to /dev/hda1 a /dev/hdb1, které dohromady tvoří konfiguraci RAID 1. Podrobný popis všech parametrů lze najít v manuálové stránce raidtab(5). Součástí balíku raidtools jsou vzorové konfigurační soubory pro všechny používané RAID konfigurace, můžete je převzít a upravit podle svých potřeb.

Poté, co si upravíte konfigurační soubor, si můžete vytvořit vlastní diskové pole pomocí příkazu

mkraid /dev/md0

Tím dojde ke zničení všech případných dat, která se na uvedených pevných discích nacházejí. Na diskovém poli pak vytvoříte souborový systém, například pomocí příkazu

mke2fs /dev/md0

Nadále již můžete s /dev/md0 pracovat jako s každým dalším blokovým zařízením, například je můžete namountovat, kopírovat na ně soubory, atd.

mount /dev/md0 /mnt/test -t ext2

Diskové pole můžeme ručně vytvořit i zrušit pomocí příkazů raidstart a raidstop. Většina distribucí volá tyto příkazy automaticky při startu, existuje-li soubor /etc/raidtab. Prvotní vytvoření diskového pole můžete nechat také přímo na jádru, které automaticky dokáže sestavovat RAID. Používá k tomu tzv. RAID superbloky, které jsou umístěny na konci každé partition a nesou v sobě informaci obdobnou souboru /etc/raidtab. V takovém případě je nutné pomocí příkazu fdisk změnit typ jednotlivých zúčastněných partitions na fd – „Linux raid auto“.

ict ve školství 24

V příštím dílu se podíváme na složitější konfigurace a na praktických příkladech porovnáme výkonnost jednotlivých RAID řešení.

Zajímavé odkazy