Standardni RAID nivoi

S Vikipedije, slobodne enciklopedije

RAID predstavlja skup fizičkih diskova koje operativni sistem vidi kao jedan logički uređaj. RAID je ranije predstavljao redudantan niz jeftinih diskova (inexpensive) a onda je preimenovan u redudantan niz nezavisnih diskova (independent). Podaci u RAID-u su distribuirani preko fizičkih uređaja. RAID koristi tehnike deljenja podataka na trake, preslikavanja i parnosti.

Deljenje podataka na trake (data striping) predstavlja segmentaciju logički sekvencijalnih podataka, tako da se segmenti konkurentno upisuju na više fizičkih uređaja (diskova u RAID-u), po kružnom dodeljivanju. Ovo je korisno kada procesor može da čita ili upisuje podatke brže nego što jedan disk može da ih preda ili primi. Dok se podatak prenosi sa prvog diska, drugi disk može da pronalazi sledeći segment.

  • Prednosti: performansa i propustljivost. U nekim konfiguracijama RAID-a (RAID 5 sa diskom za parnost) ako jedan disk otkaže i obori sistem, podaci mogu da se obnove koristeći druge diskove u nizu.
  • Mane: u nekim konfiguracijama RAID-a (RAID 0) ako jedan disk otkaže, ta datoteka i svi ostali podaci, biće izgubljeni, zato što su upisani po delovima, podeljeni na više diskova u okviru RAID-a.

RAID 0[uredi | uredi izvor]

RAID 0

RAID 0 jednako deli podatke na trake preko svih diskova (dva ili više). Deljenje podataka na trake se vrši po kružnom dodeljivanju i pozicioniranje diskova je paralelno. RAID 0 nema redudantnosti i koristi se za povećavanje brzine odnosno performanse. Višestruki zahtevi za podacima verovatno nisu na istom disku.

Može se koristiti samo da bi se od više manjih fizičkih diskova napravilo manje većih virtuelnih diskova ali se RAID 0 uglavnom koristi kod igračkih sistema, gde integritet podataka nije toliko bitan. Sa ovim RAID-om dobitak na performansi je minimalan.

RAID 0 može da se pravi od diskova različitih veličina, ali prostor za skladištenje koji nizu dodaje svaki disk je ograničen veličinom najmanjeg diska. Primer: diskovi su od 750GB i 1TB. Veličina RAID-a će biti 1500GB (2 puta po 750GB).

Pouzdanost RAID-a 0 jednaka je prosečnoj pouzdanosti svakog diska, podeljenoj brojem diskova u skupu.

Performansa[uredi | uredi izvor]

RAID 0 se takođe koristi i računaskim sistemima za igranje igara gde se zahteva bolja performansa i gde integritet podataka nije toliko bitan. Međutim, u praksi su igre pokazale da su dobici performanse RAID-a 0 minimalni, sa izuzetkom nekih desktop aplikacija.[2][3] Postoji artikal koji je proverio ove tvrdnje i zaključuje: "Deljenje podataka na trake ne povećava performansu uvek (u neki određenim situacijama će čak biti sporiji od ne-RAID sistema), ali u većini slučajeva daje značajno poboljšanje u performansi."[1]

RAID 1[uredi | uredi izvor]

RAID 1

Kod RAID-a 1 se redudantnost postiže jednostavnim dupliranjem svih podataka. Koristi se stratifikacija podataka, kao i u RAID-u 0, ali u ovom slučaju svaka logička traka je preslikana na dva posebna fizička diska, tako da svaki disku nizu ima svoj disk - odraz u ogledalu (mirror) koji sadrži iste podatke. RAID 1 takođe može da se implementira i bez deljenja podataka na trake mada je to manje uobičajeno.

Prednosti:

  • Zahtev za čitanje može da se opsluži pomoću bilo kog od dva diska koji sadrže tražene podatke, koji ima minimalno vreme pozicioniranja plus rotaciono kašnjenje.
  • Zahtev za upisivanje traži da obe odgovarajuće trake budu ažurirane, ali to može da se uradi paralelno. Prema tome, performansu upisivanja diktira sporije od dva upisivanja (odnosno, ono koje obuhvata veće vreme pozicioniranja, plus rotaciono kašnjenje). Međutim, nema "kazne upisivanja" kod RAID-a 1.
  • Oporavak od otkaza je jednostavan. Kada uređaj otkaže, podacima odmah može da se pristupi na drugom uređaju.

