Što je to RAID?

Veliki broj nas ima otvorenu neku vrstu računa u banci - bilo da se radi o kunskom ili deviznom računu, svaki iznos u plusu nas prilično veseli. Vjerojatno ste svjesni da su se bankovne evidencije stanja računa davno prestale voditi ručno, te da su u međuvremenu taj posao preuzeli kompjutori... ali Vas možda cijelo vrijeme kopka jedno pitanje: sigurnost tih podataka. Naime, kada vi npr. na šalteru banke ili na bankomatu uplatite 100 kuna, ta transakcija se zapisuje na hard disk. Što se događa ako hard disk zakaže? Kako se banka "brani" od takvih slučaja? Vjerojatno bankovni podaci nisu jedini koji bi se trebali "štititi" od gubitaka... tu je i vojska, pošta, policija, tržište dionica...

Netko će reći da (u ovom slučaju) banka radi redoviti backup (sigurnosna "dupla" kopija) i da je sve u redu... Međutim, ako se napravi backup krivih podataka??? Tu sada nastupa RAID... Redundant Array of Independant Disks bi trebalo značiti da se radi o skupini diskova koji zajedno čine jedan sustav na koji se zapisuju podaci, a isti je otporan na greške (koliko može biti) i da svi ti "neovisni" diskovi čine jednu skupinu... Znači, podaci se u toj skupini diskova zapisuju na taj način, da kvar bilo kojeg diska ne uzrokuje gubitak podataka. Kako??? Ima više načina...

  • RAID 0: Prvi na redu, pa več "patka"... Naime, ovaj način "zaštite" podataka uopće ne štiti podatke... RAID 0, ili Striping, je naziv za sustav koji je namjenjen postizanju boljih performansi diskova, ali ne i zaštiti tih podataka... Hard disk je, u pravilu, najsporija karika u računalu, tako da se najčešće računalo može najprimjetnije ubrzati tako da ubrzate hard disk. Kako RAID 0 postiže bolje performanse? Tako što podatke čita (i piše) malo sa jednog, malo sa drugog diska... Uglavnom, performanse hard diska najviše ugrožava proces pomicanja glave za čitanje/pisanje, a trajanje tog procesa se primjenom Stripinga primjetno umanjuje jer dok računalo prima podatke sa prvog diska, drugi za to vrijeme pomiče glave... Što više diskova, performanse su bolje... Nažalost, posljedica kvara/gubitka bilo kojeg diska u RAID 0 polju gubitak je SVIH podataka na svim diskovima - što će reći da povečanjem broja diskova se povečava i broj karika u lancu, a samim time su i podaci više ugroženi... Konkretno: fizički u računalu imate dva hard diska kapaciteta 40 GB. Kada te diskove spojite na RAID kontroler i u njemu konfigurirate tipično RAID 0 polje, Vaš operativni sustav će vidjeti jedan hard disk kapaciteta 80 GB. Svi dikovi u RAID 0 polju moraju biti istog kapaciteta - odn. i nemoraju, ali će se kod kreiranja polja kapaciteti svih diskova svesti na kapacitet onog najmanjeg... dakle, diskovi kapaciteta 10 GB i 30 GB u RAID 0 polju će imati ukupan kapacitet od 20 GB...
  • RAID 1: Ovaj način bi svima nama prvo pao na pamet... Mirroring odn. zrcaljenje je drugi naziv za vrstu zaštite podataka gdje se na dva (ili više) diskova zapisuju isti podaci. Ako jedan otkaže, podaci se sa drugog diska jednostavno mogu vratiti odn. pročitati... Negativna strana ovog sustava je cijena prostora odn. "cijena gigabajta"... Kao kod prethodnog RAID sustava, kapacitet svih diskova bi trebao biti isti, odn. ukoliko diskovi nisu istog kapaciteta uzima se kapacitet najmanjeg u polju. Moram napomenuti da i ovaj RAID sustav isto tako poboljšava performanse hard diskova - barem kod čitanja, jer čita malo sa jednog, malo sa drugog diska - ali to ovisi o koncepciji samog RAID kontrolera... Što se tiće brzine pisanja, ni tu ne mora uvijek bitno odstupati od Stripinga - ovisi o nekim drugim parametrima, ali više o tome u pasusima na kraju ove stranice...
  • RAID 2: Ovaj sustav samo upotrebljava (ECC) kontrolu greške, ali tu kontrolu imaju ugrađeni svi današnji SCSI diskovi pa skoro da uopće nije u uporabi... Štiti podatke samo od greške u zapisu, ali ne i od kvara diska... Detektira samo jednobitne greške... Ignore...
  • RAID 3: Kod ovakvog sustava zaštite bajtovi podataka se "raspršuju" na više diskova, a na jedan (zadnji) se uvijek piše paritet... Što je to paritet? To je jedan podatak koji se dobije jednom određenom kalkulacijom (tzv. XOR metoda, više detalja na kraju stranice)... A što če nam taj paritet? Evo primjera: Na prvom disku imate jedan dio podataka, a na drugom disku drugi dio podataka, dok se na trećem nalazi paritet... Ako otkaže prvi disk, onda podatke možete vratiti tako da u prethodnu kalkulaciju uvrstite paritet i podatke sa drugog diska!!! Naravno, kalkulacija u tom slučaju ide u "drugom smjeru"... Kod ovog sustava je brzina zapisivanje podataka nešto sporija jer se kod zapisivanja uvijek moraju upotrebljavati odn. čekati svi diskovi... RAID 3 je bitno sporiji od RAID-a 1 prilikom čitanja, a pogotovo prilikom pisanja podataka, ali je isto tako financijski prihvatljiviji (manje diskova za istovjetni kapacitet). Za ovakav sustav su Vam potrebna minimalno 3 diska i kapacitet polja se svodi na kapacitet svih diskova zajedno umanjen za kapacitet jednog diska - znači n-1. Konktretno, ukoliko imate 3 diska kapaciteta 40 GB, ukupan kapacitet RAID 3 polja sastavljenog od tih dikova bi bio 80 GB. Da bi dostigli isti taj kapacitet sa RAID-om 1 bi Vam trebalo 4 diska navedenog kapaciteta. Što je više diskova, veća je ušteda.
  • RAID 4: Isto kao RAID 3, samo što se podaci ne raspršuju na diskove (paralelan zapis), nego se puni jedan po jedan disk sa podacima... Naravno, još uvijek jedan disk mora ostati rezerviran za paritet. Za razliku od RAID-a 3 ovaj sustav dolazi do izražaja kada se manipulira sa puno malih blokova podataka... Koliko je RAID 3 rijetko u uporabi, RAID 4 se još rijeđe upotrebljava... Najčešće se upotrebljava, kada je riječ o "paritetnim" RAID poljima, slijedeći RAID sustav...
  • RAID 5: Isto kao RAID 3, ali se paritet ne piše uvijek na isti disk, nego svaki slijedeći put na drugi (slijedeći) disk... Zove se još i Distributed Parity... Dakle, paritet je kod svakog zapisanog bloka podataka raspoređen na drugom disku... Ovo je jedan od popularnijih RAID sustava i drži se da je najoptimalniji kada se uzmu u obrzir svi parametri... Cijena prostora ostaje ista kao kod RAID-a 3 i 4, ali je brzina zapisivanja nešto sporija u odnosu na RAID 1 tako da se uglavnom upotrebljava za particije na kojima su smješteni podaci (dakle, ne aplikacije ili sistemski sadržaj)...
  • RAID 6: Isto kao RAID 5, samo što se za (distribuirani) paritet upotrebljavaju dva diska, a ne jedan. Dakle, dok se kod RAID-ova 3, 4 i 5 smiju pokvariti samo po jedan disk u polju, kod RAID-a 6 se mogu pokvariti dva diska bez gubitka podataka...
  • RAID 7: iliti JBOD (Just a bunch of drives)... Slično kao i RAID 0; nema redudancije (sigurnosti) podataka, ali u ovom slučaju ni performanse nisu bolje... Ovdje jednostavno "udružite" hrpetinu diskova u jedno zajedničko polje (i kasnije, po potrebi, proširujete isto to polje)... 3 diska kapaciteta 10, 20 i 80 GB će ukupno imati kapacitet 110 GB... Zašto? dobro dođe nekada... 8-)
  • RAID 10 (ili RAID 1+0): Strip set of mirrored arrays je kombinacija prva dva RAID sustava... Ako malo razmislite, za ovu kombinaciju morate imati najmanje 4 diska... Koristi se tamo gdje su potrebne peformanske stripinga, sa sigurnošću mirroringa... Za razliku od RAID-a 1+0 gdje su dva diska prvo stavljena u mirror polje, pa onda ta dva polja u stripe, RAID 0+1 (stripe pa mirror) nema logike jer (kad napravite puno kalkulacija i logičkih crteža) su šanse za gubitak podataka i do 8 puta veće od RAID-a 1+0 - zato ga gotovo niti jedan proizvođač kontrolera ne podržava...
  • RAID 50: Logično... minimalno 6 diskova... Prvo se kreiraju dva polja sa po barem 3 diska u RAID 5, pa onda ta dva polja u Stripe... Da li moram objašnjavati?... I kod ovog polja (50) i kod prethodnog polja (10) nema gubitaka podataka čak i kada se pokvare dva diska - po uvjetom da nisu iz istih strip-anih polja... Performanse su u oba slučaja "na nivou"...

