RAID

A Unix/Linux szerverek üzemeltetése wikiből
(Változatok közti eltérés)
(Megvalósítás típusai: bővítés 2007: v0.2)
(bővítés 2007: v0.3)
12. sor: 12. sor:
 
== Megvalósítás típusai ==
 
== Megvalósítás típusai ==
 
* Hardware
 
* Hardware
** Drága vezérlő
+
** Drága vezérlő (ATA, SCSI, ...)
  +
** SCSI-buszra csatlakoztatható RAID-vezérlő is létezik
 
* Software
 
* Software
** pl. [[Software RAID Linux alatt|Linux md]]; előnyei:
+
** pl. [[Software RAID Linux alatt|Linux md]]
*** rugalmasság
+
** FreeBSD Vinum(?)
**** Különböző vezérlőkön lógó diszkek is lehetnek egy tömbben;
 
**** sőt, egy RAID-tömb állhat teljesen különböző technológiákat használó eszközökből (pl. USB-s flash drive+SATA diszk+network block device)
 
**** segít csökkenteni a kritikus pontok (SPoF) számát - pl. egy tömb minden diszkje lehet másik vezérlőn, vagy akár másik városban
 
**** partíciókból is építhető tömb, nemcsak diszkekből
 
*** hibakeresés viszonylagos egyszerűsége (van forráskód, amit el lehet olvasni)
 
*** nyilvános az adatformátum
 
**** nem kell mindig ugyanolyan vezérlőt venni
 
**** a diszkek szabadon mozgathatók egyik gépből a másikba)
 
***** egy RAID1 tömb minden diszkje külön-külön is használható más-más gépben
 
**** (hardware raid esetén még gyártó két vezérlője közötti mozgatás esetén is szükség lehet dump-restore ciklusra)
 
*** A gép CPU-ja tipikusan sokkal gyorsabban futtatja a RAID5-höz szükséges XORt, mint a RAID-vezérlő mikrokontrollere
 
**** Persze ez egyben hátrány is, hiszen ezt is a CPU-nak kell csinálnia
 
**** Viszont CPU-t egyszerűbb upgrade-elni, mint RAID-vezérlőt
 
**** A CPU-magok számával nő a RAID5 sebessége
 
*** kültséghatékonyság: általában olcsóbb több RAMot és gyorsabb CPU-t venni, mint gyorsabb RAID-vezérlőt
 
*** termék-életciklus: régi RAID-vezérlőhöz többnyire nincs támogatás, firmware-frissítés stb. (sőt, esetleg már a gyártó sincs meg)
 
*** egységes felhasználói interfész (amúgy minden RAID-vezérlőnek más)
 
 
** Windows dynamic disk (?)
 
** Windows dynamic disk (?)
  +
*** Az XP pro csak RAID0-t tud, a szervertermékek RAID1-et is (woah!)
 
* Hibrid
 
* Hibrid
 
** Olcsó alaplapok "RAID"-vezérlői
 
** Olcsó alaplapok "RAID"-vezérlői
82. sor: 83. sor:
 
* Itt is pontosan egy diszk eshet ki
 
* Itt is pontosan egy diszk eshet ki
 
* Nemigen használják
 
* Nemigen használják
  +
** Akkor lehet jó, ha van több lassú és egy nagyon gyors diszkünk - pl. egy lokális diszk és több hálózati
   
 
=== RAID5 ===
 
=== RAID5 ===
117. sor: 119. sor:
 
* Így aztán lehet az egésznek egy hotspare-je, ami bármelyik diszk kiesése esetén beállhat
 
* Így aztán lehet az egésznek egy hotspare-je, ami bármelyik diszk kiesése esetén beállhat
 
