Bodó Zalán 54. csoport, informatika szak RAID rendszerek A RAID (Redundant Array of Inexpensive Disks) egy merevlemez (diszk) kezelési módszer, mely több összekapcsolt diszkből egy logikai diszket teremt. A technológiát a Kaliforniai Berkeley Egyetem munkatársai, Gibson, Katz, Patterson fejlesztették ki. 987-ben publikálták, majd 989-ben megépítették a RAID-I (Raid the First) rendszert. A technológia kifejlesztésekor több célkitűzésük volt: a diszkek egyesítése => egy logikai diszk teljesítmény növelése (elérési sebesség növelése): I/O műveletek gyorsítása hibatűrés (az egyes diszkek meghibásodásával szembeni tolerancia) RAID-I 989 ben a Berkeley Egytemen építették meg. A konfiguráció egy Sun4/280 processzorral (32 bites RISC processzor) felszerelt számítógép volt, Wren IV. SCSI (Small Computer System Interface) merevlemezekkel és Interphase Jaguar Host Bus Adaptor-ral. A Wren IV. merevlemezek a következő tulajdonságokkal rendelkeztek: 5¼ hüvelyk átmérő, 344 Mbyte, 3600 RPM, adatátviteli sebesség.3 Mb/sec. A RAID rendszert Sprite Network operációs rendszer alatt építették meg, amit szintén a Berkeley fejlesztett ki. A következő okok miatt használtak SCSI merevlemezeket: kisméretűek nagyon olcsók gyorsak intelligens protokoll az Imprimis 32 darab Wren IV. diszket adományozott a Berkeley-nek erre a célra A RAID rendszereknek 5-féle alapverziója létezik, RAID-tól RAID5-ig. A RAID0 vagy lineáris RAID a technológia alapelvét valósítja meg. Ezeknek kombinációját is használják, például a RAID0 vagy RAID+0 a RAID0 és RAID technológiák ötvözése. A RAID nagy adatvédelmet, gyors elérést biztosít szétszórva az adatokat több merevlemezen, illetve hibajavító kódokat alkalmazva. Ha egy meghajtó meghibásodik, a rajta levő adatok rekonstruálhatók a tömbben levő működő meghajtók segítségével. A RAID a diszk-alrendszer teljesítményét javítja, növeli azzal, hogy az olvasás megosztott, több diszkről párhuzamosan olvasható le egy adatblokk. A kisszámítógépekre lett kifejlesztve. A különböző szintek (levels) más és más feladatokra optimizáltak; egy rendszerben alkalmazandó RAID technológia kiválasztása a rendszer feladatától, feladatkörétől függ. A nagyobb számmal jelzett szint nem feltétlenül jelent jobbat. Például egy kliens-szerver alapú adatbázis-alkalmazást futtató szerver több kicsi I/O műveletet, míg egy képadatbázist tartalmazó szerver kevesebb nagyméretű I/O műveletet igényel.
A RAB (RAID Advisory Board) a RAID felszerelések gyártóinak konzorciuma, mely felelős a RAID-szabványok fejlesztéséért és terjesztéséért. Működés: a kérés továbbítva van a fizikai meghajtóhoz, ami a szükséges adatokat tartalmazza, és a kérések várakozási sora annyi részre lesz felvágva, ahány meghajtó található a tömbben (minden meghajtó várakozási sora a hozzá intézett kéréseket tartalmazza, azaz azokat a kéréseket, melyek rajta levő adatokra vonatkoznak). Mivel ezek párhuzamosan kerülnek feldolgozásra, csökkentik az átlagos végrehajtási időt. A mezők (fields, blocks) az adatok tagoltságát határozzák meg; bittől akár több megabyte-nyi méretűek is lehetnek. (A mezőt angolul még chunk-nak is szokták nevezni, a méretét pedig chunk-size-nak.) A sávok (stripes) nem azonosak a merevlemezen lévő track-kel; az összekapcsolt diszkek folytonos mezősorozata; annyi db. mezőből áll egy sáv, ahány diszk van összekapcsolva. A RAID technológia alapelve az adatok mezőkre, illetve sávokra bontása. Ennek eredményeképpen lehetővé válik az adatok párhuzamos feldolgozása. Adatbázisok esetén úgy kell a mezők méretét megválasztani, hogy egy rekord beleférjen egy mezőbe, hogy különböző diszkeken levő rekordok olvasása párhuzamosan is történhessen. A tesztek kimutatták, hogy függetlenül a RAID rendszer feladatkörétől, 8Knál kisebb mezőméret esetén a rendszer teljesítménye romolhat. Az általában használt legkisebb mezőméretek a következők: 8K, 6K, 32K. A különböző megvalósítások, technológiák jellemzőit vázlatolva ismertetem. RAID0 vagy lineáris RAID nincs redundancia => nincs hibatűrés; egyetlen meghajtó meghibásodása működésképtelenné teszi a rendszert teljesítmény: a legjobb az összes közül, mert a redundancia lassítja a műveleteket (az írást) a tárkihasználás itt a leggazdaságosabb; ez is a redundancia hiánya miatt van megvalósításához elegendő két diszk 2
RAID az adatok tükrözése, duplázása (disk mirroring, duplexing); az információ mindig két meghajtóra kerül fel párhuzamosan (a felhasználó a két meghajtót egynek látja) nem használja a sávokra bontást az I/O művelet a két diszken (eredeti + tükör) párhuzamosan történik több felhasználót ki tud szolgálni páhuzamosan, akik ugyanazon diszkről kérnek le adatokat kétféle megvalósítás: a kérések felváltva az eredeti, illetve a tükrözött diszkhez vannak intézve az hajtja végre, amelyik diszk fej-pozicionálásához kevesebb időre van szükség. Egy olyan megvalósítás is lézezik mely két részre osztja a cilindereket és a diszk azokat a kéréseket hajtja végre, ahol az adatok a neki kiosztott cilindereken helyezkednek el. hibatűrés: bármely meghajtó meghibásodása esetén a rendszer tovább működik hátrány: kétszeres tárolókapacitás-felhasználás megvalósításához elegendő két diszk önmagában nem tartalmazza a sávokra bontást (striping); a RAID0-val kombinálva a RAID0-t kapjuk: RAID2 több megvaósítása van; a sávokra osztás mellett a hibajavító kód (ECC Error Correcting Code) bevezetése diszkhiba estén képes annak felderítésére, illetve kijavítására a hibajavító kódokat külön diszken (diszkeken) tárolja, ezeket ellenőrző diszkeknek nevezzük mivel a SCSI meghajtókban már minden egyes szektorban az adott szektorhoz tartozó ECC is eltárolásra kerül, ezért a RAID2-t már nem használják 3
sok diszket igényel (a megvalósítástól függ, vagyis attól, hogy milyen hibajavító kódot alkalmaznak, illetve a mező méretétől) RAID3 egy diszknyi ellenőrző kódot tartalmaz egy sáv ellenőrző kódja az őt alkotó mezők adatainak bináris XOR műveletének eredménye a fenti ábrán A = XOR 2 XOR 3; ugyanígy számítható ki B és C értéke is Megjegyzés: Az A XOR B kifejezés egyenértékű az (A B) ( A B) ( A B) (A B) kifejezéssel. Ezzel bizonyítható, hogy (A XOR B) XOR B = A, ami ennek a módszernek az alapelve. Régebben a titkosításnál használták. Előnye az, hogy a kódolás folyamata azonos a dekódolás folyamatával. ha egy meghajtó meghibásodik, akkor mezőinek információi kiszámíthatók az ellenőrző diszk és a többi diszk mezőinek XOR művelete révén példa: az.diszk meghibásodása esetén az. Mező értékét a következő képpen kapjuk meg: = A XOR 2 XOR 3 képes egy mezőben levő hiba detektálására, kijavítására a mező mérete általában kicsi (pl. byte); olvasáskor ellenőrzés, íráskor az ellenőrző információ megváltoztatása a kis mezőméret miatt igénybe veszi az összes diszket I/O művelet esetén min. 3 diszk szükséges megvalósításához RAID4 ugyanaz mint a RAID3, csak a mezők mérete nagy az adatok egyedi diszkekről is olvashatóak => lehetséges több művelet (olvasás) párhuzamos elvégzése több felhasználó esetén min. 3 diszk szükséges megvalósításához RAID5 a RAID4 és RAID3-nál felmerült egy probléma: csak egy diszken van tárolva az ellenőrző információ. Ha több egyidejű írás történik különböző diszkeken, minden íráskor felül kell írni az ellenőrző információt, és ezt egyidejűleg nem lehet, a fejnek mozognia kell (mármint a merevlemezének). Továbbá a legkihasználtabb, legleterheltebb az ellenőrző diszk 4
ennek elkerülésére az ellenőrző mezőket egyenletes eloszlással megosztották a diszkek között a következő módon: kisméretű sávok esetén hasonló a működése a RAID3-hoz nagyméretű sávok esetén működése a RAID4-hez hasonló legalább 3 diszk szükséges megvalósításához A RAID rendszereknek kétféle implementálása létezik: a szoftver és a hardver alapú. Természetesen a hardveres RAID jobb teljesítményt nyújt, nem terheli annyira a CPU-t, gyorsabb. Az igazi biztonságot a hardveres RAID nyújtja. Viszont az árbeli különbség nagyon nagy, a hardveres megoldások nagyon drágák. Halmozott tömbök (Stacked Arrays) RAS megfontolások A RAS (Reliability, Availability, Serviceability = Megbízhatóság, Elérhetőség, Karbantarthatóság) egy követelményrendszer, melyet minden korszerű rendszernek be kellene tartania.. Megbízhatóság Azt jelenti, hogy milyen gyorsan kell számítani az egyes egységek meghibásodására. Jellemzője az MTBF (Mean Time Between Failure), vagyis a meghibásodások közötti átlagos idő. A gyártók mindig feltüntetik termékeiken e jellemzőjüket. Például a merevlemezeknek jósolt idő 300000 és 800000 óra között van. Egy rendszer meghibásodásai közötti átlagos idejének kiszámítását az összetevők 5
átlagos idejének az alábbi képletbe való behelyettesítésével számolhatjuk ki. Ez persze csak egy elméleti érték, csak megközelítőleg tükrözi a valóságot. MTBF = N + +... + N 2 N x ahol N i, i=,2,,x az összetevők MTBF-je. Egy szerver MTBF-jének a kiszámítását a fenti képlet segítségével tehetjük meg, figyelembe véve a CPU, az alaplap és a merevlemezek MTBF-jét. A RAID lemezek esetében egy szerver élettartama nagyon kicsi lesz, ami logikus, mert minél több összetevőből áll egy konfiguráció, annál nagyobb a meghibásodás valószínűsége. 2. Elérhetőség Elérhetőségen az adatokhoz való hozzáférést értjük. Két összetevője van: az adatok épsége és a hibatűrés. A szoftveres RAID általában csak a SCSI busz védelmére hagyatkozik (ami csak bites hibák észrevételére képes és nem képes kijavítani hibát). A hardveres RAID esetében a hiba kiküszöbölése jobban megoldott, pl. az Adaptec RAID rendszerek képesek 4 bites hibák detektálására és bites hibák kijavítására. A szoftveres RAID implementációkhoz érdemes úgynevezett ECC memóriát venni, ami a védelmet hatékonyabbá teszi, viszont nagyon drága. A hardveres RAID általában megengedi a működés közbeni lemezcserét (Hot Swap). 3. Karbantarthatóság A karbantarthatóság a következő fogalmakat foglalja magába: meghibásodás megelőzése hiba fefedezése hiba kijavítása Létezik két szabvány, a SMART (Self Monitoring Analysis and Reporting Technology) és az SAF-TE (SCSI Accessed Fault-Tolerant Enclosure). Ezek az utóbbi években váltak jelentőssé, és minden komoly rendszernek tartalmaznia kellene őket. Az ezeket támogató rendszerek figyelik a merevlemezeket és jeleznek ha nem megszokott dolgokat észlelnek. Az operációs rendszerbe beépített. 6