RAID
A Wikipédiából, a szabad enciklopédiából.
A RAID (Redundant Array of Inexpensive Disks vagy Redundant Array of Independent Disks) napjaink egyik fontos technológiája. A RAID technológia alapja az adatok elosztása vagy replikálása több fizikailag független merevlemezen, egy logikai lemezt hozva létre. Minden RAID szint alapjában véve vagy az adatbiztonság növelését vagy az adatátviteli sebesség növelését szolgálja.
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 (RAID 1-től RAID 5-ig) definiáltak. Az egyes szintek nem a fejlődési, illetve minőségi sorrendet tükrözik, hanem egyszerűen a különböző megoldásokat. A kezdeti 5 szinthez később hozzávették a RAID 6-ot. RAID 0-ként szokták említeni azt a változatot, ahol a diszkeket összefűzzük, azaz redundancia nélkül kapcsoljuk össze. Ezeken kívül használjak még több RAID tömb egymásra építését is, a legelterjettebb a RAID 10 (vagy RAID 1+0), RAID 01 (vagy RAID 0+1), illetve a RAID 50 (vagy RAID 5+0). A RAID alapötlete a lemezegységek sávokra (stripes) bontása. Az itteni sávok azonban nem azonosak a lemez fizikai sávjaival (tracks), amit az angol elnevezés különbözősége is jelez.
[szerkesztés] RAID 0 (összefűzés)
A RAID 0 az egyes lemezek egyszerű összefűzését jelenti, viszont semmilyen redundanciát nem ad, így nem biztosít hibatűrést, azaz egyetlen meghajtó meghibásodása az egész tömb hibáját okozza. Mind az írási, mind az olvasási műveletek párhuzamosítva történnek, ideális esetben a sebesség az egyes lemezek sebességének összege lesz, így a módszer a RAID szintek közül a legjobb teljesítményt nyújtja (a többi módszernél a redundancia kezelése lassítja a rendszert). A megoldás lehetővé teszi különböző kapacitású lemezek összekapcsolását is, viszont a nagyobb kapacitású lemezeken is csak a tömb legkisebb kapacitású lemezének méretét lehet használni (tehát egy 120 GB és egy 100 GB méretű lemez összefűzésekor mindössze egy 200 GB-os logikai meghajtót fogunk kapni).
A RAID 0 főleg olyan helyeken alkalmazható, ahol nem szempont az adatbiztonság vagy kevés merevlemez csatolható fel az operációs rendszer korlátozása miatt. (Például a régebbi Microsoft Windows rendszerek esetében összesen 26 meghajtó betűjelet tesznek elérhetővé, ezzel 24 eszközre korlátozva a partíciók számát. Az újabb rendszerek, mint a Windows 2000 Professional és az ezt követő Windowsok, valamint a Unix rendszerek lehetőséget adnak a partíciók könyvtárként való felcsatolására.) A másik pozitív tulajdonsága viszont továbbra is csábító lehet olyan, kifejezetten csak játékra épített rendszereknél, ahol ezzel tetemes teljesítménynö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 (tükrözés)
A RAID 1 eljárás alapja az adatok tükrözése (disk mirroring), azaz az információk egyidejű tárolása a tömb minden elemén. A kapott logikai lemez a tömb legkisebb elemével lesz egyenlő méretű. Az adatok olvasása párhuzamosan történik a diszkekről, felgyorsítván az olvasás sebességét; az írás normál sebességgel, párhuzamosan történik a meghajtókon. 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. 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ódik.
[szerkesztés] RAID 3
A RAID 3 felépítése hasonlít a RAID 2-re, viszont nem a teljes hibajavító kód, hanem csak egy diszknyi paritásinformáció tárolódik. 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 (például 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, például 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 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). (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ávokat általában az összes diszken felülírják, így ez esetben a probléma kevésbé jelentkezik.)
[szerkesztés] RAID 4
A RAID 4 felépítése a RAID 3-mal megegyezik. 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ásmeghajtó a rendszer szűk keresztmetszetévé 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
Kép leírás:
"Tárolandó adat"=A+B+C+D.
A=A1+A2+A3.
Ap=(A1 XOR A2) XOR A3.
...
Eszközszükséglet:
Minimális meghajtószám: 3.
Fizikai meghibásodás:
1 meghajtó meghibásodása esetén az adatok sértetlenül megmaradnak, de a hibás meghajtót cserélni kell, mert már 2 meghajtó meghibásodása esetén az adatok elvesznek!
1 meghibásodott meghajtó esetén a visszaolvasás lehetséges: Ah=(Aj1 XOR Aj2) XOR Aj3. (Ahol Ah: a fizikailag hibás meghajtó része és Aj1, Aj2, Aj3: a jó meghajtó része.
A RAID 5 vezérlők a hibás meghajtó helyére betett új, üres meghajtót automatikusan feltöltik adattal.
Tárolási kapacitás:
"Tárolható adatmennyiség" = "A legkisebb kapacitású meghajtón tárolható adatmennyiség" * ("Meghajtók száma" - 1)
(Pl.: 4 db egyenként 1 TB -os HDD RAID 5 -be fűzésének eredményeként logikailag egy 3 TB kapacitású meghajtót látunk.)
Teljesítmény:
Az "olvasási sebesség" = "A leglassabb meghajtó olvasási sebessége" * ("Meghajtók száma" - 1)
A leolvasott adatmennyiség
Az írási sebességnél fontos figyelembe venni a paritás adatok előállítására szükséges számítási kapacitás igényt! Szoftveres megoldásnál ez jelentős processzor leterhelést, illetve írási sebesség lassulást eredményez. Ajánlott a hardveres megoldás, ahol a célhardver látja el ezeket a feladatokat.
Adatvédelem:
1 fizikai meghajtóról nem állítható vissza a teljes adattartalom, viszont 1-1 adatblokknyi igen. (Akár ez is tartalmazhat értékes információt, így a már nem használt vagy hibás adathordozót érdemes megsemmisíttetni, pl. itt: [1])
Adatbiztonság:
Az adatvesztések csökkentése érdekében ajánlott alkalmazni a RAID 5+1 kombinációt.
Leírás:
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ási, mind az olvasási műveletek párhuzamosan végezhetőek.
Alkalmazás:
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 olyan hibrid megoldás, amelyben a RAID 0 által hordozott sebességet a RAID 1-et jellemző biztonsággal ö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. Mivel a tükrözés (RAID 1) a két összefűzött (RAID 0) tömbre épül, ezért egy diszk meghibásodása esetén az egyik összefűzött tömb mindenképp kiesik, így a tükrözés is megszűnik.
[szerkesztés] RAID 1+0 vagy RAID 10
Hasonlít a RAID 01 megoldáshoz, annyi különbséggel, hogy itt a diszkeket először tükrözzük, majd a kapott tömböket fűzzük össze. Ez biztonság szempontjából jobb megoldás, mint a RAID 01, mivel egy diszk kiesése csak az adott tükrözött tömböt érinti, a rá épült RAID 0-t nem; sebességben pedig megegyezik vele.
[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.

