Mythbusters: dmraid

(Warning: nagy képek vannak benne, kábé ~2MB, aki modemmel nézi... :) csak szólok!)már nem

Mivel itt ismét előkerült ez a téma, és tapasztalatom szerint elég sok a tévinformáció, a misztifikálás és urban legend ezzel kapcsolatban, és mivel történetesen van a raktárban két vinyó, amelyek egy nforce alaplapi raid0-ba lettek konfigurálva, gondoltam, csinálok velük valami hasznosat.

Sokan tévesen azt gondolják, sőt terjesztik (persze csak hallomásból, anélkül, hogy valaha is kipróbálták volna...), hogy az "alaplapi raid egy szar!", "meghal az alaplap, akkor nem lehet többé használni a tömböt!", "oda az összes adat!", "csak teljesen ugyanolyan alaplapon van némi esély az adatok visszanyerésére", és hasonló baromságok. Gondoltam, tiszta vizet öntök a pohárba.

Ezért fogtam a két vinyót, amelyek egy nVidia nForce 560 alaplapi RAID0 tömböt alkottak valaha, és beraktam egy Intel ICH10R alaplapba (mivel ez volt kéznél). A tesztgépben még benne volt természetesen a saját vinyója is, valamint egy WD Passportra telepített Ubuntu 10.04.1-ről bootoltam. A BIOS-ban AHCI módra van állítva a Sata vezérlő, de ez nem számít különösebben, csak úgy mondom.

Íme az első kép, amin egy 'lspci' kimenet látható:

Ez egy MSI P43-NEO3-F elvileg, asszem.

Következő képen az látható, hogy rendkívül bonyolult módon aktiválom a dmraid-del az nforce raid tömböt az intel alaplapon. Nem igazán lehet elrontani semmit...
Ilyen hülye neveket ad neki a device mapper...
látható, amint aktiválja a tömböt magát, valamint az azon lévő 3 darab partíciót is.

(Az az igazság, hogy itt csaltam egy kicsit de az nem látszik. Ugyanis nem kellett aktiváljam a tömböt, mert azt már a boot során megtalálta és aktiválta a dmraid... Úgyhogy előtte volt egy 'dmraid -an' deaktiválás is, csak hogy a szükséges parancsokat a képeken megfelelő sorrendben lehesen látni.)
Létrehoztam egy 'raid' nevű könyvtárat a /mnt-ben, ide felmountoltam az ntfs partíciót, és kilistáztam. Látható egy vista x64 fájlrendszere.

Következőnek azt találtam ki, hogy létrehozok egy fájlt az egy szem vinyón, és azt átmásolom a tömbre, majd hogy bizonyítsam, hogy teljesen hibátlanul megy minden, md5sum-okat összevetem.

Tehát felmountoltam az 500-as vinyó D: partícióját (szintén ntfs) a '/mnt/single' könyvtárba. Ez másodikra sikerült is, mivel elfelejtettem a 'single' könyvtárat létrehozni... :D Erről is egy könyvtárlista látható, hogy valóban ott van minden.

De honnan szedjek egy nagy fájlt? Nem volt kedvem urandom-mókázni mert az lassú, inkább fogtam, és a vinyó elejéről 1 gigát beolvastam fájlba, íme:

Mivel itt a vinyón belül másolok, így elég lassú, de ez természetes.
Aztán egy md5sum kiírás jön.
Majd pedig átmásoltam a fájlt a raid tömbre, erre a célra dd-t választottam, mert az szépen kiírja a sebességet is. Természetesen sima cp vagy akármi is működik. (A sebesség 91,5MB/s, mivel a forrás fájl az egy szem 500-as vinyón van, a D: partíció meg a lemez második felében, és ott ennyit tud a lemez olvasásban.)
Md5sum a célfájlon is, mint látható, egyezik a kettő. (Naná...)

Jöjjön még némi sebességméricskélés is.

Elsőnek hdparm-al. /dev/sdb és /dev/sdc a két vinyó, amely a tömböt alkotja. Elvileg teljesen egyformák, még a firmware is.
Majd nézzük a devicemapper által létrehozott tömböt is. Mint látható, nagyon szépen skálázódik. Nincs teljesítményprobléma. Pedig ugye nincs "hardveres vezérlő", egy teljesen más alaplapon vagyunk... :)
Aztán pedig beolvastam még egy 25,6 gigát az egységről dd-vel. (I <3 dd)
Majd pedig deaktiváltam a tömböt. (Hmmm, lehet előtte azért lecsatolhattam volna a felmountolt partícióját... :D)

Összegzés, tanulság:
1. Az alaplapi RAID teljes mértékben szoftveres, akárcsak az mdadm. A windows azért látja tömbnek és nem különálló vinyóknak, mert a pseciális driver (ami kb. megfelel a dmraid-nek) átveri. Ez a raid driver végzi szoftveresen a raid kezelését.
2. A tömb nem függ az alaplaptól, a chipsettől, semmitől. Mint ahogy az mdadm sem.
3. Minden metadata és információ a tömbről a lemezen van tárolva. nincs semmiféle alaplapi cmos memória vagy ilyesmi, ami információkat tárolna a tömbről.
4. Tetszőleges alaplapon, akár raid funkció nélkülin is, használható a tömb dmraid segítségével.
5. Nem kell adatvesztéstől tartani, ha megdöglik az alaplap.
6. Nem kell ugyanolyan alaplap az adatok visszanyeréséhez. Bármilyen megfelel, akár egy pci-os vezérlőkártyával megtoldott 486-os is. A lényeg, hogy a kernel lássa a block device-okat.
7. Nincs teljesítményprobléma.
8. Még nem volt vele semmiféle gondom, szerintem megbízhatóan működik a dmraid. persze pár terabyte megmozgatása még nem mérvadó, de nekem megfelelő bizonyíték ez is.
9. Nem bonyolult a dmraid használata. szerintem egyszerűbb, mint az mdadm.
10. mdadm-al szemben, az alaplapi raidet lehet windows alatt is használni.

