Există vreo diferență între RAID 10 (1+0) și RAID 01 (0+1)? [duplicat] (Administrarea sistemului, Bază De Date, Raid)

notnotnot a intrebat.

Am văzut ambele enumerate, ambele fiind în benzi și în oglindă pe mai multe unități, dar este o diferență între ele pe care nu o observ?

3 răspunsuri
Mark Henderson

Are legătură cu ordinea în care sunt efectuate operațiile și se aplică numai la matricele care au 6 discuri sau mai mult (dacă aveți 4 discuri, ambele sunt cam la fel).

RAID 1+0 (10): Discurile 1 + 2, 3 + 4, 5 + 6 sunt puse în oglindă pentru a crea o matrice RAID-1, iar deasupra matricei este creată o matrice RAID 0.

RAID 0+1 (01): Discurile 1 + 2 + 3 sunt grupate în benzi pentru a crea o matrice RAID 0, iar apoi discurile 4 + 5 + 6 pentru a crea redundanța RAID 1.

În cazul RAID 0+1, pierderea unui singur disc dintr-o parte a matricei (1,2,3 sau 4,5,6) va degrada matricea până la o stare în care, în esență, veți rula RAID 0 (care este rău).

Cu RAID 1+0, puteți pierde un singur disc din fiecare pereche (1,2 sau 3,4 sau 5,6), iar matricea va rămâne funcțională. Singurul mod în care această matrice poate fi scoasă din funcțiune este ca ambele discuri dintr-o pereche să cedeze.

Cu excepția cazului în care circumstanțele dvs. sunt excepționale, ar trebui să nu trebuie să nu faceți niciodată folosiți niciodată 0+1.

Comentarii

  • +1 evitați 0+1, acesta ar trebui utilizat doar în cazuri foarte speciale –  > Por rază.
  • Vreți să ne lămuriți cu privire la un astfel de caz „excepțional” pentru 0+1? Sunt curios 🙂 –  > Por Earlz.
  • Nu mă pot gândi la niciunul, de aceea, dacă ai avea unul, ar fi excepțional –  > Por Mark Henderson.
  • Dacă folosești o cartelă ieftină, verifică documentația pentru a fi sigur de ordine. Am văzut carduri ieftine pe care scrie „RAID 10” și care de fapt implementează „RAID 01” –  > Por Chris S.
  • Doar o scurtă observație: în ambele cazuri, matricea este considerată degradată după pierderea unui disc, iar acel disc va trebui înlocuit cât mai repede, deoarece pierderea unui alt disc poate duce la pierderea datelor. Șansele sunt de 1/7 pentru RAID1+0 și de 4/7 pentru RAID0+1. Dar, în ambele cazuri, încă o defecțiune poate distruge întreaga matrice.  > Por Andrew Lowe.
red_eight

Raid 0+1 vs Raid 1+0 (probabilitatea de defecțiune)

Iată un mic calcul matematic care ar trebui să arate diferențele dintre ratele de eșec. Pentru simplitate, să presupunem că există un număr par de discuri.

În ambele configurații de matrice, fiecare disc este împărțit în blocuri. În Raid 0+1, mai întâi are loc striping-ul și apoi mirroring-ul. În Raid 1+0, mai întâi are loc oglindirea și apoi striping-ul.

Putem oricând să partiționăm Raid 0+1 în două grupuri (G1 și G2).
Rețineți că folosesc „partiție” în sens matematic.
Pentru n discuri, putem defini:
G1 = {D1, D2, …, Dn/2}
G2 = {Dn/2+1, Dn/2+2, …, Dn}

Raid 0+1

4 Disks:                       6 Disks:
Disk1 Disk2 Disk3 Disk4        Disk1 Disk2 Disk3 Disk4 Disk5 Disk6
----- ----- ----- -----        ----- ----- ----- ----- ----- -----
| a | | b | | a | | b |        | a | | b | | c | | a | | b | | c |
| c | | d | | c | | d |        | d | | e | | f | | d | | e | | f |
----- ----- ----- -----        ----- ----- ----- ----- ----- -----
G1 = {D1, D2}                  G1 = {D1, D2, D3}
G2 = {D3, D4}                  G2 = {D4, D5, D6}

Pentru Raid 1+0, putem oricând să împărțim discurile în n/2 grupuri.
Rețineți că folosesc „partiționare” în sens matematic.
Pentru n discuri, putem defini:
G1 = {D1, D2}
G2 = {D3, D4}

Gn/2 = {Dn-1, Dn}

Raid 1+0

4 Disks:                       6 Disks:
Disk1 Disk2 Disk3 Disk4        Disk1 Disk2 Disk3 Disk4 Disk5 Disk6
----- ----- ----- -----        ----- ----- ----- ----- ----- -----
| a | | a | | b | | b |        | a | | a | | b | | b | | c | | c |
| c | | c | | d | | d |        | d | | d | | e | | e | | f | | f |
----- ----- ----- -----        ----- ----- ----- ----- ----- -----
G1 = {D1, D2}                  G1 = {D1, D2}
G2 = {D3, D4}                  G2 = {D3, D4}
                               G3 = {D5, D6}

Acum, după ce am terminat cu asta, să trecem la matematică!
Pentru ca o defecțiune să aibă loc într-o configurație Raid 0+1, trebuie să moară cel puțin un hard disk din fiecare grup.
Pentru ca o defecțiune să se producă într-o configurație Raid 1+0, trebuie să moară toate discurile dure din orice grup.

