In ultima vreme, tot mai multe placi de baza ofera posibilitatea conectarii mai multor HDD-uri in RAID. Aparut in 1987, termenul RAID (Redundant Array of Inexpensive Disks) defineste un mod de utilizare a mai multor discuri ieftine (cu viteza si capacitate reduse) pentru a obtine o performanta comparabila cu a unui drive scump.
La baza conceptului de RAID sta impartirea datelor pe discuri, fiecare dintre ele stocand o cantitate prestabilita (stripe). Discurile sunt astfel concatenate si apar pentru sistem ca un singur disc, dar cu capacitate dubla (la o matrice formata din doua HDD-uri).
Alt criteriu care defineste o matrice RAID, este viteza de transfer a datelor. Mai multi factori influenteaza comportamentul matricei, dar ce este cel mai important, este ca discurile sa fie identice. pentru ca o operatiune de I/O sa fie completa, toate discurile trebuie sa acceseze datele corespunzatoare, cel mai lent fiind cel care va stabili timpul necesar, in final, pentru operatiune (daca discurile sunt diferite).
Initial au fost definite 5 nivele RAID, toate avand ca scop stocarea redundanta si cresterea vitezei.
RAID 0
Este cel mai des intalnit in sistemele moderne, datorita costului redus si al vitezei mari de transfer. Acest mod nu ofera nici un fel de redundanta, in cazul defectarii unui disc, datele fiind iremediabil pierdute. Impartirea datelor pe o matrice RAID 0 se face jumatate pe un HDD, iar cealalta jumatate pe celalalt HDD. Acest mod de impartire se numeste stripping.
Acest tip de matrice se utilizeaza cel mai des in sisteme destinate prelucrarii video, aplicatiilor de pre-pass sau oriunde este nevoie de un transfer foarte bun, fara ca datele sa fie critice.
RAID 1
Este primul nivel RAID care ofera redundanta (mirroring) si este bazat pe scrierea identica a datelor pe doua sau mai multe discuri, aranjate in perechi.. Acest mod ofera redundanta 100%, in cazul unei defectiuni, reconstructia facandu-se automat. In cazul unui RAID 1 cu mai multe perechi, sistemul poate sustine caderea mai multor drive-uri, cu conditia ca acestea sa se gaseasca pe mirror-uri diferite.
Viteza de scriere este egala cu viteza unui singur disc, in schimb viteza de citire fiind de doua ori mai mare, daca discurile sunt conectate la un controller care permite operatii simultane pe mai multe discuri.
Cazul ideal pentru acest tip de matrice este conectarea discurilor din mirror-uri diferite la controllere separate, pentru marirea redundantei (in eventualitatea unei defectiuni la un controller, RAID-ul functioneaza in continuare). Acest mod se numeste duplexing.
Desi costul per GB este destul de ridicat (capacitatea utila este jumatate din cea totala) acest mod este utilizat in servere si statii de lucru entry-level, unde datele au o importanta mare si se regaseste ca facilitate a multor controllere PATA si SATA moderne.
RAID 2
Este un nivel ce utilizeaza coduri Hamming pentru corectia erorilor, construind sume de control (la nivel de byte) pe discuri separate. Tehnologia este similara cu cea utilizata pentru corectarea erorilor in memoria RAM (ECC – Error Correction Control). Costul per GB este foarte mare in cazul unui numar mic de discuri, dar eficienta creste odata cu acesta. Un model de implementare ar putea utiliza 10 discuri pentru date si 4 discuri pentru ECC. Reconstructia se face automat, singura problema fiind inlocuirea discului defect.
Deoarece un controller hardware ar fi foarte specializat si complex, un asemenea echipament nu si-a dovedit eficienta economica pentru a fi implementat ca atare, dar tehnologia ECC este utilizata chiar in controller-ul hard-discului.
RAID 3
Acest nivel imparte informatia la nivel de byte pe un numar de minim 3 discuri. Redundanta este asigurata prin stocarea de sume de control pe ultimul disc, sistemul suportand pierderea unui disc din configuratie. O a doua defectiune, insa, este fatala, datele fiind iremediabil pierdute. Capacitatea utila a acestei matrici este data de marimea celui mai mic hard disc inmultita cu numarul de discuri din configuratie.
Daca viteza de citire secventiala este foarte buna, datele putand fi transferate simultan de pe mai multe discuri, faptul ca sumele de control sunt stocate pe un singur disc (care este accesat la fiecare operatiune I/O) impiedica RAID 3 sa aiba o buna performanta si la scriere. Acelasi motiv, dar si calculul sumelor de control, determina ineficienta in cazul stocarii de date de dimensiuni mici (discurile trebuie sincronizate pentru obtinerea vitezei maxime).
Acest mod este utilizat, de regula, in aceleasi aplicatii ca si RAID 0, pentru citirea / scrierea de date de dimensiuni mari (de exemplu captura si editare video), acolo unde este necesara si siguranta datelor.
RAID 4
Acest mod se deosebeste de nivelul 3 doar prin impartirea datelor in blocuri care sunt apoi stocate pe discuri, sumele de contro, fiind pastrate tot pe un singur disc. Fisierele mai mici decat marimea stabilita a blocului se pastreaza pe un singur disc. Capacitatea de stocare este similara cu cea a nivelului 3, avand nevoie de minim 3 discuri.
Acest nivel nu este orientat catre un anumit segment al pietei si poate fi utilizat intr-un server de fisiere sau de baze de date. Timpul de recuperare a unei defectiuni este destul de mare si, in general, este nevoie de un controller hardware specializat.
RAID 5
Acest nivel imparte informatia in blocuri de marimi prestabilite si stocheaza sumele de control pe toate discurile (avand o buna rata de scriere, mai ales pentru fractiuni mici de informatie). Se foloseste in majoritatea serverelor si statiilor de lucru moderne. Marimea optima a blocului pentru o aplicatie data poate fi gasita prin incercari succesive.
Fara un disc dedicat pentru informatia de verificare, problema limitarii ratei de transfer datorita accesarii la fiecare scriere dispare. Calculul paritatii ramane, insa, o problema.
In cazul defectarii unui disc, timpul de reface a datelor pe un disc nou este relativ bun, dar daca nu este suportata facilitatea hot-swap, computerul respectiv va trebui oprit pentru inlocuire. Chiar si asa, in timpul reconstructiei unui disc, performanta se degradeaza substantial.
Multe sisteme de operare moderne (Linux, Windows 2000 Server, Windows 2003 Server) suporta implementari software ale RAID 5. Toate calculele pentru paritate sunt efectuate de catre procesor, iar in cazul unei defectiuni, operatiunile de I/O sunt de pana la trei ori mai consumatoare de resurse (procesor, memorie).
Avand o performanta medie foarte buna si un cost relativ scazut per GB, RAID 5 este utilizat pentru toate tipurile de transfer (servere de baze de date relationale, servere de fisiere).
RAID 6
Acest model este identic cu nivelul 5, cu exceptia faptului ca se calculeaza si se stocheaza paritate dubla pentru date, deci sunt necesare cel putin patru discuri, performanta scazand datorita calculului dublu de paritate, dar creste redundanta, matricea suportand doua discuri defecte. Reconstructia datelor poate consuma foarte multe resurse, performanta fiind puternic afectata. Redundanta dubla creeaza posibilitatea de a amana procesul de reconstructie pentru un plus de viteza.
Pentru crearea de nivele etajate RAID, oricare nivel poate fi combinat alt nivel, dar cel mai uzual sunt folosite nivelele 0, 1 si 0+1. Orice controller hardware (indiferent ca e PATA sau SATA), chiar integrat pe palca de baza, suporta RAID 0, RAID 1 si RAID 0+1, in functie de implementare.
Din punct de vedere al redundantei, RAID 0+1 este vulnerabil, orice defectiune transformandu-l intr-un RAID 0, fara protectie. Alte combinatii, gen 1+5 sau 5+1, au un cost foarte mare (minim doua controllere si sase discuri pentru o capacitate utila egala cu dublul capacitatii unui disc), iar datele pot fi asigurate si prin alte metode, mai ieftine.
La realizarea unei matrici RAID se tine seama de urmatorii factori: rata de transfer a controllerului, latimea de banda a slotului PCI si marimea memoriei tampon (buffer). Nici un hard disc actual nu poate atinge rata de transfer teoretica a magistralei: transferuri la 100 MB/s pe o interfata PATA 133 se fac doar pe durate foarte scurte de timp (asa numita burst rate sau transfer in rafala), datele fiind servite din memoria tampon (buffer). Rata de transfer sustinuta a unui hard disc modern se situeaza undeva spre valoarea de 40-50 MB/s.
La o matrice RAID 0 cu 4 discuri capabile de o rata de transfer de 40 MB/s, performanta este mica, deoarece se depaseste latimea de banda a controllerului (4*40 = 160 MB/s). Controllere cu rate de transfer mai mari sunt concepute pentru placi de baza care au sloturi PCI-X pe 64 bits ce pot lucra la frecvente de pana la 133 MHz (fata de cei 33 MHz ai unui PCI obisnuit). O solutie pentru marirea ratei de transfer este un controller cu mai multe canale (SCSI – Small Computer System Interface foloseste in mod uzual doua canale).
Si controllerele SATA 150, care au o rata teoretica de transfer de 150 MB/s, suporta nivele RAID 0, 1 si 0+1. Doua discuri SATA 150, chiar in RAID 0, nu pot depasi 150 MB/s. Pentru marirea ratei de transfer se poate realiza o matrice cu un controller cu patru sau opt canale, dar acesta este mult m ai scump si necesita un slot PCI-X 64.
In cazul discurilor SCSI, mai rapide decat cele PATA sau SATA, exista si posibilitatea transferului simultan de pe mai multe discuri, rata maxima de transfer a magistralei fiind repede acoperita de cateva discuri in RAID 0 sau RAID 5. Controllerele SCSI U320 (320 MB/s) sunt destul de uzuale, dar au nevoie de mai multe discuri rapide care vor solicita la maxim controllerul si magistrala PCI-X (64 bits, 133 MHz). Instalarea discurilor pe doua canale separate duce la imbunatatirea ratei de transfer, fiecare canal suportand 320 MB/s. La fel stau lucrurile si pentru controllerele PATA sau SATA (doua controllere PCI cu doua discuri fiecare vor fi mai rapide decat un singur controller cu patru discuri), existand posibilitatea instalarii a doua controllere SATA cu cate doua canale.
RAID 0 cu patru discuri
HDD_1…………….HDD_2……………..HDD_3…………….HDD_4
Segment 1………..Segment 2…………Segment 3………..Segment 4
Segment 5………..Segment 6…………Segment 7………..Segment 8
Segment 9………..Segment 10……….Segment 11………Segment 12
RAID 1 cu doua discuri
HDD_1…………….HDD_2
Segment 1………..Segment 1 duplicat
Segment 2………..Segment 2 duplicat
Segment 3………..Segment 3 duplicat
Segment 4………..Segment 4 duplicat
RAID 3 cu trei discuri
_____________________________Paritate
HDD_1……………..HDD_2……………..HDD_3
Segment 1…………Segment 2…………Segment 1
Segment 3…………Segment 4…………Segment 2
Segment 5…………Segment 6…………Segment 3
Segment 7…………Segment 8…………Segment 4
Segment 9…………Segment 10 ………Segment 5
RAID 5 cu trei discuri
_______________
HDD_1……………..HDD_2………………HDD_3
Segment 1………..Segment 2…………..Paritate
Paritate……………Segment 3…………..Segment 4
Segment 5………..Paritate………………Segment 6
RAID 0+1
______________________Controller _____________________________
________RAID 1____________________________RAID 1____________
HDD_1……………HDD_2………………………….HDD_3…………….HDD_4
Segment 1……….Segment 1……………………..Segment 2………..Segment 2
Segment 3……….Segment 3……………………..Segment 4………..Segment 4
Segment 5……….Segment 5……………………..Segment 6………..Segment 6
________________________RAID 0______________________________