merevlemez
A merevlemezek
(Hard disks)
 
Általánosságban
RAID
A RAID (Redundant Array of Inexpensive Disks 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.
Felépítés
Partíciók és fájlrendszerek
A merevlemez telepítése
Terminológia
SCSI
RAID
Hasznos linkek

Csupán a fantáziánk szabhat határt a RAID alkalmazási területeinek: hatalmas adatbázisok kezelése (például 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.

 

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.

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.

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 120 GB kapacitású és egy 100 GB-os lemez összefûzésekor mindössze egy 200 GB 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álhat, amit aztán csak nagyon bonyolult módszerekkel és meglehetõsen 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 partíciók számát. Az újabb rendszerek, mint a Windows 2000 Professional és az ezt követõ Windowsok, valamint a Unix rendszerek már lehetõséget adnak a partíciók könyvtárként való definiálására, amivel tulajdonképpen kiváltható a tömb ilyen célú alkalmazása.
    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.


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 lesz felírva, 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.

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.

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.)


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.

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ási, mind az olvasási 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.

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.

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.

 

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.

               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.

               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.