Nedostaci:

  • Cena. RAID 1 zahteva dvostruki prostor na diskovima za logički disk koji podržava. Zbog toga se konfiguracija ograničava na uređaje koji skladište sistemski softver i podatke, kao i druge kritične datoteke. U tim slučajevima, obezbeđuje se rezervna kopija u realnom vremenu za sve podatke, pa u slučaju otkaza diska, svi kritični podaci su i dalje odmah raspoloživi.

Primer pouzdanosti RAID-a 1:

Dva identična diska sa nedeljnom verovatnoćom otkaza od 1:500. Pod pretpostavkom da se neispravni diskovi zamenjuju nedeljno, verovatnoća otkaza cele instalacije je 1:250000 (verovatnoća otkaza RAID-a 1 u celini je proizvod verovatnoća otkaza oba diska).

Performanse[uredi | uredi izvor]

Pošto svi podaci postoje u dve ili više kopija, svaka sa svojim zasebnim hardverom, performansa čitanja raste linearno sa brojem kopija. RAID 1 niz od po dva diska može da čita na dva različita mesta u isto vreme, mada većina implementacija RAID-a 1 ovo ne radi. [2]

Da bi se maksimizovali dobici performanse RAID-a 1, preporučuju se da se koriste nezavisni kontroleri diskova, jedan za svaki disk. Neki ovakvu praksu nazivaju splitting ili duplexing (dva niza diskova) ili multiplexing(nizovi sa više od 2 diska). Prilikom čitanja, može se nezavisno pristupiti i jednom i drugom disku i zahtevani sektori se mogu deliti jednako po diskovima. Za normalnu sliku dva diska, ovo bi, u teoriji, dupliralo brzinu prenosa prilikom čitanja. Ovo očigledno vreme pristupa nizu bi bilo duplo manje nego vreme pristupa jenom disku. Za razliku od RAID-a 0, ovo bi važilo za sve paterne, kao i za podatke koji su dostupni na svim diskovima. U praksi, potreba da se pomere diskovi u sledeći blok (da bi preskočili blok koji je već bio pročitan od strane drugih diskova), može efektivno ublažiti prednost brzine za sekvencijalan pristup. Performansa čitanja se može dodatno poboljšati dodavanjem diskova slici. Mnogi stariji IDE RAID-1 kontroleri čitaju samo sa jednog diska u paru, tako da njihova performansa čitanja je jedna performansi čitanja jednog diska. Neke stariji RAID 1 implementacije čitaju oba diska istovremeno da bi poredili podatke i detektovali greške. Detekcija grešaka i ispravljanje istih na modernim diskovima čiti ovo manje korisnim u okruženjima koja zahtevaju normalnu pristupačnost. Prilikom pisanja, niz se ponaša kao jedan disk, i sve slike moraju biti upisane sa podacima. Ovo su slučajevi sa najboljom performansom i optimalnim paternima za pristup.

RAID 2[uredi | uredi izvor]

RAID 2

RAID 2 i RAID 3 koriste paralelnu tehniku pristupa. U nizu sa paralelnim pristupom, svi diskovi članovi učestvuju u izvršenju svakog ulazno-izlaznog zahteva. Kod RAID-a 2 diskovi su sinhronizovani.

Kao i kod drugih RAID-ova, koristi se deljenje podataka na trake. U slučaju RAID-a 2 i 3, trake su veoma male. Najčešće veličine jednog bajta. Kod RAID-a 2 proračunava se kod za ispravljanje grešaka nad odgovarajućim bitovima na svakom disku sa podacima. Ti bitovi koda se skladište na odgovarajućim pozicijama na višestrukim diskovima za parnost. Za ispravljanje grešaka se koristi Hamingov kod, koji ispravlja jednostruke greške i detektuje dvostruke greške bitova.[3][4]

Iako RAID-2 zahteva manje diskova od RAID-a 1, on ima mnogo redudantnosti i veoma je skup. RAID 2 bi mogao da bude efikasan izbor samo u okruženju u kome se pojavljuje mnogo grešaka. Imajući u vidu pouzdanost pojedinačnih diskova i njihovih uređaja, RAID 2 se ne implementira.

RAID 3[uredi | uredi izvor]

RAID 3

Ogranizacija RAID-a 3 je dosta slična organizaciji RAID-a 2. Razlikuju se u tome što, bez obzira na to koliko je velik niz diskova, RAID 3 ima samo jedan redudantan disk. Umesto koda za ispravljanje grešaka, proračunava se jednostavan bit parnosti za svaki skup odgovarajućih bitova ili bajtova.

Redudantnost[uredi | uredi izvor]

Podaci na disku koji otkaže mogu da se rekonstruišu iz "preživelih" podataka i informacija o parnosti. Rekonstrukcija podataka je vrlo jednostavna. Ako imamo niz od 5 uređaja u kome diskovi od X0 do X3 sadrže podatke, a X4 je disk za parnost, onda se parnost za i-ti bit izračunava na sledeći način:

Recimo da je uređaj X1 otkazao. Ako dodamo obema stranama prethodne jednačine, dobijamo:

Zaključujemo da se sadržaj svake trake podataka na disku X1 može obnoviti iz sadržaja odgovarajućih traka sa ostalih diskova iz niza. Ovaj princip važi za RAID nivoe od 3 do 6.

Performansa[uredi | uredi izvor]

RAID 3 može da dostigne velike brzine prenosa jer su podaci izdeljni na veoma male trake. Svaki ulazno-izlazni zahtev obuhvata prenos podataka sa svih diskova sa podacima. Poboljšanje performanse se posebno primećuje kod velikih prenosa. Samo jedan ulazno-izlazni zahtev može da se izvrši u trenutku što znači da performansa trpi gubitke u okruženju orijentisanom na transakcije.

RAID 4[uredi | uredi izvor]

RAID 4

RAID nivoi od 4 do 6 koriste tehniku nezavisnog pristupa. To znači da svaki disk radi nezavisno, tj. da se zasebni ulazno-izlazni zahtevi mogu zadovoljavati paralelno. Zbog toga je ovaj nivo RAID-a dobar kod velike učestalosti ulazno-izlaznih zahteva.

Trake podataka su relativno velike (na blokovskom su nivou). Parnost bit po bit se računa preko traka na svakom disku i skladišti se na disku za parnost.

U primeru sa slike, zahtev za čitanje bloka A1 će obraditi disk 0. Ako se u isto vreme izda zahtev za čitanje bloka B1, zahtev će morati da sačeka, ali bi se zahtev za čitanje B2 mogao obraditi na disku 1 u vreme čitanja bloka A1.

RAID 5[uredi | uredi izvor]

RAID 5

RAID nivoa 5 je dosta slično organizovan kao i RAID nivoa 4. Ralika je u tome što RAID 5 raspodeljuje trake za parnost po svim diskovima. Uglavnom je podela po šemi sa kružnim dodeljivanjem. Raspodelom traka za parnost po svim uređajima se izbegava potencijalno usko grlo koje se nalazi u RAID-u 4.

RAID 5 se obično koristi u mrežnim serverima.

RAID 6[uredi | uredi izvor]

RAID 6 indentičan RAID-u 5 osim što ima drugi blok bita barnosti

RAID 6 proširuje RAID 5 tako što ima jedan blok bita parnosti više i time koristeći deljenje podaka na blokove sa dva bloka bitova parnosti podeljena na sve diskove.

Kod RAID-a 6 se vrše dva različita proračuna parnosti i skladište se u zasebnim blokovima na različitim diskovima. Zbog toga se niz diskova RAID-a 6, čiji korisnički podaci zahtevaju N diskova, sastoji od N+2 diskova.

Šema RAID-a nivoa 6 je ilustrovana na slici 1 "RAID 6". P i Q predstavljaju dva različita algoritma za proveru podataka. Jedan je proračun ekskluzivnog-ILI koji se koristi u nivoima RAID 4 i 5, a drugi je nezavistan algoritam za proveru podataka. To omogućava da se obnove podaci čak i ako otkažu dva diska koji sadrže korisničke podatke.

Da bi se izgubili podaci u RAID-u 6 potrebno je da u intervalu srednjeg vremena za popravku (MTTR) otkažu čak 3 diska, što znači da RAID 6 obezbeđuje veoma visoku raspoloživost podataka. Sa druge strane, RAID 6 ima značajno kažnjavanje upisivanja zato što svako upisivanje utiče na dva bloka parnosti.

RAID 6 se pretežno koristi u serverima baza podataka, serverima datoteka, sistemima za rezervne kopije i velikim okruženjima virtuelizacije, gde su visoka pouzdanost podataka i zaštita od višestrukih kvarova na diskovima od ključne važnosti.

Performansa[uredi | uredi izvor]

RAID 6 ne plaća penal za operacije čitanja ali plaća penal za operacije pisanja zbog gorenavedenih proračuna bitova parnosti. Performansa varira značajno u zavisnosti od toga kako je RAID 6 implementiran u poizvođačkoj arhitekturi skladištenja - u softveru, firmveru ili koristeći firmver i specijalizovane ASIC-je za intenzivne proračune bitova parnosti. Može biti brz kao RAID 5 sistem sa jednim diskom manje (istim brojem diskova za podatke).[5]

Implementacija[uredi | uredi izvor]