Amit még nem sikerült megoldani: úgy tűnik, a dmraid sajnos csak valódi fizikai blokk device-okat támogat. Tehát ha a tömb lemezeit lementjük dd-vel, majd loop device-ként kezeljük a fájlokat, azokat sajnos a dmraid nem tudja összefűzni. (Nekem még nem sikerült.) Ilyen szempontból az mdadm jobb megoldás.

Na, hát röviden ennyi.

Ezt már számtalanszor eljátszottam sajnos, mivel itt a cégnél az összes intel alaplappal szerelt dell gépünkben gyárilag raid0 tömbök vannak (ez nem lenne baj), és ezen alaplapok 100%-án elpusztult a _sata vezérlő_! Pirossal kiköpte a lemezeket és nem működött semmi. Persze a lemezeknek kutya bajuk sem volt, beraktam egy nforce alaplapba ugyanígy, mint ezeket itt, és lementettem az adatokat hibátlanul, semmi gond.
Otthon már játszottam alaplapcsere előtt a tömb lementése dd-vel, majd alaplapcsere után vissza a vinyókat, és csodák csodája, az új alaplap felismerte a régi tömböt és minden tökéletesen működött, nem is kellett visszaállítani az image-ből semmit... Aztán a raid tömb kicsi lassú vinyóit cseréltem nagyobbra, gyorsabbra, ott dd-vel mentés, majd visszaírás, és tökéletesen megy, semmi gond nem volt.

Hozzászólások

durva, h keptelen voltal a kepeket normalisan lekicsinyiteni.

Nem annyi a lényeg az ilyen (soft)RAIDes alaplapoknál, hogy tudnak bootolni a tömbről? (mielőtt átadnák az üzemet az OSnek)

Software is like sex, it's better with a penguin. :D (r)(tm)(c) آكوش

hát tudnak ilyet is, az igaz, hogy most ez valakinek lényeges szempont-e vagy sem, az egy másik kérdés. (pl. a fent linkelt topicban ez nem szempont, ott csak adattárolásra használják a tömböt.)
itt most én csak azt szerettem volna szemléltetni, hogy nem dől össze a világ, ha netán meghal az alaplapunk, ahogy azt sokan képzelik.

Jó kis leírás.. Én anno azt néztem meg, hogy az alaplapi (Nvidia nForce 720D), vagy a low-end PCI-os raid-controllerek (tipikusan DeLock szutyik) sebessége a jobb e.. Mint kiderült az alaplapi kb ~30%-al jobb teljesítményt tudott kihozni, mint a low-end társa (én mondjuk ezen meglepődtem). Tekintve, hogy szinte már minden alaplapon van ilyen típusú raid controller, így én arra jutottam, hogy a low-end raid controllerekbe nem éri meg befektetni, hacsak nem extra portokat akarunk a gépbe.
____________________________________
Az embert 2 éven át arra tanítják hogyan álljon meg a 2 lábán, és hogyan beszéljen... Aztán azt mondják neki: -"Ülj le és kuss legyen!"..

hát pci-os kártyánál ez nem is csoda, a pci busz már egyetlen modern (120-150MB/s) lemezt sem bír kiszolgálni, nemhogy kettőt vagy többet.
az egyik-alaplapi-sata-vezérlő-döglött intel-dell alaplapos gépünkben egy pci-os promise tx3200 vagy 2300 vagy milyen kártya van, hát hiába van rajta két gyors vinyó raid0-ban, szánalmasan lassú az egész.

Én spec pont erre voltam anno kíváncsi. Ugye egy normális RAID karinál a kártyán lévő chip vezérli a diszkek közötti adatmozgatást (meg a cache-et is, de az most irreleváns), és csak akkor küld a PCI busz felé adatot, ha arra tényleg szükség van ( adat beolvasása memóriába pl )..
Viszont mint mondtad is itt pont az a szitu állt elő, hogy a hülye kártyája a PCI buszon oda-vissza megtáncoltatja az adatot, így meg persze, hogy lassabb lesz az egész, mint egy alaplapi integrált vezérlő, amely viszont direktben de össze van kötve a PCI-E busszal, illetve -az én általam használt alaplap esetén - a Hyper Transport által a CPU-val (Utólag már persze logikus)
____________________________________
Az embert 2 éven át arra tanítják hogyan álljon meg a 2 lábán, és hogyan beszéljen... Aztán azt mondják neki: -"Ülj le és kuss legyen!"..

ha windowst telepítesz raid0-ra egyik chipseten, akkor az mit lép, ha átteszed másik chipsetre? sztem erre az esetre gondolnak, akkor amikor azt mondják, hogy ugyanolyan chipset (driver) kell hozzá.

sajnos az mdadmnek megfelelője nincs windows alatt (van ugyan dinamikus kötet, de nem települ rá), így ahhoz nem lehet hasonlítani.

hát nem hiszem, hogy arra gondolnak, hogy a windows mit szól, amikor itt a hupon is szidják az alaplapi raid megoldást és a dmraid-et és linux szoft raidet ajánlanak helyette... :)
mindegy, a lényeg, hogy semmilyen raid nem problémamentes, és a rendszeres backup mellett nem árt az sem, ha az ember képben van, hogy mit csináljon, hová nyúljon, ha bármi gáz van. mert gáz az lesz, az tuti. és szerintem a dmraid egy nagyon jó kis cucc, ha pl. adatmentés szükséges. nem kell kétségbe esni okvetlenül... erről szólt volna ez a bejegyzés.