* A Linux kernel [[Software RAID Linux alatt#RAID-szintek|támogatja]]
 
* A Linux kernel [[Software RAID Linux alatt#RAID-szintek|támogatja]]
  +
  +
== Hardveres vagy szoftveres RAID? ==
  +
  +
A (nyílt) szoftveres megvalósítás mellett szól:
  +
  +
* rugalmasság
  +
** Különböző vezérlőkön lógó diszkek is lehetnek egy tömbben;
  +
** sőt, egy RAID-tömb állhat teljesen különböző technológiákat használó eszközökből (pl. USB-s flash drive+SATA diszk+network block device/iSCSI)
  +
** segít csökkenteni a kritikus pontok (SPoF) számát - pl. egy tömb minden diszkje lehet másik vezérlőn, vagy akár másik városban
  +
** partíciókból is építhető tömb, nemcsak diszkekből
  +
* a RAID-vezérlők firmware-je gyakran hibás, de a frissítés nehézkes és a hibák nehezen derülnek ki
  +
* a szoftveres megoldásnál viszonylag egyszerű a hibakeresés (van forráskód, amit el lehet olvasni)
  +
* nyilvános az adatformátum
  +
** nem kell mindig ugyanolyan vezérlőt venni
  +
** a diszkek szabadon mozgathatók egyik gépből a másikba)
  +
*** egy RAID1 tömb minden diszkje külön-külön is használható más-más gépben
  +
** (hardware raid esetén még gyártó két vezérlője közötti mozgatás esetén is szükség lehet dump-restore ciklusra)
  +
* A gép CPU-ja tipikusan sokkal gyorsabban futtatja a RAID5-höz szükséges XORt, mint a RAID-vezérlő mikrokontrollere
  +
** Persze ez egyben hátrány is, hiszen ezt is a CPU-nak kell csinálnia
  +
** Viszont CPU-t egyszerűbb upgrade-elni, mint RAID-vezérlőt
  +
** A CPU-magok számával nő a RAID5 sebessége
  +
** Tehát: '''nem igaz''', hogy egy hardveres RAID szükségszerűen gyorsabb lenne, mint egy - mondjuk azonos árfekvésű - szoftveres megoldás
  +
* kültséghatékonyság: általában olcsóbb több RAMot és gyorsabb CPU-t venni, mint gyorsabb RAID-vezérlőt
  +
* termék-életciklus: régi RAID-vezérlőhöz többnyire nincs támogatás, firmware-frissítés stb. (sőt, esetleg már a gyártó sincs meg)
  +
* egységes felhasználói interfész (amúgy minden RAID-vezérlőnek más)
  +
** naplózás, hibakezelés szintén különbözhet, nemcsak a tömbök összerakásához használt eszköz
  +
** pl. hardveres RAID esetén nem magától értetődő, hogy a syslogban megjelenik minden hiba (pedig ez segít a diszkhalál előrejelzésében)
  +
* a RAID-vezérlő funkcióinak halmaza adott; a szoftver-RAID fejlődik, anélkül, hogy hardvert cserélnénk
  +
* funkcionalitás: a legtöbb hardveres megvalósítás nem támogatja a RAID6-ot és a RAID10-et (ami nem RAID1+0)
  +
  +
A hardveres megvalósítás mellett szól:
  +
  +
* a softraid jobban terheli a rendszerbuszt
  +
** RAID1-nél azért, mert több példányban kell a buszra küldeni minden írást
  +
** RAID5-nél azért, mert a paritást is át kell tolni a memóriából a diszkre
  +
* a vezérlőn levő akkumulátor segítségével áramszünet esetén is a diszkre írható a cache tartalma
  +
* a PC-hardver bizonyos típusú hibákra nincs jól felkészítve, úgyhogy ha egy diszk bedöglik, lefagyhat a gép, és oda a rendelkezésreállás
   
 
== Ajánlott irodalom ==
 
== Ajánlott irodalom ==
  +
  +
Az itt fel nem sorolt irodalommal bánjatok óvatosan! RAID-ügyben sok a makacs mítosz és téveszme.
  +
Könnyű önellentmondást tartalmazó ismeretterjesztő cikket találni (pl. kijelenti, hogy a hardveres RAID mindenképpen gyorsabb bármilyen szoftvermegoldásnál, majd kiméri, hogy vannak konkrét esetek, amikor a softraid a gyorsabb...).
   
 
* Peter M. Chen, Edward K. Lee, Garth A. Gibson, Randy H. Katz, David A. Patterson: [http://www-static.cc.gatech.edu/classes/cs4760_98_fall/papers/raidShort.ps "RAID: High-Performance, Reliable Secondary Storage"], ACM Computing Surveys (CSUR), Volume 26, Issue 2 (June 1994), pp. 145-185, ISSN 0360-0300
 
* Peter M. Chen, Edward K. Lee, Garth A. Gibson, Randy H. Katz, David A. Patterson: [http://www-static.cc.gatech.edu/classes/cs4760_98_fall/papers/raidShort.ps "RAID: High-Performance, Reliable Secondary Storage"], ACM Computing Surveys (CSUR), Volume 26, Issue 2 (June 1994), pp. 145-185, ISSN 0360-0300
 
** Van benne szép ábra is, nem akar esetleg valaki hasonlót rajzolni nekünk?
 
** Van benne szép ábra is, nem akar esetleg valaki hasonlót rajzolni nekünk?
 
** [http://66.249.93.104/search?q=cache:yPLBqrcg6UEJ:www-static.cc.gatech.edu/classes/cs4760_98_fall/papers/raidShort.ps+%22in+recent+years,+interest+in+RAID%22&hl=hu&gl=hu&ct=clnk&cd=1&client=firefox-a Ugyanez a cikk HTML-ként]
 
** [http://66.249.93.104/search?q=cache:yPLBqrcg6UEJ:www-static.cc.gatech.edu/classes/cs4760_98_fall/papers/raidShort.ps+%22in+recent+years,+interest+in+RAID%22&hl=hu&gl=hu&ct=clnk&cd=1&client=firefox-a Ugyanez a cikk HTML-ként]
 
 
* Tomka Gergely: [http://gergely.tomka.hu/raidenbd/raidenbd.html RAID és ENBD - gyakorlati útmutató]. Könnyed bevezetés a [[RAID]], az [[Logikai kötetkezelés|LVM]] és az [http://www.it.uc3m.es/~ptb/nbd/ ENBD] (Enhanced Network Block Device) használatába.
 
* Tomka Gergely: [http://gergely.tomka.hu/raidenbd/raidenbd.html RAID és ENBD - gyakorlati útmutató]. Könnyed bevezetés a [[RAID]], az [[Logikai kötetkezelés|LVM]] és az [http://www.it.uc3m.es/~ptb/nbd/ ENBD] (Enhanced Network Block Device) használatába.
 
 
* [http://linux.yyz.us/why-software-raid.html Why software RAID?] - érvek pro és kontra a hardver-RAID vs. szoftver-RAID vitában.
 
* [http://linux.yyz.us/why-software-raid.html Why software RAID?] - érvek pro és kontra a hardver-RAID vs. szoftver-RAID vitában.
 
 
* [http://www.bytepile.com/raid_class.php RAID Classifications] - egy jó összeállítás az egyes RAID-szintekről, ábrákkal.
 
* [http://www.bytepile.com/raid_class.php RAID Classifications] - egy jó összeállítás az egyes RAID-szintekről, ábrákkal.

A lap 2007. szeptember 27., 21:14-kori változata

Redundant Array of Inexpensive/Independent Disks. Külön szócikk foglalkozik a szoftveres RAID linuxos megvalósításával.

Tartalomjegyzék

1 Mire jó?

  • Sok kis diszk helyett egy nagyot látunk
    • Ami ráadásul gyorsabb is
    • És megbízhatóbb is
      • És jobb esetben működés közben cserélhető
      • Egy diszk MTFF-je 200000 óra is lehet
      • Akkor 100 diszké 2000 óra (kb. két és fél hónap)

2 Megvalósítás típusai

  • Hardware
    • Drága vezérlő (ATA, SCSI, ...)
    • SCSI-buszra csatlakoztatható RAID-vezérlő is létezik
  • Software
    • pl. Linux md
    • FreeBSD Vinum(?)
    • Windows dynamic disk (?)
      • Az XP pro csak RAID0-t tud, a szervertermékek RAID1-et is (woah!)
  • Hibrid
    • Olcsó alaplapok "RAID"-vezérlői
  • (Külső doboz: SAN, NAS)

3 RAID szintek

  • Két ortogonális fogalom:
    • Csíkozás (striping) a nagyobb teljesítmény, és
    • Redundancia (redundancy) a nagyobb megbízhatóság érdekében.
  • Másfelől: nagy, megbízható, gyors - ebből választhatunk kettőt (vagy legalábbis az egyik kicsit mindig háttérbe szorul a másik kettő javára)
  • Csíkozás:
    • Lehet finom vagy durva
    • Rövidebb sorbanállás független I/O műveletek esetén
    • Nagyobb effektív átviteli sebesség egyetlen, több-blokkos I/O művelet esetén
    • Csökkenti a megbízhatóságot: 10 diszkből egy várhatóan pontosan tizedannyi idő alatt romlik el, mint egyből egy
  • Redundancia:
    • Milyen hibadetektáló/-javító kódot használ? (általában paritás, ritkábban Hamming vagy Reed-Solomon)
    • Hogyan osszuk el a redundáns információt a több diszk között?
      • Koncentráltan
      • Szétterítve

3.1 RAID0

  • Nincs redundancia, csak csíkozás
  • A legjobb írási sebesség (nem kell kódokat számolgatni és frissíteni)
  • A RAID1 tudhat gyorsabban olvasni (több diszken is megvan ugyanaz az adat, tehát olvashatunk arról, amelyik várhatóan a leghamarabb odaér)
  • Egy diszk kiesése után a tömb "használhatatlan"

3.2 RAID1

  • Az adatokat nem 1, hanem n>1 diszken tároljuk
  • A tömbhöz tartozhat melegtartalék is (hotspare); erre nem íródnak az adatok, amíg éles diszk ki nem esik
  • Ha 8 diszkünk van, akkor 4 kapacitása hasznosul
    • Bármelyik kieshet, és a tömb még működik
    • Ha szerencsénk van, akár 4 is kieshet, és még működik, de ez már nem garantált

3.3 RAID2

  • Hamming kódos
  • 4 adatdiszkhez 3 paritásdiszk kell, de a paritásdiszkek száma az adatdiszkek logaritmusával arányos
  • A fenti hétből egy eshet ki, négy kapacitása hasznosul
  • Nemigen használják

3.4 RAID3

  • A memóriahibákkal ellentétben a diszkek esetében pontosan tudjuk, melyik a rossz, tehát nem kell a Hamming-kód, találhatunk jobbat
  • n adatdiszkhez 1 paritásdiszk tartozik
  • Minden írás minden diszket érint
  • Az olvasásban csak az adatdiszkek vesznek részt
  • Pontosan egy diszk eshet ki
  • Nemigen használják

3.5 RAID4

  • Mint a RAID3, de nem bitenként használja az egyes diszkeket, hanem blokkonként (striping unit, esetleg stride size).
  • Blokkméret alatti írási műveleteknél read-modify-write van:
    • a többi diszkről is be kell olvasni az adott paritásblokkhoz tartozó adatokat
    • újra kiszámolni a paritást
    • kiírni a módosított adatot és az új paritást
  • Mivel csak egy paritásdiszk van, és azt az összes írás érinti, szűk keresztmetszet lehet
  • Itt is pontosan egy diszk eshet ki
  • Nemigen használják
    • Akkor lehet jó, ha van több lassú és egy nagyon gyors diszkünk - pl. egy lokális diszk és több hálózati

3.6 RAID5

  • Mint a RAID4, de a paritás is el van osztva
    • n diszk esetén minden diszken minden n-edik blokk paritásblokk
  • n+1 diszkből itt is n-nek a kapacitását hasznosítjuk
  • Minden diszk részt vehet az olvasási műveletek kiszolgálásában
  • Kis olvasás, nagy olvasás, nagy írás gyors; kis írás relatív lassú
  • Pontosan egy eshet ki
  • Széles körben elterjedt

3.7 RAID6

  • Reed-Solomon
  • n+2 diszk kell n diszknyi kapacitáshoz
  • Bármely két diszk kieshet
  • Amúgy olyan, mint a RAID5; a kis írás még egy kicsit lassúbb
  • Terjedőben

3.8 RAID1+0

  • RAID10-nek is hívják, de "van" "valódi" RAID10 is
  • Két (vagy több) RAID1 tömböt csíkozással összefűzünk

3.9 RAID0+1

  • Mint fent, de két RAID0-tömböt tükrözünk egymásra RAID1-gyel

3.10 RAID10 vagy RAID 1e

  • Elvileg egy RAID1+0-jellegű hibrid megoldás
  • Egy komplex tömb, nem két egymásra épített
  • Állhat páratlan számú diszkből is
  • Így aztán lehet az egésznek egy hotspare-je, ami bármelyik diszk kiesése esetén beállhat
  • A Linux kernel támogatja

4 Hardveres vagy szoftveres RAID?

A (nyílt) szoftveres megvalósítás mellett szól:

  • rugalmasság
    • Különböző vezérlőkön lógó diszkek is lehetnek egy tömbben;
    • sőt, egy RAID-tömb állhat teljesen különböző technológiákat használó eszközökből (pl. USB-s flash drive+SATA diszk+network block device/iSCSI)
    • segít csökkenteni a kritikus pontok (SPoF) számát - pl. egy tömb minden diszkje lehet másik vezérlőn, vagy akár másik városban
    • partíciókból is építhető tömb, nemcsak diszkekből
  • a RAID-vezérlők firmware-je gyakran hibás, de a frissítés nehézkes és a hibák nehezen derülnek ki
  • a szoftveres megoldásnál viszonylag egyszerű a hibakeresés (van forráskód, amit el lehet olvasni)
  • nyilvános az adatformátum
    • nem kell mindig ugyanolyan vezérlőt venni
    • a diszkek szabadon mozgathatók egyik gépből a másikba)
      • egy RAID1 tömb minden diszkje külön-külön is használható más-más gépben
    • (hardware raid esetén még gyártó két vezérlője közötti mozgatás esetén is szükség lehet dump-restore ciklusra)
  • A gép CPU-ja tipikusan sokkal gyorsabban futtatja a RAID5-höz szükséges XORt, mint a RAID-vezérlő mikrokontrollere
    • Persze ez egyben hátrány is, hiszen ezt is a CPU-nak kell csinálnia
    • Viszont CPU-t egyszerűbb upgrade-elni, mint RAID-vezérlőt
    • A CPU-magok számával nő a RAID5 sebessége
    • Tehát: nem igaz, hogy egy hardveres RAID szükségszerűen gyorsabb lenne, mint egy - mondjuk azonos árfekvésű - szoftveres megoldás
  • kültséghatékonyság: általában olcsóbb több RAMot és gyorsabb CPU-t venni, mint gyorsabb RAID-vezérlőt
  • termék-életciklus: régi RAID-vezérlőhöz többnyire nincs támogatás, firmware-frissítés stb. (sőt, esetleg már a gyártó sincs meg)
  • egységes felhasználói interfész (amúgy minden RAID-vezérlőnek más)
    • naplózás, hibakezelés szintén különbözhet, nemcsak a tömbök összerakásához használt eszköz
    • pl. hardveres RAID esetén nem magától értetődő, hogy a syslogban megjelenik minden hiba (pedig ez segít a diszkhalál előrejelzésében)
  • a RAID-vezérlő funkcióinak halmaza adott; a szoftver-RAID fejlődik, anélkül, hogy hardvert cserélnénk
  • funkcionalitás: a legtöbb hardveres megvalósítás nem támogatja a RAID6-ot és a RAID10-et (ami nem RAID1+0)

A hardveres megvalósítás mellett szól:

  • a softraid jobban terheli a rendszerbuszt
    • RAID1-nél azért, mert több példányban kell a buszra küldeni minden írást
    • RAID5-nél azért, mert a paritást is át kell tolni a memóriából a diszkre
  • a vezérlőn levő akkumulátor segítségével áramszünet esetén is a diszkre írható a cache tartalma
  • a PC-hardver bizonyos típusú hibákra nincs jól felkészítve, úgyhogy ha egy diszk bedöglik, lefagyhat a gép, és oda a rendelkezésreállás

5 Ajánlott irodalom

Az itt fel nem sorolt irodalommal bánjatok óvatosan! RAID-ügyben sok a makacs mítosz és téveszme. Könnyű önellentmondást tartalmazó ismeretterjesztő cikket találni (pl. kijelenti, hogy a hardveres RAID mindenképpen gyorsabb bármilyen szoftvermegoldásnál, majd kiméri, hogy vannak konkrét esetek, amikor a softraid a gyorsabb...).

Személyes eszközök