Svaki od navedenih sustava ima svoje prednosti i mane, što ih čini podobnima za različite namjene... RAID 0 je pogodan za aplikacije kao što je grafička ili video obrada, RAID 1 je podoban za namjene gdje je važna sigurnost podataka, brzina malih zapisa i niska cijena... To bi bili mali serveri ili npr. aplikacijski serveri... Za backup servere je idealan RAID 4 (sigurnost podataka uz brzo čitanje i brzo zapisivanje velike količine podataka)... Dok se RAID 5 najbolje ponaša kod servera baza podataka... Uglavnom, najčeće se i proizvode kontroleri koji podržavaju RAID-ove 0, 1 i 5... barem kod SCSI baziranih (čitaj: ozbiljnih) servera... Zato sam ta tri sustava i zacrvenio u nazivu - ostale možete čak i zaboraviti...


Možda Vas brine što se događa kada napravite Mirroring polje sa dva ista diska, pa se jedan pokvari, a vi više ne možete nabaviti točno taj model hard diska, nego samo neki drugi koji možda ima par MB manje nego ovaj prethodni... Svi proizvođači RAID kontrolera koriste neku vrstu ograničavanja (tzv. Gigabyte boundery-ja), tako da npr. diskove od 18 GB vidi kao 17.2 GB... tako da nema baš veze koliki točno kapacitet ima sami hard disk... a možete, naravno, staviti u polje i zamjenski disk od 36 GB (umjesto onog od npr. 18 GB) - to čak nekada zna ispasti i jeftinije (kada vrijeme pojede stare diskove)...

