1. Prezentare generală RAID
În 1988, Universitatea din California, Berkeley, a propus conceptul de RAID (RedundantArrayofIncheapDisks), iar pe măsură ce costul discurilor a continuat să scadă, RAID a devenit (RedundantArrayofIndependentDisks), dar substanța nu s-a schimbat. SNIA, Berkeley și alte organizații au stabilit cele șapte niveluri de RAID0~RAID6 ca niveluri standard RAID, iar RAID standard poate fi combinat în alte niveluri RAID, iar cele mai utilizate niveluri sunt RAID0, RAID1, RAID3, RAID5, RAID6 și RAID10. Fiecare nivel RAID reprezintă o metodă și o tehnologie de implementare, iar între niveluri nu există nicio distincție. În aplicațiile practice, nivelul RAID adecvat și metodele specifice de implementare trebuie selectate pe baza caracteristicilor aplicației de date a utilizatorului, luând în considerare disponibilitatea, performanța și costul.
Din perspectiva implementării, RAID este împărțit în principal în trei tipuri: soft RAID, hard RAID și hybrid RAID. Toate funcțiile soft RAID sunt realizate de sistemul de operare și CPU, care este, în mod natural, cel mai puțin eficient. Hard RAID este echipat cu cipuri specializate de control/procesare RAID și cipuri de procesare I/O și buffere de array, care nu consumă resurse CPU, dar sunt costisitoare. RAID hibrid are cipuri de control/procesare RAID, dar nu dispune de cipuri de procesare I/O, care necesită CPU și drivere pentru a fi finalizate, iar performanța și costul sunt între soft și hard RAID.
2. Principii de bază
RAID este un subsistem de disc format din mai multe unități de disc independente, de înaltă performanță, oferind astfel performanță superioară la stocare și tehnologie de redundanță a datelor decât un singur disc. RAID este o clasă de tehnologii de management multi-disc care oferă stocare de înaltă performanță cu o fiabilitate ridicată a datelor la un cost accesibil pentru mediul gazdă. Cele două obiective cheie ale RAID sunt îmbunătățirea fiabilității datelor și performanța I/O. Într-un array de discuri, datele sunt răspândite pe mai multe discuri, dar pentru un sistem informatic, este ca un singur disc. Redundanța se obține prin scrierea acelorași date pe mai multe discuri simultan (de obicei, cum ar fi oglindirea) sau prin scrierea datelor de verificare calculate pe un tablou, asigurând astfel că pierderea datelor nu este cauzată atunci când un singur disc cedează.
Există trei concepte și tehnici principale în RAID: Oglindirea, DataStripping și Dataparity:
Oglindirea, care replică date pe mai multe discuri, îmbunătățește fiabilitatea pe de o parte și performanța de citire prin citirea datelor de la două sau mai multe replici simultan. Evident, performanța de scriere a imaginii este puțin mai scăzută și durează mai mult timp pentru a te asigura că datele sunt scrise corect pe mai multe discuri. Data striping, care conține fragmente de date pe mai multe discuri diferite, și mai multe fragmente de date împreună formează o copie completă a datelor, ceea ce este diferit de mai multe copii de oglindire, și este adesea folosită pentru considerente de performanță. Strip-urile de date au o granularitate mai mare a concurenței, iar atunci când datele sunt accesate, pot citi și scrie date pe discuri diferite în același timp, rezultând o îmbunătățire foarte semnificativă a performanței I/O. Verificarea datelor, folosind date redundante pentru detectarea și repararea erorilor de date, datele redundante sunt de obicei calculate prin codul Hemingway, operația XOR și alți algoritmi. Funcția de verificare poate îmbunătăți considerabil fiabilitatea, furtul și toleranța la defecte a matricelor de discuri. Totuși, validarea datelor necesită ca datele să fie citite din mai multe surse, calculate și comparate, ceea ce poate afecta performanța sistemului. Diferite grade ale RAID folosesc una sau mai multe dintre cele trei tehnologii pentru a obține fiabilitate, disponibilitate și performanță a datelor diferite. În ceea ce privește ce RAID să proiecteze (sau chiar un nou grad sau tip) sau ce mod de RAID să folosească, este necesar să se facă o alegere rezonabilă bazată pe o înțelegere profundă a nevoilor sistemului și să se evalueze cuprinzător fiabilitatea, performanța și costul pentru a face un compromis.
În general, principalele avantaje ale RAID sunt: capacitate mare, performanțe ridicate, fiabilitate și gestionabilitate.
3. Rating RAID
JBOD (JustaBunchOfDisks) nu este un tier standard RAID, fiind adesea folosit pentru a reprezenta o colecție de discuri care nu au software de control pentru a oferi control coordonat. JBOD conectează mai multe discuri fizice în serie pentru a oferi un disc logic uriaș. Performanța stocării este exact aceeași cu cea a unui singur disc și nu oferă securitate a datelor. Capacitatea de stocare disponibilă este egală cu suma spațiului de stocare al tuturor discurilor membre.
RAID0, numit striping, este o tehnologie simplă, necontrolată de striping a datelor. Performanța este cea mai ridicată dintre toate nivelurile RAID. Nu sunt prevăzute politici de concediere de niciun fel. Utilizarea 100% a spațiului de depozitare.
RAID1 se numește mirroring și scrie date pe discul de lucru și pe discul oglindit complet constant, având o utilizare a spațiului pe disc de 50%. Performanța este afectată atunci când datele sunt scrise, dar datele nu sunt citite. Oferă cea mai bună protecție a datelor, iar odată ce discul funcțional cedează, sistemul citește automat datele de pe discul oglindit, ceea ce nu va afecta munca utilizatorului.
RAID2 se numește Heming Code Disk Array, iar ideea sa de design este să folosească Heming Code pentru a obține redundanță la verificarea datelor. Cu cât lățimea datelor este mai mare, cu atât utilizarea spațiului de stocare este mai mare, dar cu atât ai nevoie de mai multe discuri. Are capacitatea de a corecta erori, dar suprasarcina de redundanță a datelor din Hemingcode este prea mare, iar reconstrucția datelor este foarte consumatoare de timp, astfel că RAID2 este rar folosit în practică.
RAID3 se numește strip de paritate dedicat, care folosește un disc dedicat ca disc de verificare și restul discurilor ca disc de date, iar datele sunt stocate cross-store în fiecare disc de date în biți și octeți. RAID3 necesită cel puțin trei discuri.
RAID4 și RAID3 funcționează pe un principiu asemănător. Oferă o performanță foarte bună la citire, dar o performanță slabă la scriere. Iar pe măsură ce numărul de discuri membre crește, blocajul sistemului al discului de sumă de control va deveni mai proeminent. Este rar în aplicațiile reale, iar produsele de stocare mainstream folosesc rar protecție RAID4.
RAID5 se numește banda distribuită a sumei de verificare a parității, care ar trebui să fie cel mai comun nivel RAID în prezent, iar principiul este similar cu cel al RAID4, dar nu există niciun blocaj în performanța discului de verificare în timpul operațiunilor de scriere concurentă în RAID4.
RAID6, numit banda de paritate dublă, introduce conceptul de verificări duble pentru a rezolva problema integrității datelor atunci când două discuri cedează simultan, lucru pe care alte clase RAID nu le pot rezolva. Totuși, costă mult mai mult decât RAID5, are performanțe slabe la scriere și este foarte complex de proiectat și implementat. Prin urmare, RAID6 este rar folosit în practică și este, în general, o alternativă economică la soluțiile RAID10.
Nivelurile standard de RAID au punctele lor forte și slăbiciuni. Combinați mai multe niveluri RAID pentru a obține avantaje complementare și a compensa deficiențele fiecăruia, astfel încât să obținem un sistem RAID cu performanță superioară, securitate a datelor și alți indicatori. Desigur, costul de implementare al nivelului combinat este, în general, foarte ridicat și este folosit doar în câteva cazuri specifice. De fapt, doar RAID01 și RAID10 sunt folosite pe scară largă.
RAID01 este mai întâi striped și apoi oglindit, ceea ce este practic pentru a imagina discul fizic; RAID10 înseamnă să faci mai întâi imaginea, apoi stripe, adică să imaginezi discul virtual. În aceeași configurație, RAID01 are de obicei o toleranță mai bună la erori decât RAID10. RAID01 combină avantajele RAID0 și RAID1, cu o utilizare totală a discului de doar 50%.
4. Comparația nivelurilor RAID principale
Configurația RAID
Nivel/Descriere: | Toleranță la defecte | merit | Neajuns | RAID 0
Mapează datele între unități pentru a crea discuri virtuale mari. Deoarece fiecare disc fizic procesează doar o parte din cerere, poate oferi performanțe superioare. Totuși, dacă un disc cedează, discul virtual (VD) va deveni inaccesibil și datele vor fi pierdute definitiv. | nu | Performanță mai bună Stocare suplimentară | Nu trebuie folosit pentru date critice | RAID 1
Oglindește datele, stochează redundanța datelor pe două unități. Dacă un disc cedează, celălalt disc va prelua rolul de unitate principală. | Eroare de disc Defecțiune a unui singur disc | Performanțe de citire ridicată Recuperarea rapidă după o defecțiune a unității Redundanța datelor | Sarcina de încărcare a discului este mare Capacitate limitată | RAID 5
Mapează datele între unități și stochează biții de paritate ai fiecărei benzi de date pe discuri diferite în VD. Bitul de paritate conține informații care pot fi folosite pentru a reconstrui date dintr-un disc defect de pe un alt disc în cazul unei defecțiuni ale unui singur disc. | Eroare de disc Defecțiune a unui singur disc | Utilizarea eficientă a capacității de acționare Performanțe de citire ridicată Performanță medie spre ridicată la scriere | Impact moderat al defectării discului Datorită recalculării parității, timpul de reconstrucție este mai lung | RAID 6
Mapează datele între unități și stochează biții de paritate ai fiecărei benzi de date pe discuri diferite în VD. Spre deosebire de RAID 5, RAID 6 efectuează două calcule de paritate (P și Q), permițându-i să reziste la defecțiuni cu două discuri. | Redundanța datelor Performanțe de citire ridicată | Eroare de disc Defecțiune a discului dublu | Performanța de scriere este redusă datorită a două calcule de paritate Deoarece este echivalent cu folosirea a 2 discuri pentru paritate, există un cost suplimentar | RAID 10
Benzi pe setul de oglinzi. Suprasolicitarea discului este mare, dar este o soluție excelentă pentru performanțe ridicate, redundanță și recuperare rapidă în caz de defecțiune a unității. | Eroare de disc O defecțiune a discului per set de imagine | Performanțe de citire ridicată Pot fi suportate grupuri RAID cu până la 192 de unități | Cel mai mare cost | RAID 50
Bandă RAID 5 pe platou. Prin reducerea numărului de citiri pe disc pe fiecare calcul de paritate, performanța poate fi îmbunătățită cu RAID 5, în funcție de configurație. | Eroare de disc O defecțiune de disc pe span | Performanțe de citire ridicată Performanță medie spre ridicată la scriere Pot fi suportate grupuri RAID cu până la 192 de unități | Impact moderat al defectării discului Datorită recalculării parității, timpul de reconstrucție este mai lung | RAID 60
Bandă RAID 6 pe platou. Cu mai puține citiri pe disc pe calcul de paritate, performanța poate fi îmbunătățită cu RAID 6, în funcție de configurație. | Eroare de disc Două discuri cedează pe interval | Performanțe de citire ridicată Pot fi suportate grupuri RAID cu până la 192 de unități | Performanța de scriere este redusă datorită a două calcule de paritate Deoarece este echivalent cu folosirea a 2 discuri pentru paritate, există un cost suplimentar |
5. Diferența dintre software și hardware RAID
RAID moale
Soft RAID nu are un cip de control dedicat și un cip de I/O, iar sistemul de operare și CPU-ul implementează toate funcțiile RAID. Sistemele de operare moderne oferă practic suport soft RAID, oferind o abstracție între unitățile fizice și cele logice prin adăugarea unui strat software peste driverele de dispozitive de disc. În prezent, cele mai comune ratinguri RAID suportate de sistemul de operare sunt RAID0, RAID1, RAID10, RAID01 și RAID5. De exemplu, Windows Server suportă RAID0, RAID1 și RAID5, Linux suportă RAID0, RAID1, RAID4, RAID5, RAID6 etc., iar Mac OS X Server, FreeBSD, NetBSD, OpenBSD, Solaris și alte sisteme de operare suportă, de asemenea, niveluri RAID corespunzătoare.
Gestionarea configurației și recuperarea datelor soft RAID sunt relativ simple, dar toate sarcinile RAID sunt complet realizate de CPU, cum ar fi calcularea valorilor de verificare, astfel încât eficiența execuției este relativ scăzută.
Soft RAID este implementat de sistemul de operare, astfel încât partiția în care se află sistemul nu poate fi folosită ca un disc logic membru al RAID, iar soft RAID nu poate proteja discul D al sistemului. Pentru unele sisteme de operare, informațiile de configurare RAID sunt stocate în informațiile sistemului, nu ca fișiere separate pe disc. Astfel, când sistemul se blochează neașteptat și trebuie reinstalat, informațiile RAID se pierd. În plus, tehnologia de toleranță la defecte a discului nu suportă pe deplin înlocuirea online, schimbarea la cald sau schimbarea la cald, iar dacă poate suporta schimbarea la cald a discului greșit ține de implementarea sistemului de operare.
Hard RAID
Hard RAID are propriile procesări de control RAID și cipuri de procesare I/O, precum și buffering de array, care este cea mai bună dintre cele trei tipuri de implementări în ceea ce privește utilizarea CPU-ului și performanța generală, dar are și cel mai mare cost de implementare. Hard RAID suportă de obicei tehnologia hot-swapping, care înlocuiește discurile defecte în timp ce sistemul funcționează.
Hard RAID constă într-o placă RAID și un cip RAID integrate pe placa de bază, iar platformele server folosesc adesea plăci RAID. O placă RAID este formată din 4 părți: cipul de procesare RAID core (CPU-ul de pe placa RAID), portul, cache-ul și bateria. Printre acestea, porturile se referă la tipurile de interfețe de disc suportate de plăcile RAID, cum ar fi IDE/ATA, SCSI, SATA, SAS, FC și alte interfețe.
RAID mixt hard și soft
Soft RAID nu este foarte bun și nu protejează partițiile sistemului, ceea ce îl face dificil de aplicat pe sistemele desktop. Hard RAID este foarte scump, iar diferitele RAD-uri sunt independente unele de altele și nu sunt interoperabile. Prin urmare, oamenii adoptă o combinație de software și hardware pentru a implementa RAID, astfel încât să obțină un compromis între performanță și cost, adică o performanță cu costuri ridicate.
Deși acest RAID folosește un cip de control al procesării, pentru a economisi costuri, cipul este adesea mai ieftin și are o putere de procesare mai slabă, iar cea mai mare parte a procesării sarcinilor RAID este încă realizată de CPU prin drivere de firmware.
6. Selecția aplicației RAID
Există trei factori principali în alegerea unui nivel RAID: disponibilitatea datelor, performanța I/O și costul. Dacă disponibilitatea nu este necesară, alegeți RAID0 pentru performanță ridicată. Dacă disponibilitatea și performanța sunt importante și costul nu este un factor major, alege RAID1 în funcție de numărul de discuri. Dacă disponibilitatea, costul și performanța sunt la fel de importante, alege RAID3 sau RAID5 în funcție de transferul general de date și numărul de discuri. În aplicații practice, nivelul RAID adecvat ar trebui selectat pe baza caracteristicilor și condițiilor specifice ale aplicației de date a utilizatorului, luând în considerare disponibilitatea, performanța și costul.
|