RAID pod Linuxem Struný pehled Autor: František Ryšánek <rysanek@fccps.cz> FCC Prmyslové Systémy s.r.o. Obsah RAID pod Linuxem...1 Obsah...1 Úvodem...1 Hardware RAID adaptéry...2 Software RAID adaptéry...3 ist softwarový RAID...5 Shrnutí...6 Odkazy...6 Úvodem Pod Linuxem lze RAID zaídit nkolika rznými zpsoby. Pedevším lze použít pravý hardwarový RAID, a už v podob PCI RAID adaptéru nebo v podob externího SCSI-to-SCSI adie. Dále lze použít softwarový RAID adaptér, pokud je pod Linuxem podporován. A nakonec je k dispozici také ist softwarové ešení, které je standardní souástí novjších jader 2.4. Informace uvedené v tomto dokumentu se týkají jader ady 2.4.
Hardware RAID adaptéry Solidní PCI HW RAID je pro Linux transparentní v bžném provozu se tváí jako obyejný SCSI adi. Podmínkou použití hardwarového PCI RAID adaptéru je tedy pedevším dostupnost ovladae pro Linux. Ovlada v operaním systému zaizuje v zásad pouze prostý blokový pístup k emulovaným diskovým zaízením o RAIDové funkce se nestará. Vedlejší souástí ovladae bývá znakové zaízení pro správu polí. Znaková tída zaízení je ovšem spíše zástrkou, hlavním komunikaním prostedkem tohoto pomocného zaízení jsou typicky ioctl() volání. Jejich obsah je pedáván pímo autonomnímu procesoru RAID adie. Toto vše se odehrává v kernelu. Správce systému se ale pohybuje v user space a dává pednost jisté míe uživatelské pítulnosti. Komplementární souástkou správcovského subsystému je proto obvykle user-space utilita, která v nejjednodušším pípad vytváí píkazový ádek (též CLI Command Line Interface) a pevádí textové píkazy administrátora na ioctl() volání. Vyskytují se i složitjší formy správcovského user-space softwaru weboví klienti, dohledoví démoni poskytující SNMP funkce a rozesílání upozornní mailem apod. V konfiguraním systému jádra ( make menuconfig ) se ovladae pro PCI RAID adie nacházejí typicky ve vtvi SCSI Support -> SCSI low-level drivers, tj. mezi ovladai pro obyejné SCSI adie. Výjimkou je ovlada pro adie kompatibilní s Mylex DAC960 (tj. z novjších nap. AcceleRaid 160 a 170), který se zatoulal do menu Block devices. Tradiní SCSI-to-SCSI RAID adie bývají ídící jednotkou externího pole a k poítai/serveru se pipojují jako disk tj. prostednictvím SCSI kabelu a obyejného SCSI adaptéru. Vi poítai se taková externí disková jednotka tváí jako jediný disk, pípadn jako nkolik disk (jedno SCSI ID, nkolik ísel LUN). Potažmo operaní systém nepotebuje pro externí pole speciální ovlada. Správa polí na externí jednotce se odehrává bu run pes vlastní LCD panel externí jednotky, nebo po sériové lince v terminálovém režimu v tom pípad staí propojit konzolový port externího pole s volným RS232 portem hostitelského poítae a následn je možno použít libovolný terminálový emulátor (komunikaní program) jako cu nebo minicom. V tomto pípad tedy sám RAIDový adi vytváí píkazovou ádku nebo systém menu (viz. nap. adie firmy InforTrend).
Software RAID adaptéry V linuxu existuje podpora pro nejznámjší hardwarov závislé softwarové RAIDy modul ataraid. Tento modul se skládá z univerzální ásti kódu a dále z volitelných hardwarov závislých spodních polovin. Konkrétn v jádrech 2.4 kolem 2.4.22 jsou podporovány adie Promise PDC202xx, HighPoint HPT a Silicon Image SiI. Pokud se hardwaru týe, jedná se v zásad o prachobyejné IDE/UATA adie, ke kterým výrobce dodává proprietární RAIDové ovladae do Windows. Obvykle je k dispozici také proprietární closed-source port tchto ovlada do Linuxu, obvykle nepíliš kvalitní viz nap. samostatný dokument o Promise FastTrak TX2000. Hardwarov závislá vrstva modulu ATARAID se stará pedevším o poátení detekci polí na diskových jednotkách. Pozor, všechny tyto adie mají samostatné hardwarov závislé IDE ovladae a krom toho jsou tyto adie obvykle i bez zakompilované hardwarové podpory detekovány jako obecné IDE adie. Modul ATARAID se nestará o low-level pístup k hardwaru a bží v zásad nad standardními IDE zaízeními. Mžeme tedy shrnout, že v Linuxu se provozu hardwarov závislého softwarového RAIDu úastní tyto vrstvy: Vrstva Funkce vrstvy Spolený kód modulu ataraid Prezentace polí do systému v podob blokových zaízení HW specifický kód modulu ataraid HW specifický IDE ovlada Detekce polí na dostupných IDE discích, nkteré RAIDové operace Standardní IDE funkce, vetn HW specifických low-level funkcí Pokud vynecháme ob vrstvy modulu ATARAID, i nadále mžeme tyto adie používat jako prostý IDE adi s hardwarov specifickým ovladaem. A naopak, teoreticky nám nic nebrání provozovat modul ATARAID vetn jeho hardwarov specifických volitelných souástek nad libovolným jiným IDE adiem ovšem za pedpokladu, že na IDE discích njakým zpsobem vytvoíme píslušný proprietární RAID superblok. Tato možnost je ovšem zajímavá spíše teoreticky a pouze na první pohled modul ATARAID totiž výrazn zaostává za hardwarov nezávislým RAIDem, který je v Linuxu také k dispozici. Více o tom níže. V nástroji make menuconfig naleznete ATARAID a všechny relevantní low-level IDE ovladae ve vtvi ATA/IDE/MFM/RLL. Nízkoúrovové IDE ovladae jsou v záložce PCI IDE chipset support, modul ATARAID se skrývá úpln na konci v záložce Support for IDE RAID Adapters. Velké zklamání pedstavuje ovšem praktická (ne)použitelnost modulu ATARAID. Tento modul nezvládá obnovu pole na pozadí, ba dokonce se zdá, že funkce pro obnovu pole zcela postrádá.
Neexistuje user-space utilita pro správu i alespo sledování stavu pole. ATARAID bží nad obecnými IDE zaízeními, nemá pímé háky na hardware výpadek disku zpsobí vodopád I/O chyb z low-level IDE vrstvy, se kterými se ATARAID nedokáže vyrovnat, takže výpadek disku v redundantním poli znamená nefunknost celého pole. Pokud je degradováno pole, ze kterého systém bootuje, neodvratným dsledkem je pád systému. Z degradovaného pole ovšem dokonce nejde ani nabootovat. Teprve po obnov pole v piloženém BIOSu nebo v njakém jiném operaním systému je možné pole dále používat pod Linuxem. Modul ATARAID se tedy hodí spíše pro nouzový pístup z Linuxu na pole a oddíly vytvoené v systémech Windows. V tomto smyslu najde uplatnní v dual-boot systémech a na vyprošovacích disketách i CD-ROM. Obecné informace o softwarových IDE RAIDech najdete v píslušných kapitolách dokumentu obecn o RAIDu. Adaptec HostRAID není v Linuxu podporován.
ist softwarový RAID Toto ešení má v porovnání s jinými typy RAIDu nkteré specifické vlastnosti. Pedevším bží nad prakticky jakýmikoli blokovými zaízeními, vetn nap. network block devices. Typickým podkladovým zaízením je partition na fyzickém disku. Mén imponující je, že RAIDem prezentované blokové zaízení nelze rozdlit na oddíly (existuje patch MdPart, který toto umožuje, ale obvykle není k dispozici pro nejnovjší jádra, a v modulu md se toho pravideln pomrn dost mní). Standardní zpsob použití osvtlí jednoduchý píklad. Linux se typicky instaluje na jediný fyzický disk, který se rozdlí na ti oddíly: boot, swap a root. eknme, že chceme toto schéma obohatit o RAID typu mirror. Vezmeme tedy dva disky, které fdiskem rozdlíme identickým zpsobem opt na zmínné ti oddíly. Následn vytvoíme ti pole typu mirror - vždy ze dvou oddíl, které si vzájemn odpovídají na dvou použitých discích. Tato ti pole pak montujeme namísto pvodních tí diskových oddíl samozejm poté, co na nich vytvoíme souborové systémy apod. Z linuxového ist softwarového RAIDu lze bootovat v tom pípad je vhodné povolit, aby si ovlada ukládal na fyzické disky informaci o vytvoených polích. Linuxový RAID provádí obnovu pole automaticky na pozadí a zvládá také prbžnou kontrolu konzistence. Pro RAIDové operace se využívají volné systémové zdroje, tj. volný as procesoru a volná kapacita diskových sbrnic. Linuxový RAID bohužel za souasného stavu vcí neustojí degradaci pole za bhu. Jedná se patrn opt o problém s použitím low-level IDE (a SCSI) zaízení, která na výpadek disku reagují totálním kolapsem. RAIDová vrstva nepoužívá pímý pístup k hardwaru, který by umožnil vypoádat se s výpadkem disku po svém, a neumí využít ani hardwarovou podporu pro SCSI/ATA/SATA hot-swap. Linuxové jádro 2.4 jednoduše nepodporuje runtime re-detekci diskových zaízení a oddíl a také nepodporuje hot-swap backplane procesory (SAF-TE/SES na SCSI SCA, ani SAF-TE pes I2C u Serial ATA). Degradace pole za bhu tedy znamená zatuhnutí pole v pípad, že se z pole bootuje, dojde k pádu celého systému. Po resetu se ovšem pole rozbhne i v degradovaném režimu a lze z nj nabootovat. Pokud mezitím pipojíme náhradní disk, lze za bhu spustit obnovu degradovaných polí (píkazem raidhotadd). Dojde tedy pouze k minimálnímu výpadku systému (pokud máme možnost jej resetovat). Pokud perušíme obnovu pole restartem systému, po dalším bootu se obnova pole rozbhne znova od zaátku. Utility pro správu a dohled jsou dostatené. V nástroji make menuconfig najdete podporu pro ist softwarový RAID ve vtvi Multi-device support (RAID and LVM). Podrobnjší informace a návody ke konfiguraci získáte ve výborném Linux Software RAID HOWTO.
Shrnutí Všechny výše popsané typy RAIDu za normálních podmínek v Linuxu bez problém fungují. Velký rozdíl je ovšem v chování jednotlivých ešení v kritických situacích tj. pi degradaci pole. Je teba si uvdomit, že zejména kvli kritickým situacím se pole staví proto ešení, která v kritických situacích selhávají, nemají valný smysl. Holé uchování dat pi havárii disku, doprovázené ovšem nefunkností operaního systému, je pomrn slabý výsledek. Vedle celkové stability systému v kritických situacích je u typických použití UNIXu dležitá pedevším možnost ošetit pole pímo z bžícího operaního systému. HW RAID ovladae, ATARAID a ist softwarový RAID jsou ti rzné oblasti jádra, které jsou navzájem naprosto nezávislé. Pokud konfigurujete HW RAID, není teba zapínat podporu pro ATARAID ani podporu pro ist softwarový RAID totéž platí pro zbylé dv možnosti. Softwarových adi firmy Promise se pln týká kapitola o software RAID adaptérech. Firma Promise ovšem vyrábí také vícekanálové adie, které sice postrádají autonomní procesor, ale obsahují ip pro akceleraci RAID operací (RAID5 XOR, mirroring) a onboard cache tyto adie nejsou obsouženy ATARAIDem a spadají tedy spíše do kapitoly o Hardware RAIDu. Firma Promise nedávno uvolnila zdrojový kód ovlada pro svou adu Serial-ATA RAID adi, které byly do té doby k dispozici výhradn v closed-source podob. Tžko íci, kterých adi se toto týká. Closed-source ovladae firmy Promise donedávna za mnoho nestály (a management software do Linuxu neexistuje) je ale možné, že zveejnním zdrojového kódu ovlada se situace zmní k lepšímu. Zdá se, že na vyištném portu pro jádro 2.6 se pracuje. Software firmy Promise pro Windows patí rozhodn k tomu lepšímu, co lze na trhu potkat. Odkazy Linux Software RAID HOWTO http://www.ibiblio.org/pub/linux/docs/howto/other-formats/html_single/software-raid-how TO.html Autorova oprava chyby v ovladai pdcraid.c (souást modulu ataraid). http://sweb.cz/frantisek.rysanek/pdcraid/pdcraid.html