Aug 12 2009

Není RAID jako RAID – díl 1. Úvod

Tag: HW Tunning,Linux,RAIDJens @ 21:00

Tímto článkem bych chtěl odstartovat sérii několik článků, které budou věnovány diskovým polím RAID a konfiguraci souborového systému (filesystému) v Linuxu vzhledem k maximálnímu výkonu, dostatečné bezpečnosti a minimální ceně. V seriálu se zaměřím především na softwarový RAID vytvořený pomocí utility mdadm, jeho konfiguraci na úrovni fyzických disků a operačního systém, budou popsány metodiky testování a jednotlivé testy, kterým se bude daná konfigurace testovat. Dalším aspektem bude i výběr souborového systému a jeho nastavení – zde se bude volit mezi systémy ext3, ReiserFS a XFS.

Nebude zde popisovat základní typy RAIDu, to už udělali dávno jiní a lépe, viz třeba česká stránka na Wikipedii o RAID, nebo ještě lépe anglická Wikipedia a RAID a mnoho dalších. Zaměřím se spíše na konkrétní konfigurační postupy a testy, na základě kterých bude možné vybrat konkrétní variantu pro konkrétní aplikaci – tou aplikací bude v našem případě databázový server MySQL, jehož výkonnost je mimo jiné silně spjata s výkonem souborového systému úložiště tabulek a dočasných souborů.

Hardwarový RAID

Hardwarový RAID je speciální kus hardware, který umožní vašemu počítači konfigurovat a spravovat diskové pole bez nutnosti instalace jakýkoliv ovladačů a zcela nezávisle na operačním systému.
Hardwarový RAID lze definovat takto:

  • má vlastní speciální procesor a vlastní paměť (ta může být navíc zálohována speciální baterií pro případ výpadku napájení),
  • je naprosto nezávislý na ovladačích a operačním systému, pro operační systém se tváří jako jeden disk (případně více disků v případě konfigurace více logických RAID svazků),
  • jeho cena je typicky dosti vysoká a pohybuje se v našich končinách na spodní hranici kolem 10 tisíc Kč.

Pokud vám tedy někdo bude tvrdit, že jeho deska za 4 000 Kč má hardwarový RAID, tak se tomu můžete klidně zasmát, protože je to zcela jistě nesmysl. Současné desky totiž mají pouze jednoduchou RAID utilitu na definici RAID pole, nicméně bez ovladačů a operačního systému z toho opravdové diskové pole nikdy nedostanete. Navíc ovladače pro takovéto „fake RAIDy“ existují pouze pro Windows a to často ještě v podivné kvalitě. Integrovaný RAID přímo na desce tedy není nic jiného než marketingový tah a podvod na uživatele, kteří problému příliš nerozumí a jsou ochotní připlatit za něco, co dostanou pouze při splnění speciálních požadavků. Navíc v případě problému s ovladačem takovéhoto RAIDu se vám diskové pole rozpadne, v lepším případě přijdete o data, v horším pak ani do systému nenabootujete.

Opravdový hardwarový RAID je však sofistikovaný kus hardware, který obsahuje vlastní procesor pro výpočet paritních dat (které jinak počítá CPU), zajišťuje rozložení výkonu v rámci zvolené úrovně RAID na fyzické disky. Dále řeší sestavení, obnovu a rozšiřování diskového pole v případě přidání fyzického disku, případně v případě výpadku či havárie havarují disků atd. Dále obsahuje speciální paměť – takzvanou „read/write cache”, do které jsou ukládán data před fyzickým zápisem na disky v případě zápisu (operační systému si tak myslí, že data jsou skutečně zapsána na disku a posílá další, kdežto oni jsou ve skutečnosti pouze v rychlé paměti a zapíší se až v okamžiku, kdy má „fyzický disk volno“ – toto je velmi jednoduše řečeno, celé je to mnohem sofistikovanější a podstatně složitější) a v případě čtení jsou zde uloženy před-načtené bloky dat, u kterých se předpokládá že o ně systém požádá v rámci čtení většího bloku dat. Takováto vyrovnávací paměť řadiče je obvykle v rozmezí 64MB512MB a často bývá zálohována speciální baterií (obvykle volitelná komponenta řadiče), která je schopna data ve vyrovnávací paměti udržet i v případě výpadku napájení. To znamená, že data jsou po celou dobu v paměti udržována a v momentě kdy je počítač znovu spuštěn, řadič zajistí jejich zapsání na disk (ještě před zavedením systému).

Toto vše je schopen hardwarový RAID bez potřeby jakéhokoliv operačního systému nebo ovladače. Operační systém pak vidí celé diskové pole jako fyzický disk a není třeba žádných speciálních aplikací na jeho inicializaci a správu. Takovýto řadič se pak stává na operačním systému zcela nezávislý a je možné ho provozovat bez nutnosti podpory ovladačů od výrobce hardware.

Softwarový RAID

Do této kategorie patří tedy i řadiče pevných disků, které si na hardwarový RAID pouze hrají (a zdá se, že výrobcům těchto předražených „akcelerátorů“ tento trik poměrně vychází) a ve skutečnosti vyžadují speciální ovladače, které instaluje do operačního systému – nazývají se „fake RAID”. Bez nich vám diskové pole fungovat nebude a utilita, která se spouští typicky po ukončení BIOSu počítače tak slouží pouze k tomu, abyste do operačního systému poslali informaci o tom, jak by měl váš RAID vypadat.

