Bodó Zalán 541. 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. 1987-ben publikálták, majd 1989-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 1989 –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 1.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, RAID1-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 RAID10 vagy RAID1+0 a RAID0 és RAID1 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.
1
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; 1 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, 16K, 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
RAID1
–
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 RAID10-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 = 1 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 1.diszk meghibásodása esetén az 1. Mező értékét a következő képpen kapjuk meg: 1 = 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. 1 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 – – – RAID5 –
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 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 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
eloszlással
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. 1. 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 =
1 1 1 1 + + ... + N1 N 2 Nx
ahol Ni, i=1,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 1 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 1 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