Drugi bitan parametar kod definicije RAID polja je i veličina bloka (tzv. block size). Rekli smo da npr. kod RAID-a 0 se podaci malo zapisuju na prvi disk, a malo na drugi... Koliko je to "malo" određuje baš taj parametar... Kod rada sa velikim datotekama bi taj parametar trebao biti veći, a kod rada sa malim datotekama bi valjda onda trebao biti manji... nerijetko je blok od 64kB standardni blok...

Ukoliko mislite "pretjerivati" sa RAID poljima i npr. radi postizanja što veće brzine odlučite staviti 4 diska u Stripe (raid 0), imajte na umu jednu činjenicu... Uzmete neki stvarno brzi disk (trenutno je to recimo WD-ov Raptor SATA na 10k okretaja) koj Vam može osigurati i protok podataka možda i do 70 MB/s... Serial ATA sučelje Vam osigurava 150 MB/s po svakom disku (a recimo da je svaki na svom odvojenom kanalu)... I onda Vi stavite taj kontroler sa priključenim svim tim diskovima u standardni PCI slot (32 bitni, 33 MHz) koji može maksimalno podnijeti 133 MB/s... eto uskog grla... Dakle, sada znate zašto serverske ploče nemaju AGP slot, ali zato imaju one dugačke (duple) PCI slotove koji su 64 bitni (dakle, duplo veći protok podataka po jedinici takta), a nerijetko rade i na 66 MHz... Ako se još uz to zovu i PCI-X onda rade i na 100 ili 133 MHz... Onda je to OK... Dakle, pazite i na takve "sitnice"... Inaće, PCI-X nije isto što i PCI express... možda neki drugi put o tome...