Po SNIA-i (Storage Networking Industry Association), definicija RAID-a 6 je: "Od svake forme RAID-a koja nastavlja da izvršava zahteve za čitanje i pisanje do svih virtuelnih diskova RAID nizova u prisustvu bilo kog od dva konkurentna otkaza diskova. Nekoliko metoda, uključujući i dvostruku proveru proračuna podataka bitova parnosti i "Reed-Solomon" korekciju grešaka, ortogonalnu proveru podataka bitova parnosti i dijagonalnu parnost bitova, se koriste radi implementiranja RAID nivoa 6.""[6]

Proračuni parnosti[uredi | uredi izvor]

Dva različita "sindroma" moraju da se proračunaju da bi se dozvolio otkaz jednog od dva diska. Jedan od njih, P (na slici) može biti jednostavna NILI funkcija podataka sa traka, kao kod RAID-a 5. Drugi, nezavisni "sindrom" je komplikovaniji i zahteva pomoć matematičke teorije polja.

Da bi se izborili sa ovim, uvodimo Galoisovo polje, , kao , gde je za pogodan neuništiv polinom stepena . Deo podataka se može zapisati kao u bazi 2 gde je svaki ili 0 ili 1. Ovo je izabrano da odgovara elementu u Galoisovom polju. Neka odgovara trakama podataka diskova šifrovanih kao elementi polja u ovom slučaju (u praksi bi verovatno bili slomljeni na deliće veličine bajtova). Ako je neki generator polja i ako označava dodatak u polju dok konkatenacija označava multiplikaciju, onda i mogu biti proračunati kao što sledi ( označava broj podataka na disku):

Za računarkog naučnika, dobar način razmišljanja je da predstavlja NILI operaciju nad bitovima i da je akcija linearnog povratka šift registra na delovima podataka. Zbog toga, u gorenavedenoj formuli,[7] izračunavanje P je samo NILI funkcija svake trake. Izračunavanje Q je NILI šiftovane verzije svake trake.

Matematičku, generator je element polja tako da je različito za svako nenegativno koje zadovoljava .

Ako se izgubi jedan disk podataka, podaci se mogu ponovo izračunati iz P kao kod RAID-a 5. Ako se izbuge dva diska podataka ili disk podataka i disk koji sadrži P, onda se podaci rekonstruišu iz P i Q ili samo iz Q, odnosno, koristeći kompleksniji proces. Određivanje detalja je veoma teško sa teorijom polja. Pretpostavimo da su i izgubljene vrednosti sa . Koristeći ostale vrednosti iz , konstante i se mogu pronaći tako da i :

Množenjem obe strane jednačine za po i dodavanjem na prethodnu jednačinu dobijamo , odnosno rešenje za , koje se može iskoristiti za izračunavanje .

Izračunavanje Q je zahtevno za procesor u poređenju sa jednostavnošću P. Zbog toga RAID 6 implementacija u softveru će imati značajniji efekat na sistemsku performansu i hardversko rešenje će biti kompleksnije.

Nestandardni RAID nivoi i Ne-RAID arhitektura[uredi | uredi izvor]

Alternative za gorenavedeni dizajn su ugnežđeni RAID nivoi, nestandardni RAID nivoi i Arhitektura Ne-RAID diskova. Ne-RAID arhitektura diskova u sebi sadrži JBOD, spanovanu particiju i MAID.

Reference[uredi | uredi izvor]

  1. ^ de Kooter, Sebastiaan (13. 4. 2015). „Gaming storage shootout 2015: SSD, HDD or RAID 0, which is best?”. GamePlayInside.com. Pristupljeno 2015-09-22. 
  2. ^ „Mac OS X, Mac OS X Server: How to Use Apple-Supplied RAID Software”. Apple.com. Arhivirano iz originala 23. 12. 2007. g. Pristupljeno 24. 11. 2007. 
  3. ^ Vadala, Derek (2003). Managing RAID on Linux. O'Reilly Series (illustrated izd.). O'Reilly. str. 6. ISBN 9781565927308. 
  4. ^ Marcus, Evan; Stern, Hal (2003). Blueprints for high availability (2, illustrated izd.). John Wiley and Sons. str. 167. ISBN 9780471430261. 
  5. ^ Faith, Rickard E. (13. 5. 2009). „A Comparison of Software RAID Types”. 
  6. ^ „Dictionary R”. Storage Networking Industry Association. Pristupljeno 24. 11. 2007. 
  7. ^ Anvin, H. Peter (21. 5. 2009). „The mathematics of RAID-6” (PDF). Pristupljeno 4. 11. 2009. 

Spoljašnje veze[uredi | uredi izvor]