Jedná se tedy konkrétně o řadiče/čipsety dodávané přímo na základní desce:

  • Intel: (jižní můstky) ICH7R, ICH8R, ICH9R a ICH10R
  • nVidia: (čipsety) nForce4, nForce 500, nForce 600
  • AMD: (jižní můstky) SB450 (čipsety Radeon Xpress 200, Radeon Xpress 1150), SB600 (čipsety AMD 480/570/580)

Dále se pak prodávají speciální karty (to už je však opravdu vrchol zlodějiny a podvodů na neznalé), především od firmy Adaptec (Adaptec jim říká „HostRAID”), které jsou jakési „hardwarové akcelerátory“ pro RAID pole – které však bez OS a speciálních ovladačů nefungují nebo pouze částečně, přičemž jejich cena je poměrně vysoká.

Jedná se konkrétně o tyto produkty:

  • Adaptec 1220SA (cca 1700 Kč),
  • Adaptec 1225SA (cca 1500 Kč),
  • Adaptec 1420SA a 1430SA (cca 3000 Kč),
  • Adaptec 2405 (cca 6-7 tis. Kč !!!)
  • Adaptec 2410SA a 2420SA (cca 7-8 tis. Kč !!!)

Další softwarové RAIDy, které se však vydávají za RAIDy hardwarové naleznete například na stránce Linux SATA RAID FAQ.

mdadm

Základem softwarového RAIDu pro Linux je utilita mdamd (dříve mdctl), která je součastí linuxového jádra od verze 2. Ta vytváří v systému „md“ (multiple devices) zařízení, které se skládají z jednotlivých blokových zařízení (především fyzických disků a jejich oddílů — /dev/hda, /dev/sda atd.). Tato utilita umí vytvářet (bez potřeby jakéhokoliv „fake RAIDu”) RAID 0, RAID 1, RAID 4, RAID 5, RAID 6 a RAID 10 (a další speciální režimy: LINEAR, MULTIPATH a FAULTY).

Další díly seriálů se budou věnovat především práci s utilitou mdamd, popíšu v nich jednotlivé použitelné režimy RAID pro dosažení našeho cíle (maximálnímu výkon, dostatečná bezpečnost a minimální cena), jejich konfiguraci a sestavení na konkrétním hardware pro který budeme diskové pole optimalizovat. To je pro dnešek vše, můžete se těšit na další pokračovaní, které na sebe nedá dlouho čekat.

5 komentáře k článku “Není RAID jako RAID – díl 1. Úvod”

  1. Stanley napsal:

    Co máte proti řadiči Adaptec 2405? Já ho za RAID rozhodně považuju, i podle Vaší definice. Je to samostatný hardware, který má vlastní procesor, cache paměť a volitelně zálohování baterií. Že umí jen RAID 0, 1 a 10 není rozhodně nedostatek. Pokud za RAID považujete jen RAID 5 a odvozené, pak to máte říct hned na začátku.

  2. Jens napsal:

    Problém je, nebo spíše byl v době psaní tohoto článku, že tuto kartu nebylo možné provozovat na Linuxu, neboť toto zařízení se netvářilo jako diskové pole. Když jsem hledal, v době psaní článku jakým způsobem se tato karta uvádí do provozu, byly jen ovladačen pro Windows, na základě kterých šlo provozovat s touto kartou RAID. Je možné, že v toto chvíli již existuje i podpora pro Linux-like OS a lze to provozovat jako „téměř jako regulerní HW RAID“.

    Opravdový HW RAID by měl být na OS zcela nezávislý a pro libovolný OS se tvářit jako jeden disk. Navíc sice píšete že lze volitelně koupit baterii ale na webu výrobce nic takového neuvádí, pro bych se divil pokud by šlo opravdu o skutečný HW RAID. Navíc přímo na stránkách technické podpory Adaptecu se tento adaptér také neuvádí, že by byl možný osadit baterkou … Z toho všeho lze usuzovat, že opravdu nejde o čístý HW RAID.

  3. kevlar napsal:

    Adaptec 2405 je urcite HW RAID. Provozuji na serveru s VMware ESXi 4.0.

  4. vaclav napsal:

    osobne bych za real HW RAID povazoval to, co ma vlastni bios, tam nadefinuji, karta sestavi pole a OS pak vidi 1 fyzicky disk. To, ze Adaptec 2405 (ktery ma zajimavou cenu) kevlar provozuje na ESXi neni dukaz, ze je to real hw RAID. Mate prosim nekdo takovou zkusenost (ze by byl raid sestaven bez OS) a zda-li karta s tou pameti vubec stiha? Diky

  5. ebon napsal:

    Adaptec 2405 povazuji za cisty HW RAID, provozuji na nekolika linuxovych systemech a ovladac v novejsich jadrech v porovnani s minulosti jasne dokazuje, ze slo a jde pouze o zpristupnujici ovladac „disku“ jinak funguje zcela samostatne a na os nezavisle. ochranu pameti pomoci extra baterie nema