U zadnje vrijeme pojavljuje se dosta (jeftinih) EIDE RAID kontrolera (kao posebnih kartica), i matičnih ploča sa integriranim EIDE ili SATA RAID kontrolerom... Takvi kontroleri uglavnom podržavaju RAID nivoa 0 i 1... Primarni razlog zašto su ti kontroleri bitno jeftiniji od "standalone" kontrolera (oni koji se priključuju u PCI slotove) je to što oni mogu raditi samo sa po jednim diskom po kanalu...

FYI: podaci o definiranim RAID poljima se zapisuju na same diskove, a ne u memoriju kontrolera...

Još da pokušam objasniti dvije skraćenice koje se upotrebljavaju u gornjem tekstu; ECC i XOR... ECC detekcija i korekcija greške se koristi kod RAID 2 sustava (ali često i drugdje)... sistem radi na principu dodatnog (najčešće je to deveti) bita kod slanja podataka sa jednog na drugo mjesto. Neki kontroler nakon slanja podataka od osam bitova pošalje i taj deveti u kojem piše da li je ovaj prethodni podatak paran broj ili neparan. Kada primatelj dobije podatak praćen paritetnim bitom, usporedi ta dva potaka i eventalno zahtjeva ponovno slanje istog podatka... Naglašavam, takav princip uspješno detektira samo jednobitne greške! (To je pametno koristiti kod npr. uporabe dugačnih kablova u računalu gdje EMF smetnje mogu povremeno izazivati probleme u komunikaciji)... XOR (tzv. "ekskluzivni ili") je logička operacija koja se koristi kod generiranja pariteta kod RAID-ova 3, 4, odn. 5... Korištenjem te operacije se mogu i reverzibilno vratiti izgubljeni podaci... Princip je slijedeći:

0 XOR 0 = 0
0 XOR 1 = 1
1 XOR 0 = 1
1 XOR 1 = 0

Sad vi malo razbijajte glavu kako procesor RAID kontrolera zna što gdje staviti kada rikne jedan disk... ali, u biti, to je jako jednostavno... Može se protumačiti na slijedeći način: Ukoliko su dva bita podataka ista, onda je paritet nula, a ukoliko su bitovi podataka različiti, partitet je jedan. Eto...

Hardware Malo o mom software-u i software-u opcenito Nesto o automobilima i auto-moto-tehnici Cijene razgovora, tehnika, crackovi.... Mozda Vi imate nesto sto meni treba... a mozda i ja nesto sto vama treba... Ovdje bi trebalo biti sve ono sto nije pod drugim opcijama Nesto sitno podataka o meni... Popis zanimljivih stranica Kliknite ovdje ako mi zelite poslati e-mail....