1. Noțiuni introductive
Încă de la primele calculatoare suportul de memorare a informației
a fost o preocupare permanentă. Calitățile și performanțele acestuia
au constituit adesea criteriu de judecată cu pondere importantă atât
pentru lumea specialiștilor, cât și pentru cumpărătorii (avizați)
de tehnică de calcul. Progresul uluitor din lumea calculatoarelor
este de fapt progresul tuturor elementelor de bază ale acestei lumi.
Iar hard discurile constituie astăzi un element de referință al domeniului.
Articolul acesta prezintă un aspect al progresului în acest domeniu,
acela realizat prin ariile de discuri.
Una dintre metodele prin care datele sistemelor de calcul pot fi
accesate mai repede este aceea prin care se renunță la varianta single
disk în favoarea multi-spidle volume, adică a utilizării a mai
multor discuri aflate pe aceeași axă. Această tehnică permite accesarea
simultană a datelor cu ajutorul a două (sau mai multor) brațe de citire
/scriere, teoretic micșorând timpul de acces. Partiția sistem rezultată
este folosită de aplicație ca și cum ar fi o singură partiție logică.
De fapt, în mod fizic, partiția sistem este împărțită pe discurile
fizice existente, dar acest lucru este transparent oricărei aplicații.
Această tehnică a dus la creșterea performanțelor intrărilor/ieșirilor,
dar are dezavantajul că dacă un disc, care este folosit pentru a crea
un volum virtual, cade întreaga informație de pe acest volum virtual
se pierde.
Pentru a depăși inconvenientele descrise mai sus a fost dezvoltat
conceptul RAID. Termenul de RAID (Redundant Array of Inexpensive Disks)
a fost folosit pentru prima dată la începutul anilor '80 de către
F.D. Lawlor, dar el a fost popularizat cu adevărat de către un grup
de oameni de știință, format din David A. Patterson, Garth Gibson
și Randy H. Katz, toți de la Universitatea Berkeley din California,
care au publicat un articol intitulat A case for Redundant Arrays
of Inexpensive Disks (RAID), în care defineau cinci modele de arii
de discuri, cunoscute ca RAID Levels 1-5. Conceptul RAID implică trei
concepte ale stocării și recuperării datelor:
Zonarea discului;
Performanță ridicată;
Redundanța datelor.
Aceste trei componente sunt combinate în mai multe feluri pentru
a forma diferitele nivele RAID. Nivelele RAID reprezintă toate arhitecturi
de arii de discuri care memorează informație redundantă despre datele
utilizatorilor și pot regenera aceste date în eventualitatea defectării
unei singure unități de disc. Totuși, este important de înțeles că
redundanța asupra datelor furnizată prin aceste RAID-uri este numai
o parte a soluției totale de memorare tolerantă la defectări pe discuri.
RAID-urile asigură utilizatorului posibilitatea de a opta pentru
soluții care pot varia foarte mult în gama raporturilor preț/performanță
și din punctul de vedere al disponibilității. Astfel, spre exemplu,
RAID 1 (cunoscut și sub denumirea de oglindire (mirroring)) furnizează
cea mai ridicată performanță din punctul de vedere al redundanței
datelor, dar cu costul cel mai ridicat, deoarece toate datele sunt
duplicate, acest lucru necesitând de două ori mai mult spațiu pe disc.
Nivelele 1- 5 asigură disponibilitatea continuă a datelor, chiar în
eventualitatea defectării unei singure unități de disc, prin regenerarea
datelor utile din datele redundante. Totuși, din cauza operațiilor
de intrare/ieșire suplimentare, cerute pentru a regenera datele memorate
pe unitatea de disc defectată, performanța este mai scăzută pe timpul
operațiilor de restabilire.
2. Caracteristicile principale ale tipurilor de arii de discuri
2.1. RAID 0: DISK STRIPPING
RAID 0 nu este o arhitectură RAID propriu-zisă, deoarece ea nu asigură
nici o redundanță a datelor. Ea este utilizată doar pentru a maximiza
performanța la lucrul cu discurile hard. În această organizare de
arii de discuri neredundante, datele sunt întrețesute (stripping)
în mod secvențial pe mai multe discuri, care sunt tratate ca un singur
disc virtual sau volum (de obicei 4 discuri = volum). Câteva implementări
RAID 0 utilizează această tehnică de întrețesere, prin divizarea volumelor
în felii și scrierea datelor în felii consecutive, localizate
fizic pe fiecare disc din cadrul ariei de discuri. Mărimea uzuală
a feliilor este definită de utilizator și ar putea fi, de exemplu,
de 512 sectoare, dimensiunea uzuală a sectoarelor putând fi, de exemplu,
de 512 octeți. Operațiile de citire/scriere au loc în paralel, de
pe/pe toate discurile aflate în volum. Utilizând această tehnică de
întrețesere se obține o rată de transfer a datelor foarte ridicată,
îmbunătățindu-se în felul acesta și performanța efectivă a sistemului.
Totuși RAID 0, neoferind nici o redundanță a datelor, în eventualitatea
defectării unui singur disc al ariei, datele care se găsesc pe acel
disc nu mai pot fi regenerate și deci pot fi considerate ca pierdute.
Pentru acest motiv RAID 0 nu este utilizat în aplicațiile de înaltă
disponibilitate. O reprezentare a modului în care sunt distribuite
blocurile de date într-o configurație RAID 0 este arătată în fig.
Repartiția blocurilor de date.
2.2. RAID 1: DISK MIRRORING
Implementarea RAID 1 folosește oglindirea (mirroring) datelor
pentru a asigura redundanța. Tehnica crează și menține pe discuri
separate, două sau mai multe copii ale acelorași date, fiecare dintre
copii constituindu-se ca o imagine în oglindă a celeilalte. Comparativ
cu alte nivele de arii de discuri, RAID 1 poate scădea performanța
generală a sistemului deoarece fiecare scriere pe disc trebuie să
fie efectuată de n ori unde n este numărul de copii. Performanța
în cazul citirii este însă mult îmbunătățită deoarece cererile de
citire sunt trimise simultan controlerelor de discuri ale tuturor
copiilor. Discul care este capabil să răspundă primul cererii de citire
va returna datele sistemului. Sistemele de operare (în general de
tip UNIX) ale sistemelor de calcul tolerante la defectări oferă însă
un alt tip de RAID 1, prin intermediul unei componente software numită
Logical Volume Manager. Această componentă crește performanța sistemului
oferind posibilitatea scrierii în paralel pe toate copiile, fără a
se mai aștepta ca scrierea pe o copie să se facă cu succes și apoi
să se altereze conținutul altei copii. Comparativ cu scrierea secvențială,
această metodă este mai puțin sigură, dar realizează o creștere semnificativă
a performanței la scriere. Deoarece RAID 1 asigură redundanța datelor
de 100%, ea este cea mai scumpă implementare dintre tipurile de arii
de discuri, dar asigură și cea mai mare disponibilitate a datelor
prin utilizarea celui mai mic număr de discuri în configurația. În
fig. Repartiția blocurilor de date este arătat modul cum sunt repartizate
datele într-o configurație RAID 1.
2.3. RAID 2: PARALLEL ARRAY WITH ERROR CORECTION CODE RAID 2
distribuie datele pe mai multe discuri cu întrețesere la nivel de
bit, iar în cadrul ariei de discuri sunt utilizate și discuri de verificare.
Pentru a asigura detecția și corecția erorilor, scrierea și citirea
datelor se face utilizând tehnici de codificare bazate pe coduri corectoare
de erori de tip Hamming. Aceste tehnici fac însă necesară utilizarea
unor grupuri mari de discuri pentru a asigura consistența (4 discuri
de verificare pentru 10 discuri de date, sau 5 discuri de verificare
pentru 25 de discuri de date). Un alt dezavantaj al lui RAID 2 este
acela că pentru fiecare operație de intrare/ieșire trebuie să fie
accesate toate discurile deoarece datele sunt scrise sau citite la
o singură mișcare paralelă a tuturor capetelor de acces la discuri.
Deoarece această tehnică de codificare este foarte complexă și mai
scumpă, RAID 2 este mai puțin interesant pentru mediul comercial,
în comparație cu RAID 3.
2.4. RAID 3: PARALLEL ARRAY WITH PARITY
Spre deosebire de RAID 2, RAID 3 utilizează un singur disc dedicat
pentru a memora informația de paritate (nu cod corector de erori,
ci .SAU EXCLUSIV. asupra datelor), celelalte discuri din cadrul ariei
de discuri fiind utilizate pentru a memora informația utilă, care,
ca și la RAID 2, este împrăștiată pe toate discurile ariei. Dacă
unul dintre discurile cu date se defectează, se poate utiliza discul
de paritate pentru a reconstitui datele. Dat fiind faptul că transferul
datelor de pe/pe un disc individual se face la dimensiunile unor sectoare
unitare, cantitatea minimă de date care este citită/scrisă într-o
operație de intrare/ieșire este egală cu numărul de discuri din arie
înmulțit cu numărul de octeți ai sectorului discului. Aceasta este
cunoscută ca unitate de transfer. Deoarece capetele de acces se mișcă
în paralel în aria de discuri la un moment de timp dat, poate fi activă
numai o singură cerere de intrare/ieșire. Acest lucru contribuie la
o foarte bună rată de transfer a datelor atunci când datele accesate
sunt dispuse secvențial pe disc, dar face ca RAID 3 să fie destul
de nepractic pentru aplicații cu date dispuse aleator în aria de discuri.
În același timp, rata de transfer a datelor este foarte bună atunci
când dimensiunile blocurilor de date care se scriu sau citesc sunt
apropiate de mărimea unității de transfer, dar ea scade cu atât mai
mult cu cât blocurile transferate sunt de dimensiuni mai mici. Spre
deosebire de RAID 1 care datorită redundanței de 100% ocupa o suprafață
mare de discul hard, cu o redundanță de numai 20% RAID 3 asigură o
relativ bună disponibilitate a datelor și este mult mai economic.
Deoarece datele pot fi reconstituite, în cazul defectării unui singur
disc, prin utilizarea discului de paritate, RAID 3 oferă și facilitatea
înlocuirii la cald a unui disc și restabilirea datelor după defectare.
În fig. Repartiția blocurilor de date este prezentat modul în care
sunt repartizate blocurile de date și de paritate într-o configurație
RAID 3.
2.5. RAID 4: STRIPED ARRAY WITH PARITY
La RAID 4 datele se distribuie, ca la RAID 3, pe mai multe discuri
de date și pe un disc de paritate. Doar că în acest caz datele sunt
scrise fiecare bloc pe un singur disc, astfel încât la operația de
citire este implicat doar un singur disc. Deoarece discurile nu se
mai utilizează în paralel, aria de discuri poate prelucra mai multe
cereri deodată. Cerințele mai mici pot fi executate astfel mai repede.
Deoarece discul de paritate este implicat însă în toate operațiile
de scriere, el devine un element de scădere a performanței, deoarece
paritatea, pentru fiecare operație de scriere, se calculează având
în vedere și informația existentă pe celelalte discuri, în sectoarele
de date asociate. Din acest motiv RAID 4 este considerat ca nepractic.
În fig. Repartiția blocurilor de date este prezentat modul în care
sunt repartizate blocurile de date și de paritate într-o configurație
RAID 4.
2.6. RAID 5: STRIPED ARRAY WITH DISTRIBUTED PARITY
La RAID 5 datele se distribuie, ca la RAID 4, pe mai multe discuri
de date și pe un disc de paritate, iar datele sunt scrise fiecare
bloc pe un singur disc, astfel încât la operația de citire este implicat
doar un singur disc. Însă RAID 5 nu are dedicat un disc special numai
pentru informația de paritate ci distribuie pe toate discurile ariei
informația de tip date și informația de paritate. Și în cazul lui
RAID 5 sunt permise accese concurente multiple la dispozitivele din
cadrul ariei de discuri, fiind satisfăcute astfel cereri concurente
multiple de intrare/ieșire. Acest lucru crește mult performanța transferurilor
pentru aceste arii de discuri și le face cele mai potrivite și utile
în cazul lucrului cu blocuri de mărime mică, sau cu datele dispuse
în mod aleator pe discuri. În cazul lui RAID 5 ciclul de scriere se
realizează în 3 pași:
Pasul 1: Se citește paritatea existentă și data ce urmează
a fi schimbată;
Pasul 2: Se scade vechea dată din valoarea parității existente
și se memorează această paritate corectată într-un buffer;
Pasul 3: Se calculează noua paritate pe baza valorii din buffer
și a valorii noii date de memorat și se scriu pe discurile corespunzătoare
noua dată și paritatea actualizată.
În fig. Repartiția blocurilor de date este prezentat modul în care
sunt repartizate blocurile de date și de paritate într-o configurație
RAID 5.
2.7. CRITERII DE ALEGERE A UNEI CONFIGURAȚII RAID
Alegerea uneia dintre configurațiile RAID este direct dependentă
de cerințele funcționale ale sistemului din care aria de discuri va
face parte. Dacă în cadrul sistemului se urmărește realizarea unei
mari disponibilități a datelor se vor utiliza RAID 1, RAID 3, sau
RAID 5. RAID 3 este cel mai potrivit pentru acele aplicații care utilizează
blocuri mari de date, sau transfer secvențial de date. RAID 5 este
cel mai potrivit pentru acele aplicații care utilizează blocuri mai
mici de date și care nu efectuează un număr mare de scrieri pe disc
(restricție datorată algoritmului de calcul a parității). Acolo unde
se dorește cea mai mare siguranță a datelor se va utiliza RAID 1,
acceptându-se însă și costuri mult mai mari. Dacă nu există cerințe
de înaltă disponibilitate se poate utiliza RAID 0 sau chiar discuri
independente înlănțuite. O schemă logică care ar putea fi utilă este
prezentată în fig. Schema logică de alegere a unei configurații RAID.
3. Configurații și performanțe ale ariilor de discuri.
3.1. NOȚIUNI INTRODUCTIVE
Toleranța la defectări de la nivelul suportului de memorare este
numai unul dintre aspectele care au făcut ca subsistemele RAID să
devină tot mai atractive în anii din urmă. Multe alte caracteristici
ale subsistemelor RAID asigură ele însele redundanță, fiind argumente
în plus în utilizarea ariilor de discuri în sistemele de calcul. În
continuare vor fi prezentate unele dintre acestea.
Evident caracteristica cea mai prețuită este redundanța datelor. Ea
se bazează pe posibilitatea de a grupa logic mai multe discuri în
acel ceva ce este definit ca o unitate logică de memorare. Dacă datele
de pe o unitate de disc devin indisponibile atunci ele pot fi reconstituite
cu ajutorul celorlalte discuri și a discului de paritate, toate componente
ale aceleiași unități logice.
Multe dintre implementările RAID au însă încorporate surse de alimentare
de rezervă, astfel încât dacă sursa activă se defectează să poată
fi asigurată alimentarea prin utilizarea surselor de rezervă.
În subsistemele RAID sunt incluse și ventilatoare de rezervă, care
să poată înlocui la nevoie un ventilator distrus.
Multe dintre subsistemele RAID oferă și facilitatea înlocuirii unui
disc defectat cu unul bun, fără a fi necesar ca pentru aceast lucru
să fie întreruptă alimentarea subsistemului. După înlocuire, pe discul
înlocuitor se reconstituie datele corecte, folosind pentru aceasta
discul de paritate și celelalte discuri de date, componente ale unității
logice.
Ariile de discuri oferă și un potențial de transfer al datelor foarte
ridicat, beneficiind de capacitatea deosebită a controllerelor de
intrare/ieșire diferențiale de tip Fast/Wide SCSI-2, ale sistemului
de calcul la care aria de discuri este conectată. În general, RAID
permit 3 configurații tolerante la defectări:
cu un singur controller;
cu două controllere, dintre care unul în rezervă;
cu două controllere, amândouă active.
Fiecare configurație adaugă un nou nivel de tolerare a defectelor,
față de nivelul anterior.
3.2. CONFIGURAȚIA CU UN SINGUR CONTROLLER
Toleranța la defectări în configurația cu un singur controller
este furnizată de către următoarele caracteristici:
redundanța datelor (RAID 1, 3, și 5);
redundanța surselor de alimentare;
redundanța ventilatoarelor de răcire;
unitătile de discuri pot fi schimbate când sistemul este operațional;
mentenanța concurentă asupra surselor de alimentare, sistemului de
răcire și modulelor de discuri.
Controllerul de arie de discuri, în configurația cu un singur controller,
este conectat la un controller de intrare/ieșire SCSI-2, de mare performanță.
În fig. Configurația tolerantă la defectări cu un singur controller.
este prezentată o configurație de acest gen.
3.3. CONFIGURAȚIA CU DOUĂ CONTROLLERE, DINTRE CARE UNUL ÎN REZERVĂ
În configurația cu două controllere, dintre care unul în rezervă,
cele două controllere sunt utilizate ca o pereche activ/rezervă.
Controllerul în rezervă rămâne inactiv până când softul de management
al ariei, care rulează pe sistemul gazdă detectează o eroare în primul
controller. Când este detectată această eroare softul va activa controllerul
în rezervă și va comuta în mod automat controlul tuturor unităților
de discuri la acest nou controller. Toleranța la defectări în configurația
cu două controllere, dintre care unul în rezervă, este furnizată de
către următoarele caracteristici:
două controllere în arie;
mentenanță concurentă asupra controllerelor din arie;
redundanța datelor (RAID 1, 3, și 5);
redundanța surselor de alimentare;
redundanța ventilatoarelor de răcire;
unitățile de discuri pot fi schimbate când sistemul este operațional;
mentenanța concurentă asupra surselor de alimentare, sistemului de
răcire și modulelor de discuri.
Cele două controllere ale ariei de discuri, din configurația cu un
două controllere sunt conectate la două controllere de intrare/ieșire
SCSI-2, de mare performanță separate, așa cim se vede în fig. Configurația
tolerantă la defectări cu două controllere, dintre care unul în rezervă.
3.4. CONFIGURAȚIA CU DOUĂ CONTROLLERE ACTIVE
Cea de-a treia configurație tolerantă la defectări include două
controllere active. Fiecare dintre aceste controllere active este
dedicat unor bank-uri specificate de discuri. În eventualitatea
că un controller se defectează, softul de management a configurației
va ruta automat toate cererile de intrare/ieșire spre controllerul
operațional. Cele două controllere ale ariei din configurația cu două
controllere active pot fi atașate la două controllere separate, SCSI-2
de mare performanță, dar mult mai important este faptul că cele două
controllere de arie pot fi atașate la controllere SCSI-2, de mare
performanță, din două sisteme separate. De aceea, toleranța la defectări
din această configurație cu două controllere active furnizează nu
numai toate facilitățile de toleranță la defectări ale lui RAIDiant
Array, ci și cele oferite de abilitatea de a utiliza două procesoare
gazdă. Toleranța la defectări în configurația cu două controllere
active, este deci furnizată de către următoarele caracteristici:
două procesoare gazdă;
două controllere în arie;
mentenanță concurentă asupra controllerelor din arie;
redundanța datelor (RAID 1, 3, și 5);
redundanța surselor de alimentare;
redundanța ventilatoarelor de răcire;
unitățile de discuri pot fi schimbate când sistemul este operațional;
mentenanța concurentă asupra surselor de alimentare, sistemului de
răcire și modulelor de discuri.
Configurația cu două procesoare active, de asemenea, va îmbunătății
puterea subsistemului și de asemenea timpul său de răspuns la intrări/ieșiri,
deoarece fiecare controller manevrează cererile de intrare/ieșire
numai pentru trei bancuri de discuri. În fig. Configurația tolerantă
la defectări cu două controllere active este arătată o configurație
cu două controllere, ambele active.
Tehnologia RAID aduce cu sine o îmbunătățire substanțială a disponibilității,
securității și performanței suportului de memorare al sistemelor de
calcul. Datorată prețului relativ mai ridicat, în momentul de față
ea nu se utilizează în sistemele de calcul de uz curent. Sunt însă
anumite clase de aplicații la care ea se impune ca singura alternativă
rațională. Anii care vin vor impune însă, cu siguranță, tot mai mult
principiile tehnologiei RAID ca lucruri comune în toate sistemele
de calcul .