RAID
A Wikipédiából, a szabad lexikonból.
A RAID (Redundant Array of Inexpensive Disk vagy Redundant Array of Independent Disks) napjaink egyik fontos technológiája. Lényegében több merevlemezes tömböknél (ún. disk array) alkalmazzák, aminek köszönhetően a lemezekre írt adatokhoz redundáns információkat is társítva lehetővé teszi azoknak helyreállítását bizonyos mennyiségű adat megsérülése esetén. 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. 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.
Tartalomjegyzék |
[szerkesztés] Története
A RAID koncepció megközelítőleg 20 éves múlttal rendelkezik. A Kaliforniai Egyetem számítástudományi tanszéke(University of California, Berkeley) 1987-ben dolgozta ki a RAID rendszert, melynek első célkitűzései csupán a két vagy több merevlemez összekapcsolása oly módon, hogy az a számítógép számára az egy darab logikai meghajtónak látszódjon(RAID 0), majd ezt követően fejlesztések során 1-től 5-ig határoztak meg különböző szinteket (RAID levels), amelyek mind más és más elven valósítják meg az összekapcsolást, olyan szempontokat figyelembevéve mint a nagyobb kapacitás, nagyobb biztonság illetve nagyobb sebesség elérése. 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.
[szerkesztés] RAID Szintek
A RAID-ben eredetileg 5 szintet (RAID1-től RAID5-ig) definiáltak. Az egyes szintek általában nem a fejlődési, illetve minőségi sorrendet tükrözik, hanem egyszerűen különböző megoldásokat javasolnak. A kezdeti 5 szinthez később hozzávették a RAID 6-ot. RAID 0-ként szokták emlegetni azt a változatot, ahol a diszkeket redundancia nélkül kapcsoljuk össze. Ezenkívül használjak még a RAID 10, vagy RAID 1+0 elnevezéseket is, amelyek a RAID 1 és a RAID 0 kombinálásával hoznak létre. Hasonlóan a RAID 50 a RAID 5 és a RAID 0 kombinációja. A RAID alapötlete a lemezegységek sávokra (stripes) bontása. Az itteni sávok nem azonosak a lemez fizikai sávjaival (tracks), amit az angol elnevezés különbözősége is jelez.
A sávok minden diszken egyforma méretűek, amely 512 bájttól néhány megabájtig terjedhet. Az adatok nem folytonosan tárolódnak egy-egy diszken, hanem az egymást követő sávok mindig a sorban round-robin módon következő diszkre kerülnek, mint ahogy azt négy meghajtó esetén a fenti ábra is mutatja. A sávok méretének megválasztása az alkalmazástól függ. Adatbázisok esetén úgy kell a sávméretet megválasztani, hogy egy rekord férjen el egy sávon belül, így a különböző diszkeken lévő rekordok párhuzamosan egyszerre elérhetővé (írási/olvasási műveletekkor) válnak, felgyorsítván a rendszer teljesítményét. Nagyméretű fájlok átvitele esetén viszont a sávok méretét minél kisebbre kell állítani, hogy az egyes fájlok a diszkeken mintegy "szétkenve" helyezkedjenek el, így a fájlok különböző diszkeken lévő egyes darabjainak írása, illetve olvasása párhuzamosan történhet.
[szerkesztés] RAID 0 avagy összefűzés
A RAID 0 alkalmazza az egyes lemezegységek sávokra bontását, viszont semmilyen plusz redundanciát nem visz a rendszerbe, így nem biztosít hibatűrést, azaz egyetlen meghajtó meghibásodása az egész rendszer hibáját okozza. Mind az írási, mind az olvasási műveletek párhuzamosítva történnek. A módszer az összes RAID eljárás közül a legjobb teljesítményt nyújtja, ugyanis a többi módszernél a redundancia kezelése (mint majd látni fogjuk) lassítja a rendszert. A tárkihasználás a redundancia hiánya miatt szintén hatékony. A megoldás lehetővé teszi különböző kapacitású lemezek összekapcsolását is viszont ilyenkor a teljes logikailag elért kapacitás mindössze a kisebb méretű lemez kapacitásának a dupláját fogja jelenteni, tehát egy 120Gb kapacitású és egy 100Gb-os lemez összefűzésekor mindössze egy 200Gb méretű logikai meghajtót fogunk kapni. Természetesen lehetőség van akár 4 diszk összefűzésére is, de mint ahogy fent már említettük, redundancia hiányában a lemezek számának növelésével nő az adatvesztés veszélye is, mert itt elég egyetlen eszköz kiesése és már az egész adathalmaz használhatatlanná vállhat, amit aztán csak nagyon bonyolult módszerekkel és meglehetőssen kis eséllyel lehet csak helyreállítani. A RAID 0 főleg olyan helyeken alkalmazható ahol nem szempont az adatbiztonság és csak kevés merevlemez csatolható fel az operációs rendszer korlátozása miatt, mint például a régebbi Microsoft Windows rendszerek összesen 24 meghajtó betűjelet tesznek elérhetővé, ezzel 24 eszközre korlátozva a particiók számát. Az újabb rendszerek, mint a Windows 2000 Professional és az ezt követő valamint a Unix felépítésűeknél már lehetőség van a partíciókat definálni könyvtárak ként, ezzel végülis kiválható a tömb ilyen célú alkalmazása. A másik pozitív tulajdonsága viszon továbbra is csábító lehet olyan, kifejezetten csak játékra épített rendszereknél, ahol ezzel tetemes teljesítmény növekedést érhetünk el. Ilyen célú alkalmazásra mégsem túl ajánlott, mivel az egyszer már összekapcsolt diszkek különálló alkalmazása csak újraszervezés után, a teljes adattartalom eltávolításával és újraformázással lehetséges.
[szerkesztés] RAID 1 avagy tükrözés
A RAID 1 eljárás alapja az adatok duplikált tárolása, azaz tükrözése (disk mirroring). Az eltárolandó információ mindig párhuzamosan két meghajtón kerül felírásra, amely meghajtópárost a számítógép egy szimpla kapacitású logikai meghajtónak lát. Az adatok olvasása párhuzamosan történik a két diszkről, felgyorsítván az olvasási teljesítményt. Az írás normál sebességgel, párhuzamosan történik a két meghajtón. Az eljárás igen jó hibavédelmet biztosít, bármely meghajtó meghibásodása esetén folytatódhat a működés. Ezen nagymértékű hibatolerancia ára a kétszeres tárolókapacitás-felhasználás. A RAID 1 önmagában nem használja a sávokra bontás módszerét.
[szerkesztés] RAID 2
A RAID 2 használja a sávokra bontás módszerét, emellett egyes meghajtókat hibajavító kód (ECC: Error Correcting Code) tárolására tartanak fenn (A hibajavító kód lényege, hogy az adatbitekből valamilyen matematikai művelet segítségével redundáns biteket képeznek. A használt eljárástól függően a kapott kód akár több bithiba észlelésére, illetve javítására (ez utóbbi persze több redundanciát igényel) alkalmas. A védelem ára a megnövekedett adatmennyiség.). Ezen meghajtók egy-egy sávjában a különböző diszkeken azonos pozícióban elhelyezkedő sávokból képzett hibajavító kódot tárolnak. A módszer esetleges diszkhiba esetén képes annak detektálására, illetve kijavítására. Manapság nem használják, mivel a (SCSI) meghajtókban már minden egyes szektorban az adott szektorhoz tartozó ECC is eltárolásra kerül.
[szerkesztés] RAID 3
A RAID 3 felépítése hasonlít a RAID 2-re, viszont nem teljes hibajavító kód, hanem csak egy diszknyi paritásinformáció kerül eltárolásra. Egy adott paritássáv a különböző diszkeken azonos pozícióban elhelyezkedő sávokból XOR művelet segítségével kapható meg. A rendszerben egy meghajtó kiesése nem okoz problémát, mivel a rajta lévő információ a többi meghajtó (a paritást tároló meghajtót is beleértve) XOR-aként megkapható. Az alapvető különbség a RAID 2-ben alkalmazott hibajavító kóddal szemben, hogy itt feltesszük, hogy a meghajtó meghibásodását valamilyen módón (pl. többszöri sikertelen olvasás hatására) észleljük, majd a meghibásodott diszken lévő információt a többi diszken lévő adatok segítségével állítjuk elő. A RAID 2 a diszkhibák ellen is védelmet nyújt, pl. egyes bájtok megsérülése esetén (Vegyük észre, hogy csak az XOR-os paritásbit technikát használva az egyik meghajtón egy adott bájt megsérülése esetén, csak azt vennénk észre, hogy a különböző meghajtókon az azonos sávba tartozó részek XOR-a nem nullát adna, de nem tudnánk sem azt, hogy melyik meghajtón van a hiba, sem azt, hogy hogyan javítsuk ki. Ezért van szükség a szektoronkénti hibajavító kód alkalmazására.). A RAID 3-nál kisméretű sávokat definiálnak, így az egyes fájlok olvasása és írása párhuzamosan történhet (Természetesen a paritássávot minden egyes íráskor módosítani kell, amihez szükséges a korábbi tartalom kiolvasása. Viszont például fájltranszfer esetén, pont a kisméretű sávok miatt, az azonos pozícióban lévő sávok általában az összes diszken felülírásra kerülnek, így ez esetben a probléma kevésbé jelentkezik.) az egyes meghajtókon, viszont a módszer nem támogatja egyszerre több kérés párhuzamos kiszolgálását (single-user mode).
[szerkesztés] RAID 4
A RAID 4 felépítése a RAID 3-mal megegyező. Az egyetlen különbség, hogy itt nagyméretű sávokat definiálnak, így egy rekord egy meghajtón helyezkedik el, lehetővé téve egyszerre több (különböző meghajtókon elhelyezkedő) rekord párhuzamos írását, illetve olvasását (multi-user mode). Problémát okoz viszont, hogy a paritás meghajtó adott sávját minden egyes íráskor frissíteni kell (plusz egy olvasás és írás), aminek következtében párhuzamos íráskor a paritás meghajtó a rendszer szűk keresztmetszetévé (bottleneck) válik. Ezenkívül valamely meghajtó kiesése esetén a rendszer olvasási teljesítménye is lecsökken, a paritás meghajtó jelentette szűk keresztmetszet miatt.
[szerkesztés] RAID 5
A RAID 5 a paritás információt nem egy kitüntetett meghajtón, hanem, körbeforgó paritás (rotating parity) használatával, egyenletesen az összes meghajtón elosztva tárolja, kiküszöbölvén a paritás meghajtó jelentette szűk keresztmetszetet. Mind az írás, mind az olvasás műveletek párhuzamosan végezhetőek. A sávméret változtatható; kisméretű sávok esetén a RAID 3-hoz hasonló működést, míg nagyméretű sávok alkalmazása esetén a RAID 4-nek megfelelő működést kapunk.
[szerkesztés] RAID 6
A RAID 6 tekinthető a RAID 5 kibővítésének. Itt nemcsak soronként, hanem oszloponként is kiszámítják a paritást. A módszer segítségével kétszeres meghajtó meghibásodás is kiküszöbölhetővé válik. A paritássávokat itt is az egyes meghajtók között, egyenletesen elosztva tárolják, de ezek természetesen kétszer annyi helyet foglalnak el, mint a RAID 5 esetében.
[szerkesztés] RAID 0+1 vagy RAID 01
Ez egy amolyan hibrid megoldás, amelyben a RAID 0 által hordozott sebességet a RAID 1-et jellemző biztonságot ötvözhetjük. Hátránya hogy minimálisan 4 eszközre van szükségünk melyekből 1-1-et összefűzve, majd páronként tükrözve építhetjük fel a tömbünket, ezért a teljes kinyerhető kapacitásnak mindössze a felét tudjuk használni, tekintve hogy az első 2 darab diszkből álló összefűzött(RAID 0) tömb a másik 2 darab diszk tükrözését(RAID 1) tárolja.
[szerkesztés] RAID 1+0 vagy RAID 10
Hasonlít a RAID 01 megoldáshoz annyi különbséggel, hogy itt a a 2-2 diszk között alkalmazzuk a RAID 0 segítségével az összefűzést és ezen belül lévő párok vannak RAID 1 megoldással tükrözve.
[szerkesztés] Használat
Az ismertetett RAID technikák közül a RAID 0-át, RAID 1-et és RAID 5-öt használják elterjedten, illetve az ezek kombinációjaként megvalósított RAID 10-et és RAID 50-et. A RAID 2-őt a már korábban említett okok, míg a RAID 3-at és RAID 4-et a paritás meghajtó jelentette szűk keresztmetszet miatt nem alkalmazzák. A RAID 6 megvalósítása túl sok többletköltséget jelent, illetve az általa nyújtott többlet biztonság csak speciális alkalmazások estében szükséges, ezért használata nem terjedt el.
[szerkesztés] Megvalósítás
A RAID rendszerek megvalósítása történhet szoftver, illetve hardver támogatással. Szoftveres megvalósítás esetén vagy az operációs rendszer nyújt támogatást, vagy speciális driver programot használnak. A megvalósítás előnye, hogy nem igényel külön költséges hardver komponenseket, viszont hátránya, hogy a központi memóriát, illetve a CPU-t terheli, lerontván az egész rendszer teljesítményét. Hardveres megvalósítás esetén a szükséges feldolgozást a RAID vezérlő valósítja meg, ezáltal az operációs rendszer teljesítménye nem csökken le. A kezelés bonyolultsága miatt a RAID 5-öt a gyakorlatban csak hardver támogatással valósítják meg.


Based on work by