A RAID (Redundant Array of Inexpensive or Independent Disks) napjaink egyik fontos technológiája. Segítségével sérülés-biztos merevlemez-rendszereket hozhatunk létre, melyek elengedhetetlenek bizonyos kritikus alkalmazásoknál, vállalatoknál vagy hálózatoknál. Hogyan is működik a RAID? Milyen szintjei vannak? Mik a működtetés költségei? E rövid összefoglalóban megpróbálok áttekintést nyújtani a RAID-ről és használatáról.

RAID történelem

A RAID koncepció megközelítőleg 20 éves múlttal rendelkezik. A Kaliforniai Egyetem számítástudományi tanszéke az 1980-as években dolgozta ki a RAID rendszert. Akkoriban még az Inexpensive (olcsó) szót használták a rövidítésben, mára inkább az Independent (független) szerepel a mozaikszóban.

Azóta az informatikai iparban történt robbanásszerű fejlődés következtében a RAID egyre népszerűbb lett. A számítógépek és merevlemezek egyre gyorsabbak, kisebbek és olcsóbbak lettek. A számítógépek az üzleti élet kritikus részeivé váltak. Egyre több adatot tárolunk számítógépeken, és az információnak a nap 24 órájában, a hét 7 napján (24/7) elérhetőnek kell lennie. Az adatok biztonsága, a rendszerek megbízhatósága kulcskérdéssé vált.

A RAID technológia lényege a nevében is benne van: több független merevlemez összekapcsolásával egy nagyobb méretű és megbízhatóságú logikai lemezt hozunk létre. A módszer kidolgozásánál a tervezők többféle célt tűztek ki:

  • Nagy tárterület létrehozása, a logikai diszk haladja meg az egyes fizikai lemezek méretét
  • Redundancia, azaz nagyfokú hibatűrés, az egyes lemezek meghibásodásával szembeni tolerancia
  • Teljesítménynövelés, azaz az összekapcsolt lemezek együttes teljesítménye haladja meg az egyes lemezekét (pl. írási és olvasási műveletek átlapolása).

    Csupán a fantáziánk szabhat határt a RAID alkalmazási területeinek: hatalmas adatbázisok kezelése (pl. banki, tőzsdei alkalmazások), ahol fontos a gyors elérés és a hibavédelem biztosítása. Gondoljunk csak bele mekkora problémát okozhatna, ha egy merevlemez meghibásodása miatt órákig nem hajthatnánk végre banki műveleteket... Napjaink Internetes világában szükségesek a hatalmas méretű szerverek: csak a RAID segítségével lehet akár több terabyte méretű ftp vagy webszervereket létrehozni. A digitális hang- és videószerkesztésnél fontos a gyors adatmozgás, a lemezműveletek átlapolása.

A RAID szintek

A RAID-ben eredetileg 5 szintet határoztak meg: RAID 1-5-ig. Az egyes szintek nem tükröznek minőségi vagy fejlődési sorrendet, egyszerűen különböző megoldásokat javasolnak. Később természetesen újabb szintek is létrejöttek: a 0-ás és 6-os RAID, illetve a különböző ajánlások összekapcsolásával és kombinálásával kapott RAID 10 (RAID 0 + RAID 1) és a RAID 50 (RAID 0 + RAID 5).

Nagyon fontos, hogy a létrejövő logikai lemez mögött álló technológia teljesen láthatatlan az operációs rendszer számára, a RAID ugyanúgy lekezeli az olvasási, írási és egyéb lemezkezelési műveleteket. A RAID alapötlete a fizikai lemezek csíkokra (stripes) bontása. Ezek a csíkok minden lemezen egyforma méretűek, mely 512 byte-tól néhány megabyte-ig terjedhet. Az adatok nem folytonosan kerülnek egy-egy lemezre, hanem az egymást követő csíkokra round-robin (körbeforgásos) módon. Négy fizikai meghajtó esetén ezt szemlélteti az 1. ábra:

A RAID 0 mindenféle redundancia vagy paritás nélkül csíkozza az adatokat a meghajtókon. Ez a szint nyújtja a legnagyobb adatátviteli sebességet és kapacitást, mind az írási, mind az olvasási műveletek párhuzamosan történnek. Hátránya, hogy nem biztosít hibatűrést, ezért egyetlen fizikai lemez meghibásodása az egész rendszert használhatatlanná teszi. Nem használnak tartalék-meghajtókat.

