RAID 5 este un nivel RAID în condiții de siguranță, în care paritatea este utilizată pentru a proteja datele. Fiecare bandă de RAID creează informații pentru controlul parității stocate pe unul dintre discurile din cadrul stratului. În combinație cu alte discuri din cadrul stratului RAID, informațiile despre paritate pot fi folosite pentru a recrea date de pe oricare dintre discurile de disc. Prin urmare, matricele RAID 5 sunt rezistente la defectarea uneia dintre unitățile de disc incluse în matrice. Informațiile pentru paritate sunt distribuite în rândul tuturor discurilor din matricea RAID (Figura 5.11).
Avantajul RAID 5 este că spațiul de disc disponibil la utilizarea acestui nivel RAID este (n-1) * (volumul unui disc) unde n este egal cu numărul de discuri din matrice. Deci, matricea RAID 5, compusă din 10 discuri, va avea un volum de 9 discuri, ceea ce o face o soluție economică și în același timp o soluție tolerantă la erori.
Din păcate, matricele RAID 5 au dezavantaje legate de performanță. Informațiile de procesare pentru controlul parității determină încărcarea suplimentară a calculatorului. Când scrieți date într-o matrice RAID 5, trebuie să citiți atât stratul de date de pe discul țintă, cât și stratul cu informațiile pentru paritate, atunci trebuie să recalculați informațiile despre paritate și apoi trebuie să scrieți ambele straturi de date. Astfel, după cum puteți vedea, scrierea către matricea RAID 5 generează patru operații fizice I / O.
Paritatea în matricele RAID 5
În matricele RAID 5, un bit de paritate este creat pentru fiecare dintre straturile de pe fiecare unitate de disc. Bitul de paritate este un element de date suplimentar, datorită căruia, având biți din setul de date prin care a fost creat, este posibil să se găsească alți biți din setul de date. Bitul de paritate este creat după cum urmează: toți ceilalți biți sunt însumați și apoi se determină ce valoare ar trebui să aibă pentru a obține un număr par (sau impar). Bitul de paritate, în combinație cu biții rămași, poate fi aplicat pentru a recupera valoarea bitului pierdut.
Să analizăm exemplul parității. În exemplul nostru, vom presupune că sistemul RAID 5 conține cinci unități de disc.
Fiecare unitate de disc este alcătuită, în esență, dintr-un număr de biți, de la începutul până la sfârșitul stratului de disc. Bitul de paritate este creat în funcție de valorile biților de pe fiecare unitate de disc.
În exemplul nostru, presupunem că verificarea parității trebuie să asigure că suma biților este egală; suma tuturor biților trebuie să producă un rezultat de 0 (adică adunarea modulo 2, adică rezultatul adăugării de biți trebuie să fie egal). În cazul în care primul bit al primului disc este egal cu 0, primul bit al doilea disc este egal cu 1, primul bit al treilea disk-ul este 1, primul bit al patrulea disk-ul este 1, bitul de paritate pentru acești biți trebuie să fie setat la 1 pentru a suplimenta aceste biți la un număr par ( vezi Tabelul 5.2).
Tabelul 5.2. Exemplu de paritate pentru o matrice RAID
Controlul parității ar trebui să fie înțeles ca acțiuni aplicate biților individuali. Deși stratul de disc conține mai mulți biți, controlul parității pentru biți individuali va restaura toate datele. Bibi de paritate enumerați în Tabelul 1. 5.2. sunt create de biții individuali care alcătuiesc straturile de date. În ciuda faptului că unitățile de discuri sunt împărțite în bucăți de date (straturi), cu posibile dimensiuni de 64 KB sau mai mult, dar controlul de paritate, așa cum ți-am arătat, se poate face la nivelul biților individuali. De fapt, controlul parității este calculat folosind algoritmi mai complexi decât cei pe care i-am descris.
Să presupunem acum că discul 3 sa descompus. În acest caz, bitul de paritate, împreună cu biții altor discuri, poate fi utilizat pentru a recupera bitul lipsă al discului 3, deoarece suma lor trebuie să completeze bitul necunoscut al discului 3 cu un număr par.
Generarea datelor pentru paritate
Așa cum am explicat în această secțiune, datele de paritate utilizate în matricele RAID 5 sunt alcătuite din biți care completează numărul paritar de biți egal distanțați de începutul biților tuturor unităților de disc. Dar, desigur, înțelegeți că ar fi impractic pentru controlerul de matrice să citească toate datele de pe toate unitățile de disc în timpul fiecărei operații I / O. Acest lucru ar fi ineficient și lent.
Când se creează o matrice RAID 5, datele sunt inițializate la zero și biții de paritate sunt creați. Ca rezultat, un set de unități de disc fără date este creat, dar cu un set complet de biți de paritate.
Din acest punct de pornire, ori de câte ori datele sunt scrise pe unitatea de disc, trebuie citite datele de pe discul de date și discul de paritate. Datele noi ar trebui să fie comparate cu datele vechi, iar în cazul în care orice date sa schimbat un pic, datele de paritate pentru acest bit trebuie să fie, de asemenea, modificat. Această verificare se face prin intermediul unor operații logice „SAU exclusiv“ (XOR SAU exclusiv) .Poetomu necesară pentru a citi date numai de pe disc de date și de paritate pe disc, mai degrabă decât pe toate unitățile din matrice. De îndată ce operația descrisă pentru calcularea modificărilor datelor parității este finalizată, înregistrarea trebuie făcută pe ambele discuri, deoarece Operația cu datele de control al parității afectează întregul strat de date. Astfel, pentru punerea în aplicare a fiecărei înregistrări într-un RAID 5 include patru fizice operațiune IO: două citiri (una - citirea de pe disc de date, altele - citite de disc de paritate) și două intrări (datele reale și datele de paritate) . Dar în matricele RAID 5, chiar și datele de paritate sunt distribuite uniform pe toate unitățile de disc, astfel încât sarcina pe unități va fi distribuită uniform.
Recomandări pentru utilizarea RAID 5
Deoarece scrierea la matricea RAID 5 necesită I / O suplimentar, acest nivel RAID poate fi recomandat pentru volumele discurilor folosite în principal pentru citire. Deoarece datele parității sunt distribuite uniform pe multe discuri din matrice, toate discurile sunt folosite pentru operațiile de citire. Având în vedere aceste caracteristici, se pot face următoarele recomandări:
- Utilizați RAID 5 pentru volume care sunt doar pentru citire. Orice volum de discuri ale căror operațiuni de scriere depășesc 10% din suma I / O nu ar trebui implementate ca RAID 5.
- Utilizați cache de scriere pentru RAID 5. De la intrarea de volum pentru RAID 5 nu este finalizată, atâta timp cât cele două citite și două de scriere va fi executat, atunci când se utilizează timpii de răspuns de înregistrare pentru intrările cache-ului poate fi redusă. (Utilizând memoria cache de scriere, asigurați-vă că pentru a utiliza bateria pentru alimentarea cu energie neîntreruptă.) Dar trebuie remarcat faptul că în cazul în care fluxul de înregistrare a datelor depășește performanța de scriere pe disc, intrarea cache-ul nu te va ajuta. În orice caz, nu trebuie să depășiți lățimea de bandă a discurilor.
După cum puteți vedea, RAID 5 este o soluție economică, dar plătiți pentru performanță. Și cât de mare poate fi acest preț, veți învăța din materialul suplimentar al acestei prelegeri.
RAID 10 este o combinație de RAID 0 și RAID 1. În RAID 10, oglindirea straturilor de date ale discurilor este reflectată. Se creează un duplicat pentru fiecare disc, dar fiecare disc conține doar o parte din toate datele (Figura 5.12). Acest nivel RAID oferă toleranță la erori, la fel ca în RAID 1, precum și confort și performanță, cum ar fi RAID 0.
Fig. 5.12. RAID 10
Ca și în RAID 1, RAID fiecare operațiune de scriere 10 necesită două IO fizice - o operație de scriere pe fiecare disc a perechii oglindit. Prin urmare, atunci când numărarea numărului de operații de intrare-ieșire, bazate pe un singur disc, numărul de înregistrări trebuie să fie multiplicate cu 2. La fel ca matrice RAID 1, RAID 10 pentru o operațiune de scriere nu este considerată completă până când nu sunt îndeplinite ambele intrări, poate crește timpul de întârziere de înregistrare. Dar, la fel ca pentru RAID 1, majoritatea controlorilor sprijină căutarea paralelă pentru RAID 10.
RAID 10 oferă un grad ridicat de toleranță la erori. De fapt, o matrice poate rămâne funcțională chiar dacă mai multe discuri eșuează. Desigur, eșecul unităților care fac parte dintr-o pereche oglindă va duce la pierderea datelor. Dacă discurile care sunt incluse în diferite perechi de oglinzi sunt montate pe rafturi diferite de echipamente, atunci chiar și întreaga eroare a rack-ului nu va duce la pierderea datelor.
Recomandări pentru utilizarea RAID 10
RAID 10 oferă o performanță ridicată și un grad ridicat de toleranță la erori. Nivelul RAID 10 ar trebui să fie utilizat atunci când se lucrează cu volume mari, pentru care operațiunile de scriere reprezintă mai mult de 10% din totalul operațiunilor I / O. Puteți oferi următoarele recomandări pentru utilizarea RAID 10:
- Utilizați RAID 10 ori de câte ori operațiile de scriere reprezintă mai mult de 10% din totalul I / O pentru o matrice RAID.
- Utilizați RAID 10. atunci când performanța este critică. Deoarece RAID10 utilizează un pachet de date, veți avea o performanță excelentă.
- Pentru volumele RAID 10, ar trebui să utilizați memorarea în cache. Deoarece scrierea pentru RAID 10 nu este finalizată până când se efectuează ambele operații de scriere, timpul de scriere poate fi redus utilizând memoria cache. Scrierea cache-ului este sigură numai atunci când aplicați bateria pentru o alimentare neîntreruptă pentru a proteja memoria cache.
Nivelul RAID 10 este cea mai bună soluție tolerantă la erori, asigură o bună protecție a datelor și performanțe ridicate, dar costurile sunt de asemenea ridicate. Va trebui să cumpărați discuri în cantități duble, în comparație cu RAID 0. Dacă volumul dvs. este folosit în principal pentru a citi datele, puteți utiliza RAID 5.