În oricare dintre configurațiile Raid, cel puțin două discuri trebuie să moară. Să analizăm toate modurile posibile în care ambele configurații Raid ar putea eșua în cazul în care două discuri ar muri.

Number of Disks (n) = 4
2 Disks Die : Raid Failure
D1D2        : R10
D1D3        : R01
D1D4        : R01
D2D3        : R01
D2D4        : R01
D3D4        : R10

Cu 4 discuri, există în total C(n, 2) = C(4, 2) = 6 combinații.

4/6 din aceste combinații ar putea duce la defectarea unei configurații Raid 0+1. (66% șanse de eșec)
Putem spune că:

P1 = P (Raid 0+1 Failure | 2 Disks die) = 2/3

2/6 din aceste combinații ar duce la eșecul unei configurații Raid 1+0. (33% șanse de eșec)
Putem spune că:

P2 = P (Raid 1+0 Failure | 2 Disks die) = 1/3

Putem face același test cu n = 6, dar voi omite tabelul.

P1 = 9/15 = 3/5
P2 = 3/15 = 1/5
P3 = P (No failures | 2 Disks die) = 4/15
P1P2 = 1/15

Cu 6 discuri, există c(n, 2) = c(6, 2) = 15 combinații posibile.
Există o șansă de 60% ca o configurație Raid 0+1 să eșueze.
Există o șansă de 20% ca o configurație Raid 1+0 să eșueze.

Acum, aceste rezultate pot fi generalizate pentru n discuri.

P1 = c(n/2, 1) * c(n/2, 1) / c(n, 2)

   = (n/2 * n/2) / (n * (n - 1) / 2)

   = (n/2 * n/2) * (2 / (n * (n - 1))

   = (n * n / 4) * (2 / (n * (n - 1))

   = (n / 2) * (1 / (n - 1))

   = n / (2 * (n - 1))

P2 = (n/2) / c(n, 2)

   = (n/2) / (n * (n - 1) / 2)

   = (n/2) * (2 / (n * (n - 1)))

   = 1 / (n - 1)

Acum partea cea mai utilă și interesantă a calculelor matematice. Putem lua limitele celor două ecuații de mai sus. Mai jos, folosesc „inf” pentru a însemna infinit.

Lim n->inf P1 = Lim n->inf n / (2 * (n - 1))     // We can use L'Hopital's rule

              = Lim n->inf 1 / 2 = 1 / 2

Cu alte cuvinte, va exista întotdeauna cel puțin 50% șanse de eșec dacă 2 discuri mor pe o configurație Raid 0+1!

Acum să vedem cum se descurcă o configurație Raid 1+0.

Lim n->inf P2 = Lim n->inf 1 / (n - 1) = 0

Cu alte cuvinte, cu cât adăugăm mai multe discuri la o configurație Raid 1+0, cu atât ne apropiem mai mult de o șansă teoretică de eșec de 0%!

Un tabel final (Vă rugăm să rețineți că rotunjesc valorile la numere întregi.)

-------------------
| n   | P1  | P2  |
-------------------
| 4   | 66% | 33% |
| 6   | 60% | 20% |
| 8   | 57% | 14% |
| 10  | 55% | 11% |
| 12  | 54% | 9%  |
| 16  | 53% | 7%  |
| 20  | 52% | 5%  |
| 24  | 52% | 4%  |
| 32  | 51% | 3%  |
| 64  | 50% | 1%  |
| 128 | 50% | 0%  |
-------------------

Concluzie: Utilizați Raid 1+0.

Comentarii

  • Eram foarte plictisit la serviciu astăzi când am decis să învăț despre Raid-uri. Am venit cu aceste calcule și am pus totul într-un document word. Din păcate, nu am rep pentru a posta imagini, așa că tabelele și ecuațiile mele arată un pic urât. –  > Por red_eight.
  • Sincer, cred că tabelele tale arată destul de bine și imaginile ar fi mai rău. –  > Por Scott Chamberlain.
  • În ceea ce privește comparația dintre matricele RAID10 cu 4 discuri și RAID01, ați enumerat o defecțiune D1+D4 și o defecțiune D2+D3 ca fiind o pierdere totală a matricei RAID01, dar cu date intacte în matricea RAID10. Acest lucru este incorect. Ambele perechi de defecțiuni nu vor pierde date în niciuna dintre implementările RAID. Într-o matrice cu 4 discuri, toleranța la erori este identică între RAID10 și RAID01. Doar în cazul unor matrice mai mari, RAID10 are o toleranță la erori mai bună. –  > Por Justin L. Franks.
Earlz

Acest lucru aparține de ServerFault, dar iată o scurtă prezentare generală a diferențelor de pe Wikipedia

RAID 10

RAID 1+0 (sau 10) este un set de date în oglindă (RAID 1), care este apoi în benzi (RAID 0), de unde și numele „1+0”. O matrice RAID 1+0 necesită cel puțin patru unități – două unități în oglindă pentru a păstra jumătate din datele în benzi, plus alte două unități în oglindă pentru cealaltă jumătate de date. În Linux, MD RAID 10 este un tip de RAID neamestecat, ca și RAID 1, care necesită doar un minim de două unități și poate oferi performanțe de citire la nivelul RAID 0.

RAID 01

RAID 0+1 (sau 01) este un set de date în benzi (RAID 0) care este apoi oglindit (RAID 1). O matrice RAID 0+1 necesită un minim de patru unități: două pentru a păstra datele în benzi, plus alte două pentru a oglindi prima pereche.