Az RAID 1-es szint tükrözi (mirror) az adatokat, azaz az adatok duplikálva vannak. Az írás és olvasás párhuzamosan történik, ebből következik, hogy az olvasás jóval gyorsabb (kb. 2x) az írásnál. Amennyiben az egyik meghajtó kiesik, az adatok továbbra is rendelkezésre állnak a másikon, emiatt ez a szint elég jó hibavédelmet biztosít. A védelem ára a kétszeres fizikai lemez-szükséglet. A RAID 1 nem használja a csíkozást, azonban igen elterjedt az 1-es és 0-ás szint összekapcsolásával kapott RAID 10-es rendszer. Nem használnak tartalék-meghajtókat.

A RAID 2 ajánlás már használja a csíkozást, emellett külön meghajtókat használnak paritás információk tárolására Hamming-kód segítségével. A Hamming-kód képes hibadetektálásra és annak javítására. A gyakorlatban nem használják ezt a RAID szintet.

A RAID 3-4 szintén csíkozza a meghajtókat, és egyetlen kitüntetett lemezre írja a paritásadatokat. A két szint közti különbség, hogy a 3-asnál kisméretű csíkokat használnak, míg a 4-es szint nagyméretű blokkokkal dolgozik. Ha az egyik meghajtó meghibásodik, az adatok rekonstruálhatók a paritást tartalmazó lemez segítségével. Mivel a paritás információt íráskor kell generálni, ezért ez a számításigény kihat a rendszer teljesítményére. A RAID 3 és 4 a legjobban ott állja meg a helyét, ahol sokszor nagy fájlokat, adatokat mozgatnak, és fontos a redundancia. Tartalék-meghajtók hiba esetén átvehetik a sérült lemez szerepét.

A RAID 5 már nem csak az adatokat, hanem a paritás információkat is csíkozva helyezi el a lemezeken. A paritás sorban a következő meghajtóra kerül íráskor, ezzel az egyenletes elosztással kiküszöbölték a kitüntetett paritás meghajtó szűk keresztmetszetét. Az olvasási és írási műveletek párhuzamosan végezhetőek. Szintén írás közben számolja a paritást, de kizáró-vagy (XOR) algoritmust használ, mely kisebb adatmozgatások számára kiváló. Tartalék-meghajtók hiba esetén átvehetik a sérült lemez szerepét. Ezt szemlélteti a 2. ábra:

A RAID 6 csupán az 5-ös szint kibővítése: nem csak soronként, hanem oszloponként is kiszámítja a paritást, így kétszeres meghajtó meghibásodás sem jelent problémát a rendszer egészére nézve. A megnövelt biztonságért cserébe azonban kevesebb hasznosítható terület áll a rendelkezésre.

A felsorolt technikák közül a gyakorlatban főleg a RAID 0-át, RAID 1-et, a RAID 5-öt, és az ezek együttes használatával megvalósított RAID 10-et és 50-et használják elterjedten. A RAID 3 és 4 a paritás meghajtó miatti szűk keresztmetszet miatt nem terjedt el, míg a RAID 6 túl nagy többletköltséggel jár.

A RAID megvalósítási lehetőségei

RAID-et vagy szoftver vagy hardver módon lehet implementálni. A szoftveres megoldás a számítógép processzorát és memóriáját terheli, rontja a teljesítményt, viszont olcsóbb. Bizonyos operációs rendszerek rendelkeznek RAID támogatással, egyéb esetben speciális driverekre van szükség. A 3-as és 5-ös szintű RAID általában hardveres, egy külön RAID vezérlőt igényel, melynek saját processzora van a paritásinformációk és a fájlok helyének számítására. A hardveres vezérlő nem csökkenti a gép teljesítményét, teljesen átveszi az operációs rendszertől a RAID műveletek kezelését.

Végül a piszkos anyagiak... Mint már a szintek felsorolásának láthattuk, a RAID bizony költséges. Jóval több merevlemezt kell vásárolni, az esetleges hardveres megoldás pedig ugyancsak pénzbe kerül (viszont ne felejtsük el, hogy jóval gyorsabb a szoftveres RAID-nél!) A költségek elsősorban az elérni kívánt teljes tárolókapacitástól, a redundancia típusától és a rendszer gyorsaságától függenek. Mérlegelni kell, mi éri meg jobban: beruházni, hogy RAID rendszerünk legyen, vagy elviselni a meghibásodás miatti leállás költségeit?

Vannak vállalatok, melyek megengedhetnek maguknak akár 1-2 napos kiesést is, míg másoknál egy-egy szolgáltatás akár pár perces kimaradása is hatalmas kárt tud okozni. Egy szervert üzemeltető rendszergazdának jóval könnyebb a dolga, ha egyben lát több száz GB területet, mintha több kis lemezzel dolgozna. Amiről a cikk szól, az mind szép és jó, de fontos a megfelelő mérlegelés, és döntés. Remélem sikeresen kielégítettem a kedves Olvasó kíváncsiságát!