Cum se configurează smartphone-uri și PC-uri. Portal informativ
  • Acasă
  • Greșeli
  • Ce sunt matricele RAID și de ce sunt necesare. Matrice RAID

Ce sunt matricele RAID și de ce sunt necesare. Matrice RAID

Acum să vedem ce tipuri există și cum diferă.

UC Berkeley a introdus următoarele niveluri ale specificației RAID, care au fost adoptate ca standard de facto:

  • RAID 0- matrice de discuri performanta cu striping, fara toleranta la erori;
  • - matrice de discuri în oglindă;
  • RAID 2 rezervat pentru matrice care utilizează cod Hamming;
  • RAID 3 și 4- matrice de discuri cu striping și un disc de paritate dedicat;
  • - matrice de discuri cu striping și „disc de paritate nealocat”;
  • - striped disk array folosind două sume de control calculate în două moduri independente;
  • - matrice RAID 0 construită din matrice RAID 1;
  • - matrice RAID 0 construită din matrice RAID 5;
  • - o matrice RAID 0 construită din matrice RAID 6.

Un controler RAID hardware poate suporta mai multe matrice RAID diferite în același timp, al căror număr total de hard disk-uri nu depășește numărul de sloturi pentru acestea. În același timp, controlerul încorporat în placa de bază are doar două stări în setările BIOS (activat sau dezactivat), astfel încât un nou hard disk conectat la un slot de controler neutilizat cu modul RAID activat poate fi ignorat de sistem până când este asociat ca un alt RAID -array de tip JBOD (spanned), format dintr-un singur disc.

RAID 0 (dungi - „alternanță”)

Modul care maximizează performanța. Datele sunt distribuite uniform pe discurile matricei, discurile sunt combinate într-unul singur, care poate fi împărțit în mai multe. Operațiile distribuite de citire și scriere vă permit să creșteți semnificativ viteza de lucru, deoarece mai multe discuri citesc / scriu simultan porțiunea lor de date. Întregul volum de discuri este disponibil utilizatorului, dar acest lucru reduce fiabilitatea stocării datelor, deoarece dacă unul dintre discuri eșuează, matricea este de obicei distrusă și este aproape imposibilă restaurarea datelor. Domeniu de aplicare - aplicații care necesită viteze mari de schimb de disc, cum ar fi captura video, editare video. Recomandat pentru utilizare cu unități de înaltă fiabilitate.

(oglindire - „oglindire”)

o matrice de două discuri care sunt copii complete unul ale celuilalt. A nu se confunda cu matricele RAID 1+0, RAID 0+1 și RAID 10, care folosesc mai mult de două unități și mecanisme de oglindire mai sofisticate.

Oferă o viteză de scriere acceptabilă și un câștig în viteza de citire la paralelizarea interogărilor.

Are fiabilitate ridicată - funcționează atâta timp cât funcționează cel puțin un disc din matrice. Probabilitatea de defectare a două discuri simultan este egală cu produsul probabilităților de defecțiune a fiecărui disc, adică. semnificativ mai mică decât probabilitatea de defecțiune a unei singure unități. În practică, dacă unul dintre discuri eșuează, trebuie luate măsuri urgente - redundanța ar trebui restabilită. Pentru a face acest lucru, cu orice nivel RAID (cu excepția zero), este recomandat să folosiți discuri de rezervă.

Similar cu RAID10, o variantă de distribuție a datelor pe discuri, care permite utilizarea unui număr impar de discuri (numărul minim este de 3)

RAID 2, 3, 4

diverse opțiuni pentru stocare distribuită cu discuri alocate pentru coduri de paritate și diferite dimensiuni de bloc. În prezent, practic nu sunt folosite din cauza performanței scăzute și a necesității de a aloca mult spațiu pe disc pentru stocarea codurilor ECC și/sau de paritate.

Principalul dezavantaj al nivelurilor RAID 2 până la 4 este incapacitatea de a efectua operațiuni de scriere paralelă, deoarece un disc de paritate separat este folosit pentru a stoca informațiile de paritate. RAID 5 nu are acest dezavantaj. Blocurile de date și sumele de control sunt scrise ciclic pe toate discurile din matrice, nu există nicio asimetrie în configurația discului. Sumele de control sunt rezultatul unei operațiuni XOR (exclusiv sau). Xor are o caracteristică care face posibilă înlocuirea oricărui operand cu rezultatul și, folosind algoritmul xor, obțineți operandul lipsă ca rezultat. De exemplu: a xor b = c(Unde A, b, c- trei discuri ale matricei raid), dacă A refuză, îl putem obține punându-l la locul lui cși după ce a cheltuit xorîntre cȘi b: xor b = a. Acest lucru se aplică indiferent de numărul de operanzi: a xor b xor c xor d = e. Dacă eșuează c Apoi e ia locul si xor ca urmare obținem c: a xor b xor e xor d = c. Această metodă oferă în esență versiunea 5 de toleranță la erori. Este nevoie de doar 1 disc pentru a stoca rezultatul xor, a cărui dimensiune este egală cu dimensiunea oricărui alt disc din raid.

Avantaje

RAID5 a devenit larg răspândit, în primul rând datorită rentabilității sale. Dimensiunea unei matrice de discuri RAID5 este calculată folosind formula (n-1)*hddsize, unde n este numărul de discuri din matrice și hddsize este dimensiunea celui mai mic disc. De exemplu, pentru o matrice de patru discuri de 80 GB, volumul total va fi (4 - 1) * 80 = 240 GB. Sunt cheltuite resurse suplimentare pentru scrierea informațiilor pe un volum RAID 5 și scăderea performanței, deoarece sunt necesare calcule suplimentare și operațiuni de scriere, dar la citire (comparativ cu un hard disk separat), există un câștig, deoarece fluxurile de date de pe mai multe discuri matrice pot să fie prelucrate în paralel.

Defecte

Performanța RAID 5 este vizibil mai scăzută, mai ales la operațiunile de scriere aleatorie (scrierile în ordine aleatorie), în care performanța scade cu 10-25% față de performanța RAID 0 (sau RAID 10), deoarece necesită mai multe operațiuni de disc (fiecare operațiunile de scriere, cu excepția așa-numitelor scrieri full-stripe, serverul este înlocuit pe controlerul RAID cu patru - două citiri și două scrieri). Dezavantajele RAID 5 apar atunci când unul dintre discuri eșuează - întregul volum intră în modul critic (degradează), toate operațiunile de scriere și citire sunt însoțite de manipulări suplimentare, performanța scade brusc. În acest caz, nivelul de fiabilitate este redus la fiabilitatea RAID-0 cu un număr adecvat de discuri (adică de n ori mai mic decât fiabilitatea unui singur disc). Dacă apare o eroare înainte ca matricea să fie complet restaurată sau apare o eroare de citire irecuperabilă pe cel puțin încă un disc, atunci matricea este distrusă, iar datele de pe acesta nu pot fi restaurate prin metode convenționale. De asemenea, trebuie luat în considerare faptul că procesul de reconstrucție RAID (recuperare a datelor RAID din cauza redundanței) după o defecțiune a discului determină o încărcare intensă de citire de pe discuri timp de multe ore în mod continuu, ceea ce poate duce la eșecul oricăruia dintre discurile rămase. perioada cea mai puțin protejată de funcționare RAID, precum și pentru a detecta erorile de citire nedetectate anterior în matricele de date reci (date care nu sunt accesate în timpul funcționării normale a matricei, date arhivate și inactive), ceea ce crește riscul de eșec în timpul recuperării datelor.

Numărul minim de discuri utilizate este de trei.

RAID 6 - similar cu RAID 5, dar are un grad mai mare de fiabilitate - capacitatea a 2 discuri este alocată pentru sume de control, 2 sume sunt calculate folosind algoritmi diferiți. Necesită un controler RAID mai puternic. Oferă operabilitate după defecțiunea simultană a două discuri - protecție împotriva defecțiunilor multiple. Este necesar un minim de 4 discuri pentru a organiza o matrice. De obicei, utilizarea RAID-6 cauzează o scădere cu aproximativ 10-15% a performanței grupului de discuri în comparație cu RAID 5, care este cauzată de o cantitate mare de procesare pentru controler (nevoia de a calcula o a doua sumă de control și de a citi și suprascrie mai mult disc. blocuri când fiecare bloc este scris).

RAID 0+1

RAID 0+1 poate însemna practic două opțiuni:

  • două RAID 0 sunt îmbinate în RAID 1;
  • trei sau mai multe discuri sunt combinate într-o matrice și fiecare bloc de date este scris pe două discuri ale acestei matrice; astfel, cu această abordare, ca și în RAID 1 „pur”, volumul util al matricei este jumătate din volumul total al tuturor discurilor (dacă acestea sunt discuri de aceeași capacitate).

RAID 10 (1+0)

RAID 10 este o matrice oglindită în care datele sunt scrise secvenţial pe mai multe discuri, ca în RAID 0. Această arhitectură este o matrice de tip RAID 0, ale cărei segmente sunt matrice RAID 1 în loc de discuri individuale. În consecinţă, o matrice de acest nivel trebuie să conțină cel puțin 4 discuri (și întotdeauna un număr par). RAID 10 combină toleranța ridicată la erori și performanța.

Afirmația că RAID 10 este cea mai fiabilă opțiune pentru stocarea datelor este justificată de faptul că matricea va fi scoasă din funcțiune după defecțiunea tuturor unităților din aceeași matrice. Cu o unitate care se defectează, șansa de defecțiune a celei de-a doua în aceeași matrice este 1/3*100=33%. RAID 0+1 va eșua dacă două unități eșuează în matrice diferite. Șansa de defecțiune a unei unități dintr-o matrice vecină este de 2/3*100=66%, totuși, deoarece o unitate dintr-o matrice cu o unitate deja defectată nu mai este utilizată, șansa ca următoarea unitate să dezactiveze întreaga matrice. este 2/2 *100=100%

o matrice similară cu RAID5, dar pe lângă stocarea distribuită a codurilor de paritate, este utilizată distribuția zonelor de rezervă - de fapt, se folosește un hard disk, care poate fi adăugat la o matrice RAID5 ca rezervă (astfel de matrice se numesc 5 + sau 5+de rezervă). Într-o matrice RAID 5, unitatea de rezervă este inactivă până când unul dintre hard disk-urile principale se defectează, în timp ce într-o matrice RAID 5EE, această unitate este partajată cu restul HDD-ului tot timpul, ceea ce afectează pozitiv performanța matricei. De exemplu, o matrice RAID5EE de 5 HDD-uri poate efectua cu 25% mai multe operațiuni I/O pe secundă decât o matrice RAID5 de 4 HDD primare și unul de rezervă. Numărul minim de discuri pentru o astfel de matrice este 4.

combinând două (sau mai multe, dar acest lucru este extrem de rar utilizat) matrice RAID5 într-o bandă, de ex. o combinație de RAID5 și RAID0, corectând parțial principalul dezavantaj al RAID5 - viteza scăzută de scriere a datelor datorită utilizării paralele a mai multor astfel de matrice. Capacitatea totală a matricei este redusă de capacitatea a două unități, dar spre deosebire de RAID6, acesta poate tolera doar o singură defecțiune a unei unități fără pierderi de date, iar numărul minim de unități necesare pentru a crea o matrice RAID50 este de 6. Alături de RAID10, acesta este cel mai recomandat nivel RAID de utilizat.în aplicațiile în care este necesară o performanță ridicată combinată cu o fiabilitate acceptabilă.

îmbinând două matrice RAID6 într-o bandă. Viteza de scriere este aproximativ dublu față de viteza de scriere în RAID6. Numărul minim de discuri pentru a crea o astfel de matrice este 8. Informațiile nu se pierd dacă două discuri din fiecare matrice RAID 6 eșuează.

RAID- o abreviere care înseamnă Redundant Array of Independent Disks - „o matrice tolerantă la erori de discuri independente” (anterior, cuvântul Ieftin era folosit uneori în loc de Independent). Conceptul unei structuri constând din mai multe discuri grupate împreună pentru a oferi toleranță la erori a luat naștere în 1987 în lucrarea fundamentală a lui Patterson, Gibson și Katz.

Tipuri native RAID

RAID-0
Dacă credem că RAID este „toleranță la erori” (Redundant...), atunci RAID-0 este „toleranță zero la erori”, absența lui. Structura RAID-0 este o „matrice de discuri cu dungi”. Blocurile de date sunt scrise unul câte unul pe toate discurile incluse în matrice, în ordine. Acest lucru îmbunătățește performanța, în mod ideal cu cât numărul de discuri din matrice, deoarece scrierile sunt paralelizate pe mai multe dispozitive.
Cu toate acestea, fiabilitatea este redusă cu același factor, deoarece datele se vor pierde dacă oricare dintre unitățile din matrice eșuează.

RAID-1
Aceasta este așa-numita „oglindă”. Operațiile de scriere sunt efectuate pe două discuri în paralel. Fiabilitatea unei astfel de matrice este mai mare decât cea a unei singure unități, dar creșterea performanței este nesemnificativă (sau deloc).

RAID-10
O încercare de a combina avantajele celor două tipuri de RAID și de a le priva de dezavantajele lor inerente. Dacă luăm un grup RAID-0 cu performanță crescută și oferim fiecăruia dintre ele (sau întregului array) discuri „oglindă” pentru a proteja datele de pierderea din cauza defecțiunilor, obținem o matrice tolerantă la erori cu performanță crescută ca urmare a folosind striping.
Este unul dintre cele mai populare tipuri de RAID în sălbăticie astăzi.
Contra - plătim pentru toate avantajele de mai sus cu jumătate din capacitatea totală a discurilor incluse în matrice.

RAID-2
A rămas în întregime teoretic. Aceasta este o matrice în care datele sunt codificate cu un cod Hamming de corectare a erorilor, care face posibilă recuperarea fragmentelor defecte individuale datorită redundanței sale. Apropo, diferite modificări ale codului Hamming, precum și succesorii săi, sunt utilizate în procesul de citire a datelor de pe capetele magnetice ale hard disk-urilor și cititoarelor optice de CD / DVD.

RAID 3 și 4
„Dezvoltarea creativă” a ideii de protecție a datelor prin cod redundant. Codul Hamming este indispensabil în cazul unui flux „constant nesigur” saturat cu erori continue, slab previzibile, cum ar fi, de exemplu, un canal de comunicație terestră zgomotos. Totuși, în cazul hard disk-urilor, principala problemă nu este erorile de citire (presupunem că datele sunt furnizate de hard disk-uri în forma în care le-am scris, dacă funcționează), ci defecțiunea întregului disc.
Pentru astfel de condiții, puteți combina o schemă în dungi (RAID-0) și, pentru a vă proteja împotriva defecțiunii unuia dintre discuri, completați informațiile înregistrate cu redundanță, ceea ce vă va permite să restaurați datele dacă o parte din acestea se pierde, alocarea unui disc suplimentar pentru aceasta.
Dacă vreunul dintre discurile de date este pierdut, putem recupera datele stocate pe acesta prin operații matematice simple asupra datelor de redundanță; în cazul unei defecțiuni a discului cu date de redundanță, avem încă date citite dintr-o matrice de discuri RAID-0.
Variantele RAID-3 și RAID-4 diferă prin aceea că, în primul caz, octeții individuali sunt intercalați, iar în al doilea - grupuri de octeți, „blocuri”.
Principalul dezavantaj al acestor două scheme este viteza extrem de scăzută de scriere în matrice, deoarece fiecare operație de scriere determină o actualizare a „sumei de control”, un bloc de redundanță pentru informațiile scrise. Evident, în ciuda structurii în dungi, performanța unei matrice RAID-3 și RAID-4 este limitată de performanța unui singur disc, cel pe care se află „blocul de redundanță”.

RAID-5
O încercare de a ocoli această limitare a dat naștere la următorul tip de RAID, care este în prezent cel mai utilizat, alături de RAID-10. Dacă scrierea unui „bloc de redundanță” pe disc limitează întreaga matrice, să-l răspândim și pe discurile matricei, să facem un disc nealocat pentru aceste informații, astfel operațiunile de actualizare a redundanței vor fi distribuite pe toate discurile matricei. Adică, ca și în cazul RAID-3 (4), luăm discuri pentru stocarea N informații în cantitate de N + 1 disc, dar spre deosebire de Tipul 3 și 4, acest disc este folosit și pentru a stoca date amestecate cu date de redundanță , ca restul N.
Defecte? Și ce zici fără ele. Problema cu înregistrarea lentă a fost parțial rezolvată, dar încă nu complet. Cu toate acestea, scrierea într-o matrice RAID-5 este mai lentă decât scrierea într-o matrice RAID-10. Dar RAID-5 este mai „eficient din punct de vedere al costurilor”. Pentru RAID-10, plătim exact jumătate din discuri pentru toleranță la erori, iar în cazul RAID-5, acesta este doar un singur disc.

Cu toate acestea, viteza de scriere scade proporțional cu creșterea numărului de discuri din matrice (spre deosebire de RAID-0, unde crește doar). Acest lucru se datorează faptului că atunci când scrie un bloc de date, matricea trebuie să recalculeze blocul de redundanță, pentru care citește blocurile „orizontale” rămase și recalculează blocul de redundanță în conformitate cu datele lor. Adică, pentru o operație de scriere, o matrice de 8 discuri (7 discuri de date + 1 suplimentar) va face 6 citiri în cache (blocurile de date rămase de pe toate discurile pentru a calcula blocul de redundanță), calculați blocul de redundanță din aceste blocuri , și faceți 2 scrieri (scrierea unui bloc de date de scris și suprascrierea unui bloc de redundanță). În sistemele moderne, o parte din margine este scoasă prin caching, dar cu toate acestea, prelungirea grupului RAID-5, deși provoacă o creștere proporțională a vitezei de citire, dar și o scădere corespunzătoare a vitezei de scriere.
Situația cu scăderea performanței la scrierea în RAID-5 dă naștere uneori la extremism curios, de exemplu, http://www.baarf.com/ ;)

Cu toate acestea, deoarece RAID-5 este cea mai eficientă structură RAID în ceea ce privește consumul de disc pe megaoctet, este utilizat pe scară largă acolo unde reducerea vitezei de scriere nu este un parametru decisiv, de exemplu, pentru stocarea de date pe termen lung sau pentru datele care sunt predominant citite. .
Separat, trebuie menționat că extinderea unei matrice de discuri RAID-5 prin adăugarea unui disc suplimentar determină o recalculare completă a întregului RAID, care poate dura ore și, în unele cazuri, zile, timp în care performanța matricei scade catastrofal.

RAID-6
Dezvoltarea în continuare a ideii RAID-5. Dacă calculăm redundanța suplimentară conform unei alte legi decât cea folosită în RAID-5, atunci vom putea menține accesul la date dacă două discuri din matrice eșuează.
Prețul pentru acesta este un disc suplimentar pentru datele celui de-al doilea „bloc de redundanță”. Adică, pentru a stoca date egale cu volumul de N discuri, va trebui să luăm N + 2 discuri. „Matematica” calculării blocurilor de redundanță devine mai complicată, ceea ce determină o scădere și mai mare a vitezei de scriere în comparație cu RAID-5 , dar fiabilitatea crește. Și în unele cazuri chiar depășește nivelul de fiabilitate al RAID-10. Este ușor de observat că RAID-10 rezistă și eșecului a două discuri dintr-o matrice, totuși, dacă aceste discuri aparțin aceleiași „oglindă” sau diferite, dar nu două discuri în oglindă. Și probabilitatea unei astfel de situații nu poate fi ignorată.

O creștere suplimentară a numărului de tipuri RAID are loc datorită „hibridizării”, așa că există RAID-0 + 1, care a fost deja considerat RAID-10, sau tot felul de RAID-51 himeric și așa mai departe.
Din fericire, ele nu apar în viața sălbatică, rămânând de obicei un „somn al minții” (ei bine, cu excepția RAID-10 deja descris mai sus).

Toate plăcile de bază moderne sunt echipate cu un controler RAID integrat, iar modelele de top au chiar mai multe controlere RAID integrate. Cât de mult sunt solicitate controlere RAID integrate de către utilizatorii casnici este o întrebare separată. În orice caz, o placă de bază modernă oferă utilizatorului posibilitatea de a crea o matrice RAID de pe mai multe discuri. Cu toate acestea, nu fiecare utilizator casnic știe cum să creeze o matrice RAID, ce nivel de matrice să aleagă și, în general, are o idee slabă despre avantajele și dezavantajele utilizării matricei RAID.
În acest articol, vă vom oferi un ghid rapid pentru a crea matrice RAID pe computerele de acasă și vom folosi un exemplu specific pentru a vă arăta cum puteți testa singur performanța unei matrice RAID.

Istoria creației

Termenul „matrice RAID” a apărut pentru prima dată în 1987, când cercetătorii americani Patterson, Gibson și Katz de la Universitatea din California, Berkeley, în articolul lor „A Case for Redundant Arrays of Inexpensive Discs, RAID”) au descris cum, în acest fel, poate combina mai multe hard disk-uri ieftine într-un singur dispozitiv logic, astfel încât rezultatul este creșterea capacității și vitezei sistemului, iar defecțiunea unităților individuale nu duce la defecțiunea întregului sistem.

Au trecut peste 20 de ani de la publicarea acestui articol, dar tehnologia de construire a matricelor RAID nu și-a pierdut actualitatea astăzi. Singurul lucru care s-a schimbat de atunci este decodarea acronimului RAID. Faptul este că inițial matricele RAID nu au fost construite deloc pe discuri ieftine, așa că cuvântul Ieftin (necostisitor) a fost schimbat în Independent (independent), ceea ce era mai adevărat.

Principiul de funcționare

Deci, RAID este o matrice redundantă de discuri independente (Redundant Arrays of Independent Discs), căreia îi este încredințată sarcina de a oferi toleranță la erori și de a îmbunătăți performanța. Toleranța la erori se realizează prin redundanță. Adică, o parte din capacitatea de spațiu pe disc este alocată în scopuri de service, devenind inaccesibilă utilizatorului.

Creșterea performanței subsistemului de discuri este asigurată de funcționarea simultană a mai multor discuri, iar în acest sens, cu cât mai multe discuri în matrice (până la o anumită limită), cu atât mai bine.

Unitățile dintr-o matrice pot fi partajate folosind acces paralel sau independent. Cu acces paralel, spațiul pe disc este împărțit în blocuri (stripe) pentru înregistrarea datelor. În mod similar, informațiile care trebuie scrise pe disc sunt împărțite în aceleași blocuri. La scriere, blocurile individuale sunt scrise pe discuri diferite, iar mai multe blocuri sunt scrise pe discuri diferite în același timp, ceea ce duce la o creștere a performanței în operațiunile de scriere. Informațiile necesare sunt citite și în blocuri separate simultan de pe mai multe discuri, ceea ce contribuie și la creșterea performanței proporțional cu numărul de discuri din matrice.

Trebuie remarcat faptul că modelul de acces paralel este implementat numai cu condiția ca dimensiunea cererii de scriere a datelor să fie mai mare decât dimensiunea blocului în sine. În caz contrar, este practic imposibil să scrieți mai multe blocuri în paralel. Imaginați-vă o situație în care dimensiunea unui singur bloc este de 8 KB, iar dimensiunea unei cereri de scriere a datelor este de 64 KB. În acest caz, informațiile sursă sunt tăiate în opt blocuri a câte 8 KB fiecare. Dacă există o matrice de patru discuri, atunci patru blocuri, sau 32 KB, pot fi scrise în același timp la un moment dat. Evident, în acest exemplu, viteza de scriere și viteza de citire vor fi de patru ori mai mari decât atunci când se utilizează un singur disc. Acest lucru este valabil doar pentru o situație ideală, cu toate acestea, dimensiunea cererii nu este întotdeauna un multiplu al mărimii blocului și al numărului de discuri din matrice.

Dacă dimensiunea datelor înregistrate este mai mică decât dimensiunea blocului, atunci este implementat un model fundamental diferit - acces independent. Mai mult, acest model poate fi folosit și atunci când dimensiunea datelor de scris este mai mare decât dimensiunea unui bloc. Cu acces independent, toate datele unei anumite cereri sunt scrise pe un disc separat, adică situația este identică cu cea a lucrului cu un singur disc. Avantajul modelului de acces independent este că, dacă mai multe solicitări de scriere (citire) ajung în același timp, toate vor fi executate pe discuri separate, independent unele de altele. Această situație este tipică, de exemplu, pentru servere.

În conformitate cu diferitele tipuri de acces, există diferite tipuri de matrice RAID, care sunt de obicei caracterizate prin niveluri RAID. Pe lângă tipul de acces, nivelurile RAID diferă prin modul în care sunt plasate și formate informațiile redundante. Informațiile redundante pot fi fie plasate pe un disc dedicat, fie distribuite pe toate discurile. Există multe modalități de a genera aceste informații. Cea mai simplă dintre acestea este duplicarea completă (redundanță 100 la sută) sau oglindirea. În plus, sunt utilizate coduri de corectare a erorilor, precum și calculul parității.

Niveluri RAID

În prezent, există mai multe niveluri RAID care pot fi considerate standardizate, acestea sunt RAID 0, RAID 1, RAID 2, RAID 3, RAID 4, RAID 5 și RAID 6.

Sunt folosite și diverse combinații de niveluri RAID, ceea ce vă permite să combinați avantajele acestora. Aceasta este de obicei o combinație între un fel de strat tolerant la erori și un nivel zero folosit pentru a îmbunătăți performanța (RAID 1+0, RAID 0+1, RAID 50).

Rețineți că toate controlerele RAID moderne acceptă funcția JBOD (Just a Bench Of Disks), care nu este destinată creării de matrice - oferă posibilitatea de a conecta discuri individuale la controlerul RAID.

Trebuie remarcat faptul că controlerele RAID integrate pe plăcile de bază pentru PC-urile de acasă nu acceptă toate nivelurile RAID. Controlerele RAID cu două porturi acceptă doar nivelurile 0 și 1, în timp ce controlerele RAID cu un număr mare de porturi (de exemplu, controlerul RAID cu 6 porturi integrat în podul de sud al chipset-ului ICH9R/ICH10R) acceptă și nivelurile 10 și 5.

În plus, dacă vorbim despre plăci de bază bazate pe chipset-uri Intel, acestea implementează și funcția Intel Matrix RAID, care vă permite să creați matrici RAID de mai multe niveluri pe mai multe hard disk-uri în același timp, alocand o parte din spațiul de disc pentru fiecare dintre ei.

RAID 0

Nivelul RAID 0, strict vorbind, nu este o matrice redundantă și, în consecință, nu oferă fiabilitatea stocării datelor. Cu toate acestea, acest nivel este utilizat în mod activ în cazurile în care este necesar să se asigure o performanță ridicată a subsistemului de disc. Când se creează o matrice RAID de nivel 0, informațiile sunt împărțite în blocuri (uneori aceste blocuri sunt numite dungi), care sunt scrise pe discuri separate, adică se creează un sistem cu acces paralel (dacă, desigur, dimensiunea blocului permite acest lucru ). Cu capacitatea de a I/O simultan de pe mai multe unități, RAID 0 oferă cele mai rapide viteze de transfer de date și cea mai eficientă utilizare a spațiului pe disc, deoarece nu este necesar spațiu pentru stocarea sumelor de control. Implementarea acestui nivel este foarte simplă. RAID 0 este utilizat în principal în zonele în care este necesar transferul rapid de cantități mari de date.

RAID 1 (disc în oglindă)

Nivelul RAID 1 este o matrice cu două discuri cu redundanță de 100%. Adică, datele sunt pur și simplu duplicate complet (oglindite), datorită cărora se atinge un nivel foarte ridicat de fiabilitate (precum și cost). Rețineți că implementarea nivelului 1 nu necesită partiționarea prealabilă a discurilor și a datelor în blocuri. În cel mai simplu caz, două unități conțin aceleași informații și sunt o unitate logică. Când un disc eșuează, altul își îndeplinește funcțiile (care este absolut transparent pentru utilizator). Restaurarea unei matrice se face prin simpla copiere. În plus, acest nivel dublează viteza de citire a informațiilor, deoarece această operație poate fi efectuată simultan de pe două discuri. O astfel de schemă de stocare a informațiilor este utilizată în principal în cazurile în care prețul securității datelor este mult mai mare decât costul implementării unui sistem de stocare.

RAID 5

RAID 5 este o matrice de discuri tolerantă la erori cu stocare de sumă de control distribuită. La scriere, fluxul de date este împărțit în blocuri (stripe) la nivel de octeți și simultan scris pe toate discurile din matrice într-o ordine ciclică.

Să presupunem că matricea conține n discuri și dimensiunea dungilor d. Pentru fiecare porțiune de n–1 se calculează suma de control cu ​​dungi p.

Dunga d1înregistrat pe primul disc, stripe d2- pe al doilea și așa mai departe până la dungă d n–1, care este scris la ( n–1) al-lea disc. În continuare n suma de control pentru scrierea pe disc p n, iar procesul se repetă ciclic de pe primul disc pe care este scris banda d n.

Proces de înregistrare (n–1) dungi și suma lor de control este produsă simultan pentru toți n discuri.

Pentru a calcula suma de control, se utilizează o operație XOR pe biți pe blocurile de date care sunt scrise. Da, dacă există n hard disk-uri, d- bloc de date (stripe), apoi suma de control este calculată prin următoarea formulă:

p n = d 1 d2 ... d 1–1 .

În cazul unei defecțiuni a oricărui disc, datele de pe acesta pot fi recuperate din datele de control și din datele rămase pe discuri sănătoase.

Ca o ilustrare, luați în considerare blocurile de patru biți. Să presupunem că există doar cinci discuri pentru stocarea datelor și scrierea sumelor de control. Dacă există o secvență de biți 1101 0011 1100 1011, împărțiți în blocuri de patru biți, atunci trebuie efectuată următoarea operație pe biți pentru a calcula suma de control:

1101 0011 1100 1011 = 1001.

Astfel, suma de control scrisă pe discul 5 este 1001.

Dacă unul dintre discuri, de exemplu al patrulea, eșuează, atunci blocul d4= 1100 va fi ilizibil. Cu toate acestea, valoarea sa poate fi restabilită cu ușurință din suma de control și din valorile blocurilor rămase folosind aceeași operațiune XOR:

d4 = d1 d2d4p 5 .

În exemplul nostru, obținem:

d4 = (1101) (0011) (1100) (1011) = 1001.

În cazul RAID 5, toate discurile din matrice au aceeași dimensiune, dar capacitatea totală a subsistemului de disc disponibil pentru scriere este redusă cu exact un disc. De exemplu, dacă cinci discuri au 100 GB, atunci dimensiunea reală a matricei este de 400 GB deoarece 100 GB sunt alocați pentru informațiile de paritate.

RAID 5 poate fi construit pe trei sau mai multe hard disk-uri. Pe măsură ce numărul de hard disk-uri dintr-o matrice crește, redundanța scade.

RAID 5 are o arhitectură de acces independentă care permite efectuarea simultană a mai multor citiri sau scrieri.

RAID 10

RAID 10 este o combinație de niveluri 0 și 1. Cerința minimă pentru acest nivel este de patru unități. Într-o matrice RAID 10 de patru unități, acestea sunt combinate în perechi în matrice de nivel 0 și ambele matrice sunt combinate ca unități logice într-o matrice de nivel 1. O altă abordare este, de asemenea, posibilă: inițial, discurile sunt combinate la nivel de oglindă. 1 și apoi unități logice bazate pe aceste matrice - la o matrice de nivel 0.

Intel Matrix RAID

Matricele RAID considerate de nivelurile 5 și 1 sunt rareori utilizate acasă, ceea ce se datorează în primul rând costului ridicat al unor astfel de soluții. Cel mai adesea pentru computerele de acasă, este folosită o matrice de nivel 0 pe două discuri. După cum am observat deja, nivelul RAID 0 nu oferă securitate pentru stocare și, prin urmare, utilizatorii finali se confruntă cu o alegere: creați o matrice RAID de nivel 0 rapidă, dar nu de încredere sau, dublarea costului spațiului pe disc, - RAID- a matrice de nivel 1 care asigură fiabilitatea stocării datelor, dar nu oferă un câștig semnificativ de performanță.

Pentru a rezolva această problemă dificilă, Intel a dezvoltat tehnologia Intel Matrix Storage, care combină beneficiile matricelor Tier 0 și Tier 1 pe doar două unități fizice. Și pentru a sublinia că în acest caz vorbim nu doar despre o matrice RAID, ci despre o matrice care combină atât discuri fizice, cât și discuri logice, cuvântul „matrice” este folosit în numele tehnologiei în locul cuvântului „matrice”. ”.

Deci, ce este o matrice RAID cu două discuri bazată pe tehnologia Intel Matrix Storage? Ideea de bază este că, dacă un sistem are mai multe hard disk-uri și o placă de bază cu un chipset Intel care acceptă Intel Matrix Storage Technology, este posibil să se împartă spațiul pe disc în mai multe părți, fiecare dintre acestea va funcționa ca o matrice RAID separată.

Luați în considerare un exemplu simplu de matrice RAID de două discuri de 120 GB. Oricare dintre discuri poate fi împărțit în două discuri logice, de exemplu, de 40 și 80 GB fiecare. Apoi, două unități logice de aceeași dimensiune (de exemplu, 40 GB fiecare) pot fi combinate într-o matrice RAID de nivel 1, iar unitățile logice rămase într-o matrice RAID de nivel 0.

În principiu, folosind două discuri fizice, este posibil să se creeze doar una sau două matrice RAID de nivel 0, dar este imposibil să se obțină doar matrice de nivel 1. Adică, dacă sistemul are doar două discuri, atunci tehnologia Intel Matrix Storage vă permite să creați următoarele tipuri de matrice RAID:

  • o matrice de nivel 0;
  • două matrice de nivel 0;
  • matricea de nivel 0 și matricea de nivel 1.

Dacă în sistem sunt instalate trei hard disk-uri, atunci pot fi create următoarele tipuri de matrice RAID:

  • o matrice de nivel 0;
  • o matrice de nivel 5;
  • două matrice de nivel 0;
  • două matrice de nivel 5;
  • matricea de nivel 0 și matricea de nivel 5.

Dacă în sistem sunt instalate patru hard disk-uri, atunci este posibil să creați o matrice RAID de nivel 10, precum și combinații de nivel 10 și nivel 0 sau 5.

De la teorie la practică

Dacă vorbim despre computerele de acasă, atunci cele mai populare și populare sunt matricele RAID de nivelurile 0 și 1. Utilizarea matricelor RAID de trei sau mai multe discuri în computerele de acasă este mai degrabă o excepție de la regulă. Acest lucru se datorează faptului că, pe de o parte, costul matricei RAID crește proporțional cu numărul de discuri implicate în acesta, iar pe de altă parte, pentru computerele de acasă, capacitatea matricei de discuri este de o importanță capitală. , și nu performanța și fiabilitatea acestuia.

Prin urmare, în cele ce urmează, vom lua în considerare matricele RAID de nivelurile 0 și 1 bazate pe doar două discuri. Scopul studiului nostru va fi acela de a compara performanța și funcționalitatea matricelor RAID 0 și 1 bazate pe mai multe controlere RAID integrate, precum și de a studia dependența caracteristicilor de viteză ale unui array RAID de dimensiunea stripe.

Cert este că, deși teoretic, atunci când se folosește o matrice RAID 0, viteza de citire și scriere ar trebui să se dubleze, în practică, creșterea caracteristicilor de viteză este mult mai puțin modestă și este diferită pentru diferite controlere RAID. Același lucru este valabil și pentru o matrice RAID de nivel 1: în ciuda faptului că, în teorie, viteza de citire ar trebui să se dubleze, în practică totul nu este atât de fluid.

Pentru testarea comparativă a controlerelor RAID, am folosit o placă de bază Gigabyte GA-EX58A-UD7. Această placă se bazează pe chipset-ul Intel X58 Express cu ICH10R southbridge, care are un controler RAID SATA II cu șase porturi integrat care acceptă nivelurile RAID 0, 1, 10 și 5 cu funcția Intel Matrix RAID. În plus, controlerul GIGABYTE SATA2 RAID este integrat pe placa Gigabyte GA-EX58A-UD7, pe baza căreia sunt implementate două porturi SATA II cu capacitatea de a organiza matrice RAID de niveluri 0, 1 și JBOD.

Placa GA-EX58A-UD7 integrează și controlerul Marvell 9128 SATA III, pe baza căruia sunt implementate două porturi SATA III cu capacitatea de a organiza matrice RAID de niveluri 0, 1 și JBOD.

Astfel, placa Gigabyte GA-EX58A-UD7 are trei controlere RAID separate, pe baza cărora puteți crea matrice RAID de nivelurile 0 și 1 și le puteți compara între ele. Amintiți-vă că standardul SATA III este compatibil cu standardul SATA II, așa că pe baza controlerului Marvell 9128 care acceptă unități SATA III, puteți crea și matrice RAID folosind unități SATA II.

Standul de testare a avut următoarea configurație:

  • procesor - Intel Core i7-965 Extreme Edition;
  • placa de baza - Gigabyte GA-EX58A-UD7;
  • Versiunea BIOS - F2a;
  • hard disk-uri - două unități Western Digital WD1002FBYS, o unitate Western Digital WD3200AAKS;
  • controlere RAID integrate:
  • ICH10R,
  • GIGABYTE SATA2,
  • Marvell 9128;
  • memorie - DDR3-1066;
  • dimensiunea memoriei - 3 GB (trei module a câte 1024 MB fiecare);
  • modul de funcționare a memoriei - DDR3-1333, modul de funcționare cu trei canale;
  • placa video - Gigabyte GeForce GTS295;
  • sursa de alimentare - Tagan 1300W.

Testarea a fost efectuată sub sistemul de operare Microsoft Windows 7 Ultimate (32 de biți). Sistemul de operare a fost instalat pe un disc Western Digital WD3200AAKS, care a fost conectat la portul controler SATA II integrat în podul de sud ICH10R. Matricea RAID a fost asamblată pe două discuri WD1002FBYS cu interfață SATA II.

Pentru a măsura caracteristicile de viteză ale matricelor RAID create, am folosit utilitarul IOmeter, care este un standard industrial pentru măsurarea performanței sistemelor de discuri.

Utilitar IOmeter

Deoarece am conceput acest articol ca un fel de ghid al utilizatorului pentru crearea și testarea matricelor RAID, ar fi logic să începem cu o descriere a utilitarului IOmeter (Input / Output meter), care, așa cum am observat deja, este un fel de standard industrial pentru măsurarea performanței sistemelor de discuri. Acest utilitar este gratuit și poate fi descărcat de la http://www.iometer.org.

Utilitarul IOmeter este un test sintetic și vă permite să lucrați cu hard disk-uri care nu sunt partiționate în partiții logice, astfel încât să puteți testa unitățile indiferent de structura fișierelor și să reduceți influența sistemului de operare la zero.

La testare, este posibil să creați un model de acces specific, sau „model”, care vă permite să specificați performanța unor operațiuni specifice de către hard disk. În cazul creării unui model de acces anume, este permisă modificarea următorilor parametri:

  • dimensiunea cererii de transfer de date;
  • distribuție aleatorie/secvențială (în %);
  • distribuția operațiilor de citire/scriere (în %);
  • numărul de operațiuni I/O individuale care rulează în paralel.

Utilitarul IOmeter nu necesită instalare pe un computer și constă din două părți: IOmeter în sine și Dynamo.

IOmeter este o parte de control a programului cu o interfață grafică cu utilizatorul care vă permite să faceți toate setările necesare. Dynamo este un generator de sarcină care nu are interfață. De fiecare dată când rulați IOmeter.exe, generatorul de încărcare Dynamo.exe este lansat automat și.

Pentru a începe să lucrați cu programul IOmeter, trebuie doar să rulați fișierul IOmeter.exe. Aceasta deschide fereastra principală a programului IOmeter (Fig. 1).

Orez. 1. Fereastra principală a programului IOmeter

Trebuie remarcat faptul că utilitarul IOmeter vă permite să testați nu numai sistemele de discuri locale (DAS), ci și unitățile de rețea (NAS). De exemplu, poate fi folosit pentru a testa performanța subsistemului de disc al serverului (server de fișiere) folosind mai mulți clienți de rețea. Prin urmare, unele dintre filele și instrumentele din fereastra utilitarului IOmeter se referă în mod specific la setările de rețea ale programului. Este clar că atunci când testăm discurile și matricele RAID, nu vom avea nevoie de aceste caracteristici ale programului și, prin urmare, nu vom explica scopul tuturor filelor și instrumentelor.

Deci, când porniți programul IOmeter, structura arborescentă a tuturor generatoarelor de sarcină care rulează (instanțele Dynamo) va fi afișată în partea stângă a ferestrei principale (în fereastra Topologie). Fiecare instanță generatoare de încărcare Dynamo care rulează este numită manager. În plus, programul IOmeter are mai multe fire și fiecare fir individual al unei instanțe generatoare de încărcare Dynamo este numit Worker. Numărul de lucrători care rulează corespunde întotdeauna cu numărul de nuclee de procesor logic.

În exemplul nostru, există un singur computer cu un procesor quad-core care acceptă tehnologia Hyper-Threading, deci sunt porniți un singur manager (o instanță de Dynamo) și opt (în funcție de numărul de nuclee de procesor logic).

De fapt, pentru a testa discurile în această fereastră, nu este nevoie să schimbați sau să adăugați nimic.

Dacă evidențiați numele computerului în structura arborescentă a instanțelor care rulează Dynamo cu mouse-ul, atunci în fereastră Ţintă fila țintă de disc vor fi afișate toate discurile, matricele de discuri și alte unități (inclusiv unități de rețea) instalate în computer. Acestea sunt unitățile cu care poate funcționa programul IOmeter. Suporturile pot fi marcate cu galben sau albastru. Galben indică partițiile media logice, iar albastru indică dispozitivele fizice fără partiții logice create pe acestea. Partiția logică poate fi tăiată sau nu. Faptul este că, pentru ca programul să funcționeze cu o partiție logică, acesta trebuie mai întâi pregătit prin crearea unui fișier special pe ea, egal ca dimensiune cu capacitatea întregii partiții logice. Dacă partiția logică este tăiată, atunci aceasta înseamnă că partiția nu a fost încă pregătită pentru testare (va fi pregătită automat în prima etapă a testării), dar dacă partiția nu este tăiată, atunci aceasta înseamnă că un fișier a fost deja creat pe partiția logică, complet gata pentru testare.

Rețineți că, în ciuda capacității acceptate de a lucra cu partiții logice, este optim să testați discurile care nu sunt partiționate în partiții logice. Puteți șterge o partiție logică a unui disc foarte simplu - prin intermediul snap-in-ului Managementul discurilor. Pentru a-l accesa, trebuie doar să faceți clic dreapta pe pictogramă. calculator pe desktop și în meniul care se deschide, selectați elementul Administra. În fereastra deschisă management computerizatîn partea stângă, selectați Depozitare, și în ea - Managementul discurilor. După aceea, în partea dreaptă a ferestrei management computerizat vor fi afișate toate unitățile conectate. Făcând clic dreapta pe discul dorit și selectând elementul din meniul care se deschide Șterge volumul..., puteți șterge o partiție logică de pe un disc fizic. Amintiți-vă că atunci când ștergeți o partiție logică de pe un disc, toate informațiile de pe aceasta sunt șterse fără posibilitatea de recuperare.

În general, folosind utilitarul IOmeter, puteți testa doar discuri goale sau matrice de discuri. Adică, nu puteți testa discul sau matricea de discuri pe care este instalat sistemul de operare.

Deci, reveniți la descrierea utilitarului IOmeter. La fereastră Ţintă fila țintă de disc trebuie să selectați discul (sau matricea de discuri) care va fi testat. Apoi, trebuie să deschideți fila Specificații de acces(Fig. 2), pe care se va putea determina scenariul de testare.

Orez. 2. Accesați fila Specificații a utilitarului IOmeter

La fereastră Specificații globale de acces există o listă de scripturi de testare predefinite care pot fi atribuite managerului de descărcare. Cu toate acestea, nu vom avea nevoie de aceste scripturi, așa că toate pot fi selectate și șterse (există un buton pentru aceasta). Șterge). După aceea, faceți clic pe butonul Nou pentru a crea un nou script de testare. În fereastra deschisă Editați specificația de acces puteți defini un scenariu de pornire pe disc sau RAID.

Să presupunem că vrem să aflăm dependența vitezei de citire și scriere secvențială (liniară) de dimensiunea blocului de cerere de transfer de date. Pentru a face acest lucru, trebuie să generăm o secvență de scripturi de încărcare în modul de citire secvențială la diferite dimensiuni de bloc și apoi o secvență de scripturi de încărcare în modul de scriere secvențială la diferite dimensiuni de bloc. De obicei, dimensiunile blocurilor sunt alese ca o serie, fiecare membru fiind de două ori mai mare decât cel precedent, iar primul membru al acestei serii este de 512 octeți. Adică, dimensiunile blocurilor sunt următoarele: 512 octeți, 1, 2, 4, 8, 16, 32, 64, 128, 256, 512 KB, 1 MB. Nu are sens ca dimensiunea blocului să fie mai mare de 1 MB pentru operațiunile secvențiale, deoarece cu dimensiuni atât de mari ale blocurilor de date, viteza operațiilor secvențiale nu se modifică.

Deci, să creăm un script de încărcare de citire secvențială pentru un bloc de 512 octeți.

În câmp Nume fereastră Editați specificația de acces introduceți numele scriptului de descărcare. De exemplu, Sequential_Read_512. Mai departe în câmp Dimensiunea cererii de transfer setați dimensiunea blocului de date la 512 octeți. Glisor Distribuție procentuală aleatorie/secvențială(raportul procentual între operațiile secvenţiale și selective) ne deplasăm complet spre stânga, astfel încât toate operaţiile noastre să fie numai secvenţiale. Ei bine, cursorul , care specifică procentul dintre operațiunile de citire și scriere, ne deplasăm complet spre dreapta, astfel încât toate operațiunile noastre să fie doar în citire. Alte opțiuni în fereastră Editați specificația de acces nu este nevoie de schimbare (Fig. 3).

Orez. 3. Fereastra Edit Access Specification pentru crearea unui script de încărcare de citire secvenţială
cu o dimensiune a blocului de date de 512 octeți

Faceți clic pe butonul Bine, iar primul script creat de noi va fi afișat în fereastră Specificații globale de acces fila Specificații de acces Utilitare IOmeter.

În mod similar, trebuie să creați scripturi pentru restul blocurilor de date, totuși, pentru a vă ușura munca, este mai ușor să nu creați un script de fiecare dată făcând clic pe butonul Nouși, după ce ați selectat ultimul script creat, apăsați butonul Editare copie(editează copie). După aceea, fereastra se va deschide din nou. Editați specificația de acces cu setările ultimului nostru script generat. În ea, va fi suficient să schimbați doar numele și dimensiunea blocului. După ce ați făcut o procedură similară pentru toate celelalte dimensiuni de bloc, puteți începe să generați scripturi pentru înregistrarea secvențială, care se face exact în același mod, cu excepția faptului că glisorul Distribuție procentuală de citire/scriere, care specifică raportul procentual dintre operațiile de citire și scriere, trebuie deplasat complet spre stânga.

În mod similar, puteți crea scripturi pentru scriere și citire selectivă.

După ce toate scripturile sunt gata, acestea trebuie să fie atribuite managerului de pornire, adică să indice cu ce scripturi va funcționa Dinam.

Pentru a face acest lucru, verificăm încă o dată că în fereastră topologie numele computerului este evidențiat (adică managerul de încărcare de pe computerul local) și nu un lucrător separat. Acest lucru asigură că scenariile de încărcare sunt atribuite tuturor lucrătorilor simultan. Urmează în fereastră Specificații globale de acces selectați toate scenariile de încărcare pe care le-am creat și apăsați butonul Adăuga. Toate scenariile de încărcare selectate vor fi adăugate în fereastră (Fig. 4).

Orez. 4. Atribuirea scenariilor de încărcare create managerului de încărcare

După aceea, trebuie să accesați fila Test de configurare(Fig. 5), unde puteți seta timpul de execuție pentru fiecare script pe care l-am creat. Pentru aceasta, grupul timpul de rulare setați timpul de execuție al scenariului de încărcare. Va fi suficient să setați timpul egal cu 3 minute.

Orez. 5. Setarea timpului de execuție a scenariului de încărcare

În plus, în teren Descriere Test trebuie să specificați numele întregului test. În principiu, această filă are o mulțime de alte setări, dar pentru sarcinile noastre nu sunt necesare.

După ce au fost făcute toate setările necesare, se recomandă salvarea testului creat făcând clic pe butonul cu imaginea unei dischete din bara de instrumente. Testul este salvat cu extensia *.icf. Ulterior, puteți utiliza scriptul de încărcare creat rulând nu fișierul IOmeter.exe, ci fișierul salvat cu extensia *.icf.

Acum puteți trece direct la testare făcând clic pe butonul cu imaginea steagului. Vi se va solicita să denumiți fișierul cu rezultatele testului și să selectați locația acestuia. Rezultatele testului sunt salvate într-un fișier CSV, care este apoi ușor de exportat în Excel și, prin setarea unui filtru pe prima coloană, selectați datele dorite cu rezultatele testului.

În timpul testării, rezultatele intermediare pot fi observate pe filă afișarea rezultatelor, și puteți determina scenariul de încărcare căruia îi aparțin în filă Specificații de acces. La fereastră Specificație de acces atribuită scriptul care rulează este afișat în verde, scripturile finalizate în roșu și scripturile care nu au fost încă executate în albastru.

Deci, am acoperit tehnicile de bază de lucru cu utilitarul IOmeter, care va fi necesar pentru a testa discuri individuale sau matrice RAID. Rețineți că nu am vorbit despre toate caracteristicile utilitarului IOmeter, dar o descriere a tuturor caracteristicilor sale depășește scopul acestui articol.

Crearea unei matrice RAID bazată pe controlerul GIGABYTE SATA2

Deci, începem să creăm o matrice RAID cu două discuri folosind controlerul RAID GIGABYTE SATA2 integrat pe placă. Desigur, Gigabyte în sine nu produce cipuri și, prin urmare, un cip reetichetat de la o altă companie este ascuns sub cipul GIGABYTE SATA2. După cum puteți vedea din fișierul INF al driverului, acesta este un controler din seria JMicron JMB36x.

Accesul la meniul de setări al controlerului este posibil în etapa de pornire a sistemului, pentru care trebuie să apăsați combinația de taste Ctrl + G atunci când pe ecran apare inscripția corespunzătoare. Desigur, mai întâi în setările BIOS trebuie să definiți modul de funcționare a două porturi SATA legate de controlerul GIGABYTE SATA2 ca RAID (în caz contrar, accesul la meniul configurator de matrice RAID va fi imposibil).

Meniul de configurare a controlerului GIGABYTE SATA2 RAID este destul de simplu. După cum am observat deja, controlerul este dual-port și vă permite să creați matrice RAID de nivel 0 sau 1. Prin meniul de setări controler, puteți elimina sau crea o matrice RAID. Când creați o matrice RAID, este posibil să specificați numele acesteia, să selectați nivelul matricei (0 sau 1), să setați dimensiunea stripe pentru RAID 0 (128, 84, 32, 16, 8 sau 4K) și, de asemenea, să determinați dimensiunea a matricei.

Odată ce o matrice a fost creată, nu sunt posibile modificări ale acesteia. Adică, nu puteți modifica ulterior pentru matricea creată, de exemplu, nivelul sau dimensiunea benzii. Pentru a face acest lucru, mai întâi trebuie să ștergeți matricea (cu pierdere de date), apoi să o creați din nou. De fapt, acest lucru nu este exclusiv pentru controlerul GIGABYTE SATA2. Imposibilitatea modificării parametrilor matricelor RAID create este o caracteristică a tuturor controlerelor, care decurge din însuși principiul implementării unei matrice RAID.

Odată ce o matrice bazată pe controler GIGABYTE SATA2 a fost creată, informațiile actuale despre aceasta pot fi vizualizate folosind utilitarul GIGABYTE RAID Configurer, care este instalat automat cu driverul.

Crearea unei matrice RAID bazată pe controlerul Marvell 9128

Configurarea controlerului RAID Marvell 9128 este posibilă numai prin setările BIOS ale plăcii Gigabyte GA-EX58A-UD7. În general, trebuie spus că meniul configuratorului controlerului Marvell 9128 este oarecum brut și poate induce în eroare utilizatorii neexperimentați. Cu toate acestea, despre aceste defecte minore vom vorbi puțin mai târziu, dar deocamdată vom lua în considerare principala funcționalitate a controlerului Marvell 9128.

Deci, deși acest controler acceptă unități SATA III, este și pe deplin compatibil cu unitățile SATA II.

Controlerul Marvell 9128 vă permite să creați o matrice RAID de niveluri 0 și 1 bazată pe două discuri. Pentru o matrice de nivel 0, puteți specifica o dimensiune a benzii de 32 sau 64 KB și puteți specifica, de asemenea, numele matricei. În plus, există o astfel de opțiune precum Gigabyte Rounding, care are nevoie de o explicație. În ciuda numelui, în consonanță cu numele producătorului, funcția Gigabyte Rounding nu are nicio legătură cu aceasta. Mai mult, nu are nimic de-a face cu o matrice RAID de nivel 0, deși poate fi definită în setările controlerului special pentru o matrice de acest nivel. De fapt, acesta este primul dintre acele deficiențe ale configuratorului controlerului Marvell 9128 pe care le-am menționat. Caracteristica Gigabyte Rounding este definită doar pentru nivelul RAID 1. Vă permite să utilizați două unități (de exemplu, producători diferiți sau modele diferite) cu capacități ușor diferite pentru a crea o matrice RAID de nivel 1. Funcția Gigabyte Rounding stabilește doar diferența dintre dimensiunile a două discuri utilizate pentru a crea o matrice RAID de nivel 1. În controlerul Marvell 9128, funcția Gigabyte Rounding vă permite să setați diferența de dimensiuni ale discurilor la 1 sau 10 GB.

Un alt dezavantaj al configuratorului de controler Marvell 9128 este că atunci când creează o matrice RAID de nivel 1, utilizatorul are opțiunea de a selecta dimensiunea stripe (32 sau 64 KB). Cu toate acestea, conceptul de stripe nu este definit deloc pentru o matrice RAID de nivel 1.

Crearea unei matrice RAID bazată pe controlerul integrat în ICH10R

Controlerul RAID integrat în ICH10R southbridge este cel mai comun. După cum sa menționat deja, acest controler RAID are 6 porturi și acceptă nu numai crearea de matrice RAID 0 și RAID 1, ci și RAID 5 și RAID 10.

Accesul la meniul de setări al controlerului este posibil în etapa de pornire a sistemului, pentru care trebuie să apăsați combinația de taste Ctrl + I atunci când pe ecran apare inscripția corespunzătoare. Desigur, trebuie mai întâi să definiți modul de operare al acestui controler ca RAID în setările BIOS (în caz contrar, accesul la meniul configuratorului de matrice RAID va fi imposibil).

Meniul de configurare a controlerului RAID este destul de simplu. Prin meniul de setări controler, puteți șterge sau crea o matrice RAID. Când creați o matrice RAID, puteți să specificați numele acesteia, să selectați nivelul matricei (0, 1, 5 sau 10), să setați dimensiunea benzii pentru RAID 0 (128, 84, 32, 16, 8 sau 4K) și definiți dimensiunea matricei.

Comparație de performanță RAID

Pentru a testa matricele RAID folosind utilitarul IOmeter, am creat scenarii de încărcare de citire secvențială, scriere secvențială, citire selectivă și scriere selectivă. Dimensiunile blocurilor de date din fiecare scenariu de încărcare au fost următoarea secvență: 512 octeți, 1, 2, 4, 8, 16, 32, 64, 128, 256, 512 KB, 1 MB.

Pe fiecare dintre controlerele RAID a fost creată o matrice RAID 0 cu toate dimensiunile de stripe permise și o matrice RAID 1. În plus, pentru a putea evalua câștigul de performanță obținut prin utilizarea unei matrice RAID, am testat și un singur disc. pe fiecare dintre controlerele RAID.

Deci, să ne întoarcem la rezultatele testării noastre.

Controler GIGABYTE SATA2

În primul rând, să ne uităm la rezultatele testării matricelor RAID bazate pe controlerul GIGABYTE SATA2 (Figura 6-13). În general, controlerul s-a dovedit a fi literalmente misterios, iar performanța sa a fost pur și simplu dezamăgitoare.

Orez. 6. Viteza constantă
și operațiuni selective pe disc
Western Digital WD1002FBYS

Orez. 7. Viteza constantă

cu o dimensiune a dungii de 128 KB
(controler GIGABYTE SATA2)

Orez. 12. Viteza secvenţială
și operațiuni selective pentru RAID 0
cu o dimensiune a dungii de 4 KB
(controler GIGABYTE SATA2)

Orez. 13.Viteza secvenţială
și operațiuni selective
pentru RAID 1 (controler GIGABYTE SATA2)

Privind performanța unei singure unități (fără RAID), viteza maximă de citire secvenţială este de 102 MB/s, iar viteza maximă de scriere secvenţială este de 107 MB/s.

Când se creează o matrice RAID 0 cu o dimensiune stripe de 128 KB, viteza maximă de citire și scriere secvențială crește la 125 MB / s, adică o creștere de aproximativ 22%.

Cu o dimensiune de bandă de 64, 32 sau 16 KB, viteza maximă de citire secvenţială este de 130 MB/s, iar viteza maximă de scriere secvenţială este de 141 MB/s. Adică, cu dimensiunile benzilor specificate, viteza maximă de citire secvențială crește cu 27%, iar viteza maximă de scriere secvențială - cu 31%.

De fapt, acest lucru nu este suficient pentru o matrice de nivel 0 și aș dori ca viteza maximă a operațiunilor secvențiale să fie mai mare.

Cu o dimensiune stripe de 8 KB, viteza maximă a operațiunilor secvențiale (citire și scriere) rămâne aproximativ aceeași ca și cu o dimensiune stripe de 64, 32 sau 16 KB, dar există probleme evidente cu citirea selectivă. Pe măsură ce dimensiunea blocului de date crește până la 128 KB, viteza de citire selectivă (cum ar trebui să fie) crește proporțional cu dimensiunea blocului de date. Cu toate acestea, cu o dimensiune a blocului de date de peste 128 KB, viteza de citire selectivă scade la aproape zero (la aproximativ 0,1 MB / s).

Cu o dimensiune a benzii de 4 KB, nu numai viteza de citire selectivă scade cu o dimensiune a blocului de peste 128 KB, ci și viteza de citire secvențială cu o dimensiune a blocului de peste 16 KB.

Utilizarea unei matrice RAID 1 pe un controler GIGABYTE SATA2 face o diferență mică (comparativ cu o singură unitate) în ceea ce privește viteza de citire secvențială, dar viteza maximă de scriere secvențială scade la 75 MB/s. Amintiți-vă că pentru o matrice RAID 1, viteza de citire ar trebui să crească, iar viteza de scriere nu ar trebui să scadă în comparație cu viteza de citire și scriere a unui singur disc.

Pe baza rezultatelor testelor controlerului GIGABYTE SATA2, se poate trage o singură concluzie. Utilizarea acestui controler pentru a crea matrice RAID 0 și RAID 1 are sens numai atunci când toate celelalte controlere RAID (Marvell 9128, ICH10R) sunt deja activate. Deși este destul de greu de imaginat o astfel de situație.

Controler Marvell 9128

Controlerul Marvell 9128 a arătat performanțe mult mai rapide în comparație cu controlerul GIGABYTE SATA2 (Figura 14-17). De fapt, diferențele apar chiar și atunci când controlerul funcționează cu un singur disc. În timp ce controlerul GIGABYTE SATA2 are o viteză maximă de citire secvenţială de 102 MB/s şi se realizează cu o dimensiune a blocului de date de 128 KB, pentru controlerul Marvell 9128 viteza maximă de citire secvenţială este de 107 MB/s şi se realizează cu un bloc de date. dimensiune de 16 KB.

Când creați o matrice RAID 0 cu o dimensiune de bandă de 64 și 32 KB, viteza maximă de citire secvenţială crește la 211 MB / s, iar scrierea secvenţială - până la 185 MB / s. Adică, cu dimensiunile benzilor specificate, viteza maximă de citire secvențială crește cu 97%, iar viteza maximă de scriere secvențială - cu 73%.

Nu există o diferență semnificativă de viteză între matricele RAID 0 cu o dimensiune a benzilor de 32 și 64 KB, totuși, utilizarea unei benzi de 32 KB este mai de preferat, deoarece în acest caz viteza operațiunilor secvențiale cu o dimensiune a blocului mai mică de 128. KB va fi puțin mai mare.

Când se creează o matrice RAID 1 pe controlerul Marvell 9128, viteza maximă de operare secvenţială este aproape neschimbată în comparaţie cu o singură unitate. Deci, dacă pentru un singur disc viteza maximă de operare secvențială este de 107 MB / s, atunci pentru RAID 1 este de 105 MB / s. De asemenea, rețineți că pentru RAID 1, viteza de citire selectivă este ușor degradată.

În general, trebuie remarcat faptul că controlerul Marvell 9128 are caracteristici bune de viteză și poate fi folosit atât pentru a crea matrice RAID, cât și pentru a conecta discuri individuale la acesta.

Controler ICH10R

Controlerul RAID încorporat în ICH10R s-a dovedit a fi cel mai performant pe care l-am testat vreodată (Figura 18-25). Când este folosit cu o singură unitate (fără a crea o matrice RAID), performanța sa este de fapt aceeași cu cea a controlerului Marvell 9128. Viteza maximă de citire și scriere secvențială este de 107 MB și este atinsă cu o dimensiune a blocului de date de 16 KB.

Orez. 18. Viteza secvenţială
și operațiuni selective
pentru unitatea Western Digital WD1002FBYS (controler ICH10R)

Dacă vorbim despre matricea RAID 0 de pe controlerul ICH10R, atunci viteza maximă de citire și scriere secvențială nu depinde de dimensiunea benzii și este de 212 MB/s. Doar dimensiunea blocului de date depinde de dimensiunea benzii, la care se atinge valoarea maximă a vitezei de citire și scriere secvențială. După cum arată rezultatele testului, pentru RAID 0 bazat pe controlerul ICH10R, este optim să folosiți o bandă de 64 KB. În acest caz, viteza maximă de citire și scriere secvențială este atinsă cu o dimensiune a blocului de date de numai 16 KB.

Deci, în rezumat, subliniem încă o dată că controlerul RAID încorporat în ICH10R depășește semnificativ toate celelalte controlere RAID integrate în ceea ce privește performanța. Și având în vedere că are și mai multe funcționalități, este optim să folosiți acest controler special și să uitați pur și simplu de existența tuturor celorlalte (cu excepția cazului în care, desigur, în sistem sunt folosite unități SATA III).

Hard disk-urile joacă un rol important în computer. Pe ele sunt stocate diverse informații despre utilizator, sistemul de operare este lansat de la ele etc. Hard disk-urile nu durează pentru totdeauna și au o anumită marjă de siguranță. Și, de asemenea, fiecare hard disk are propriile sale caracteristici distinctive.

Cel mai probabil, într-o zi ați auzit că așa-numitele matrice raid pot fi făcute din hard disk-uri obișnuite. Acest lucru este necesar pentru a îmbunătăți performanța unităților, precum și pentru a asigura fiabilitatea stocării informațiilor. În plus, astfel de matrice pot avea propriile numere (0, 1, 2, 3, 4 etc.). În acest articol, vă vom spune despre matricele RAID.

RAID este o colecție de hard disk-uri sau o matrice de discuri. După cum am spus deja, o astfel de matrice asigură fiabilitatea stocării datelor și, de asemenea, crește viteza de citire sau scriere a informațiilor. Există diverse configurații RAID, care sunt marcate cu numerele 1, 2, 3, 4 și așa mai departe. și diferă în funcțiile pe care le îndeplinesc. Folosind astfel de matrice cu configurația 0, veți îmbunătăți considerabil performanța. O singură matrice RAID garantează siguranța completă a datelor dvs., deoarece dacă una dintre unități se defectează, informațiile vor fi localizate pe al doilea hard disk.

De fapt, Matrice RAID este al 2-lea sau al n-lea număr de hard disk-uri conectate la placa de bază care acceptă capacitatea de a crea raiduri. Programatic, puteți selecta configurația raid, adică specificați cum ar trebui să funcționeze aceleași discuri. Pentru a face acest lucru, trebuie să specificați setările din BIOS.

Pentru a instala array-ul avem nevoie de o placa de baza care suporta tehnologia raid, 2 hard disk-uri identice (complet din toate punctele de vedere), pe care le conectam la placa de baza. În BIOS, trebuie să setați parametrul Configurare SATA: RAID. Când computerul pornește, apăsați combinația de taste CTR-I,și deja acolo efectuăm configurarea RAID. Și după aceea, ca de obicei, instalăm Windows.

Merită să acordați atenție faptului că, dacă creați sau ștergeți un raid, atunci toate informațiile care se află pe unități sunt șterse. Prin urmare, mai întâi trebuie să faceți o copie a acestuia.

Să aruncăm o privire la configurațiile RAID despre care am vorbit deja. Există mai multe dintre ele: RAID 1, RAID 2, RAID 3, RAID 4, RAID 5, RAID 6 etc.

RAID-0 (striping), a.k.a. matrice de nivel zero sau „matrice nulă”. Acest nivel crește viteza de lucru cu discuri cu un ordin de mărime, dar nu oferă toleranță suplimentară la erori. De fapt, această configurație este o matrice raid pur formală, deoarece cu această configurație nu există redundanță. Înregistrarea într-un astfel de pachet are loc în blocuri care sunt scrise unul câte unul pe diferite discuri ale matricei. Principalul dezavantaj aici este nefiabilitatea stocării datelor: dacă unul dintre discurile din matrice eșuează, toate informațiile sunt distruse. De ce este așa? Și acest lucru se întâmplă deoarece fiecare fișier poate fi scris în blocuri pe mai multe hard disk-uri simultan și, dacă oricare dintre ele eșuează, integritatea fișierului este încălcată și, prin urmare, nu este posibilă restaurarea acestuia. Dacă prețuiești viteza și faci în mod regulat copii de siguranță, atunci acest nivel de matrice poate fi utilizat pe un computer de acasă, ceea ce va oferi o creștere vizibilă a performanței.

RAID-1 (oglindire)- modul oglindă. Puteți numi acest nivel de matrice RAID nivelul pentru paranoic: acest mod nu oferă aproape nicio creștere a performanței sistemului, dar vă protejează absolut datele de deteriorare. Chiar dacă unul dintre discuri eșuează, o copie exactă a celui pierdut va fi stocată pe alt disc. Acest mod, ca și primul, poate fi implementat și pe un computer de acasă de către persoanele care apreciază foarte mult datele de pe discurile lor.

La construirea acestor matrice, se folosește un algoritm de recuperare a informațiilor folosind coduri Hamming (un inginer american care a dezvoltat acest algoritm în 1950 pentru a corecta erorile în funcționarea calculatoarelor electromecanice). Pentru a asigura funcționarea acestui controler RAID, sunt create două grupuri de discuri - unul pentru stocarea datelor, al doilea grup pentru stocarea codurilor de corectare a erorilor.

Acest tip de RAID nu este utilizat pe scară largă în sistemele de acasă din cauza redundanței excesive a numărului de hard disk - de exemplu, într-o matrice de șapte hard disk, doar patru vor fi alocate pentru date. Odată cu creșterea numărului de discuri, redundanța scade, ceea ce se reflectă în tabelul de mai jos.

Principalul avantaj al RAID 2 este capacitatea de a corecta erorile emergente „din mers”, fără a reduce viteza de schimb de date între matricea de discuri și procesorul central.

RAID 3 și RAID 4

Aceste două tipuri de matrice de discuri sunt foarte asemănătoare în schema lor de construcție. Ambele folosesc mai multe hard disk-uri pentru a stoca informații, dintre care una este folosită exclusiv pentru plasarea sumelor de control. Trei hard disk-uri sunt suficiente pentru a crea RAID 3 și RAID 4. Spre deosebire de RAID 2, recuperarea datelor „din zbor” este imposibilă - informațiile sunt restaurate după înlocuirea unui hard disk defect de ceva timp.

Diferența dintre RAID 3 și RAID 4 este nivelul de partiționare a datelor. În RAID 3, informațiile sunt împărțite în octeți separați, ceea ce duce la o încetinire gravă la scrierea/citirea unui număr mare de fișiere mici. În RAID 4, datele sunt împărțite în blocuri separate, a căror dimensiune nu depășește dimensiunea unui sector de pe disc. Ca urmare, viteza de procesare a fișierelor mici este crescută, ceea ce este critic pentru computerele personale. Din acest motiv, RAID 4 a devenit mai răspândit.

Un dezavantaj semnificativ al matricelor luate în considerare este încărcarea crescută a hard disk-ului destinat stocării sumelor de control, ceea ce îi reduce semnificativ resursele.

RAID-5. Așa-numita matrice tolerantă la erori de discuri independente cu stocare de sumă de control distribuită. Aceasta înseamnă că pe o matrice de n discuri, n-1 discuri vor fi alocate pentru stocarea directă a datelor, iar ultimul va stoca suma de control a iterației n-1 stripe. Pentru a explica mai clar, imaginați-vă că trebuie să scriem un fișier. Acesta va fi împărțit în porțiuni de aceeași lungime și la rândul său va începe să fie înregistrat ciclic pe toate discurile n-1. Suma de control a octeților porțiunilor de date ale fiecărei iterații va fi scrisă pe ultimul disc, unde suma de control va fi implementată printr-o operație XOR pe biți.

Merită remarcat imediat că, dacă vreunul dintre discuri eșuează, totul va intra în modul de urgență, ceea ce va reduce semnificativ performanța, deoarece. pentru a asambla fișierul împreună, vor fi efectuate manipulări inutile pentru a-i restabili părțile „lipsă”. Dacă două sau mai multe discuri eșuează în același timp, informațiile stocate pe ele nu pot fi recuperate. În general, implementarea matricei raid de nivel cinci oferă o viteză de acces destul de mare, acces paralel la diferite fișiere și o bună toleranță la erori.

În mare măsură, problema de mai sus este rezolvată prin construirea de matrice conform schemei RAID 6. În aceste structuri, stocării sumelor de control, care sunt, de asemenea, distribuite ciclic și uniform pe diferite discuri, i se alocă o cantitate de memorie egală cu volumul. a două hard disk-uri. În loc de una, sunt calculate două sume de control, care garantează integritatea datelor în cazul defecțiunii simultane a două hard disk-uri din matrice simultan.

Avantajele RAID 6 sunt un grad ridicat de securitate a informațiilor și o scădere mai mică a performanței în procesul de recuperare a datelor la înlocuirea unui disc deteriorat decât în ​​RAID 5.

Dezavantajul RAID 6 este o scădere a ratei globale de schimb de date cu aproximativ 10% din cauza creșterii cantității de calcule necesare sumei de control, precum și datorită creșterii cantității de informații scrise / citite.

Tipuri RAID combinate

Pe lângă principalele tipuri discutate mai sus, sunt utilizate pe scară largă diverse combinații ale acestora, care compensează anumite deficiențe ale RAID-ului simplu. În special, utilizarea schemelor RAID 10 și RAID 0+1 este larg răspândită. În primul caz, o pereche de matrice oglindă sunt combinate într-un RAID 0, în al doilea, dimpotrivă, două matrice RAID 0 sunt combinate într-o oglindă. În ambele cazuri, performanța crescută a RAID 0 se adaugă la securitatea informațiilor RAID 1.

Adesea, pentru a crește nivelul de protecție a informațiilor importante, se folosesc scheme de construcție RAID 51 sau RAID 61 - oglindirea matricelor deja foarte protejate asigură o siguranță excepțională a datelor în cazul oricăror defecțiuni. Cu toate acestea, este imposibil să implementați astfel de matrice acasă din cauza redundanței excesive.

Construirea unei game de discuri - de la teorie la practică

Un controler RAID specializat este responsabil pentru construirea și gestionarea funcționării oricărui RAID. Spre ușurarea utilizatorului obișnuit de PC, în majoritatea plăcilor de bază moderne aceste controlere sunt deja implementate la nivelul chipset-ului Southbridge. Deci, pentru a construi o serie de hard disk-uri, este suficient să aveți grijă să obțineți numărul necesar dintre ele și să determinați tipul RAID dorit în secțiunea corespunzătoare a configurației BIOS. După aceea, în sistem, în loc de mai multe hard disk-uri, veți vedea doar unul, care poate fi împărțit în secțiuni și unități logice, dacă doriți. Vă rugăm să rețineți că, dacă încă utilizați Windows XP, va trebui să instalați un driver suplimentar.

Și, în sfârșit, încă un sfat - pentru a crea un RAID, achiziționați hard disk de aceeași dimensiune, același producător, același model și, de preferință, din același lot. Apoi vor fi echipate cu aceleași seturi de logică, iar funcționarea matricei acestor hard disk-uri va fi cea mai stabilă.

Etichete: , https://website/wp-content/uploads/2017/01/RAID1-400x333.jpg 333 400 Leonid Borislavski /wp-content/uploads/2018/05/logo.pngLeonid Borislavski 2017-01-16 08:57:09 2017-01-16 07:12:59 Ce sunt matricele RAID și de ce sunt necesare

Trecerea de la aplicații centrate pe procesor la aplicații centrate pe date determină importanța sistemelor de stocare. În același timp, problema debitului scăzut și a toleranței la erori caracteristice unor astfel de sisteme a fost întotdeauna destul de importantă și a cerut întotdeauna soluția sa.

În industria computerelor moderne, discurile magnetice sunt utilizate pe scară largă ca sistem de stocare secundar, deoarece, în ciuda tuturor deficiențelor lor, au cele mai bune caracteristici pentru tipul corespunzător de dispozitiv la un preț accesibil.

Caracteristicile tehnologiei de construire a discurilor magnetice au condus la o discrepanță semnificativă între creșterea performanței modulelor de procesor și discurile magnetice în sine. Dacă în 1990 discuri de 5,25″ cu un timp mediu de acces de 12ms și un timp de întârziere de 5ms (cu o viteză a axului de aproximativ 5.000 rpm 1) erau cele mai bune dintre cele seriale, astăzi palma aparține discurilor de 3,5″ cu un timp mediu de acces. de 5 ms și timp de întârziere 1 ms (la turația axului de 10.000 rpm). Aici vedem o îmbunătățire a performanței tehnice de aproximativ 100%. În același timp, performanța procesorului a crescut cu peste 2.000%. Multe dintre acestea sunt posibile deoarece procesoarele au beneficiile directe ale utilizării VLSI (Very Large Integration). Utilizarea acestuia nu numai că face posibilă creșterea frecvenței, ci și a numărului de componente care pot fi integrate în cip, ceea ce face posibilă introducerea de avantaje arhitecturale care permit calculul paralel.

1 - Date medii.

Situația actuală poate fi descrisă ca o criză secundară de I/O de stocare.

Creșterea performanței

Imposibilitatea unei creșteri semnificative a parametrilor tehnologici ai discurilor magnetice atrage după sine necesitatea căutării altor căi, dintre care una este procesarea paralelă.

Dacă aranjați un bloc de date pe N discuri ale unei matrice și organizați această plasare astfel încât să existe o posibilitate de citire simultană a informațiilor, atunci acest bloc poate fi citit de N ori mai repede (fără a lua în considerare timpul de formare a blocului). Deoarece toate datele sunt transmise în paralel, se numește această decizie arhitecturală matrice de acces paralel(o matrice cu acces paralel).

Matricele paralele sunt utilizate de obicei pentru aplicații care necesită transferuri mari de date.

Unele sarcini, dimpotrivă, sunt caracterizate de un număr mare de cereri mici. Astfel de sarcini includ, de exemplu, sarcini de procesare a bazei de date. Distribuind înregistrările bazei de date pe matrice de discuri, puteți distribui încărcarea prin poziționarea independentă a discurilor. Această arhitectură se numește matrice de acces independent(matrice cu acces independent).

Creșterea toleranței la erori

Din păcate, pe măsură ce numărul de discuri dintr-o matrice crește, fiabilitatea întregii matrice scade. Cu defecțiuni independente și o distribuție exponențială a MTBF, MTTF-ul întregului array (timpul mediu până la eșec) este calculat prin formula MTTF array = MMTF hdd /N discuri hdd).

Astfel, este nevoie de creșterea toleranței la erori a matricelor de discuri. Pentru a crește toleranța la erori a matricelor, se utilizează codare redundantă. Există două tipuri principale de codare utilizate în matricele de discuri redundante - duplicarea și paritatea.

Duplicarea sau oglindirea este folosită cel mai frecvent în matricele de discuri. Sistemele simple de oglindă folosesc două copii ale datelor, fiecare copie fiind plasată pe discuri separate. Această schemă este destul de simplă și nu necesită costuri suplimentare de hardware, dar are un dezavantaj semnificativ - utilizează 50% din spațiul pe disc pentru a stoca o copie a informațiilor.

A doua modalitate de a implementa matrice de discuri redundante este de a folosi codificarea redundantă cu calcul de paritate. Paritatea este calculată ca operația XOR a tuturor caracterelor din cuvântul de date. Utilizarea parității în matricele de discuri redundante reduce supraîncărcarea la valoarea calculată prin formula: HP hdd =1/N hdd (HP hdd - overhead; N hdd - numărul de discuri din matrice).

Istoria și dezvoltarea RAID

Deși sistemele de stocare pe disc au fost în producție de 40 de ani, producția în masă a sistemelor tolerante la erori a început abia recent. Matricele de discuri redundante, denumite în mod obișnuit RAID (matrice redundante de discuri ieftine) au fost introduse de cercetătorii (Petterson, Gibson și Katz) de la Universitatea din California din Berkeley în 1987. Dar sistemele RAID s-au răspândit numai atunci când discurile adecvate pentru utilizare în matrice redundante au devenit disponibile și suficient de productive. De la raportul oficial despre RAID din 1988, cercetările în matricele de discuri redundante au explodat în încercarea de a oferi o gamă largă de soluții în raportul preț-performanță-fiabilitate.

A avut loc un incident cu abrevierea RAID. Faptul este că discurile ieftine la momentul scrierii erau toate discuri care erau folosite într-un PC, spre deosebire de discuri mainframe (mainframe) scumpe. Dar pentru utilizarea în matrice RAID, a fost necesar să se utilizeze echipamente destul de scumpe în comparație cu alte configurații de PC, așa că RAID a început să fie descifrat ca o matrice redundantă de discuri independente 2 - o matrice redundantă de discuri independente.

2 - Definirea unui Consiliu Consultativ RAID

RAID 0 a fost introdus de industrie ca definiție a unei matrice de discuri non-tolerante la erori. La Berkeley, RAID 1 a fost definit ca o matrice de discuri în oglindă. RAID 2 este rezervat matricelor care folosesc cod Hamming. Nivelurile RAID 3, 4, 5 folosesc paritatea pentru a proteja datele de erori individuale. Aceste niveluri, inclusiv al 5-lea, au fost prezentate la Berkeley, iar această sistematică RAID a fost adoptată ca standard de facto.

Nivelurile RAID 3,4,5 sunt destul de populare, au o utilizare bună a spațiului pe disc, dar au un dezavantaj semnificativ - sunt rezistente doar la defecțiuni individuale. Acest lucru este valabil mai ales când se utilizează un număr mare de discuri, când probabilitatea ca mai mult de un dispozitiv să fie inactiv în același timp crește. În plus, ele se caracterizează printr-o recuperare îndelungată, care impune și unele restricții privind utilizarea lor.

Până în prezent, a fost dezvoltat un număr suficient de mare de arhitecturi care asigură operabilitatea matricei cu defecțiunea simultană a oricăror două discuri fără pierderi de date. Dintre întregul set, este de remarcat paritatea bidimensională (paritate în două spații) și EVENODD, care utilizează paritatea pentru codare, și RAID 6, care utilizează codificarea Reed-Solomon.

Într-o schemă de paritate în două spații, fiecare bloc de date participă la construirea a două cuvinte de cod independente. Astfel, dacă un al doilea disc din același cuvânt de cod eșuează, un cuvânt de cod diferit este folosit pentru a reconstrui datele.

Redundanța minimă într-o astfel de matrice se realizează cu un număr egal de coloane și rânduri. Și este egal cu: 2 x Square (N Disk) (în „pătrat”).

Dacă matricea bidimensională nu este organizată într-un „pătrat”, atunci când se implementează schema de mai sus, redundanța va fi mai mare.

Arhitectura EVENODD are o schemă de toleranță la erori similară cu paritatea în 2 spații, dar o aranjare diferită a blocurilor de informații care garantează o suprautilizare minimă a capacităților. Ca și în paritatea în două spații, fiecare bloc de date participă la construcția a două cuvinte de cod independente, dar cuvintele sunt plasate în așa fel încât factorul de redundanță să fie constant (spre deosebire de schema anterioară) și să fie egal cu: 2 x Pătrat (N Disc).

Folosind două caractere pentru verificare, coduri de paritate și non-binare, cuvântul de date poate fi construit pentru a oferi toleranță la erori în cazul unei defecțiuni duble. Această schemă este cunoscută sub numele de RAID 6. Un cod non-binar bazat pe codarea Reed-Solomon este de obicei calculat folosind tabele sau ca proces iterativ folosind registre de feedback liniar, care este o operație relativ complexă care necesită hardware specializat.

Având în vedere că utilizarea variantelor RAID clasice, care oferă suficientă toleranță la erori pentru multe aplicații, are adesea performanțe inacceptabil de scăzute, cercetătorii implementează din când în când diverse trucuri care ajută la creșterea performanței sistemelor RAID.

În 1996, Savage și Vilks au propus AFRAID, A Frequently Redundant Array of Independent Disks. Această arhitectură sacrifică oarecum toleranța la erori pentru viteză. În încercarea de a compensa problema de scriere mică care este comună cu matricele RAID 5, este permis să lăsați striping fără calculul de paritate pentru o perioadă de timp. Dacă discul destinat înregistrării cu paritate este ocupat, atunci înregistrarea cu paritate este amânată. S-a dovedit teoretic că o reducere cu 25% a toleranței la erori poate crește performanța cu 97%. AFRAID modifică de fapt modelul de eșec al matricelor cu toleranță la erori, deoarece un cuvânt de cod care nu are paritate actualizată este susceptibil la defecțiuni de disc.

În loc să sacrificați toleranța la erori, puteți utiliza îmbunătățiri tradiționale de performanță, cum ar fi stocarea în cache. Având în vedere că traficul pe disc este intens, puteți utiliza memoria cache de scriere inversă pentru a stoca date atunci când discurile sunt ocupate. Și dacă memoria cache este realizată sub formă de memorie nevolatilă, atunci, în cazul unei pene de curent, datele vor fi salvate. În plus, operațiunile de disc amânate fac posibilă combinarea blocurilor mici într-o ordine arbitrară pentru a efectua operațiuni mai eficiente pe disc.

Există, de asemenea, multe arhitecturi care, deși sacrifică spațiul, măresc performanța. Printre acestea se numără modificarea întârziată a discului de jurnal și diverse scheme de modificare a alocării datelor logice către cel fizic, care vă permit să distribuiți mai eficient operațiunile în matrice.

Una dintre variante - înregistrarea de paritate(înregistrare de paritate), care presupune rezolvarea problemei de scriere mică și utilizarea mai eficientă a discurilor. Înregistrarea parității implică amânarea unei modificări de paritate în RAID 5, scrierea acesteia în jurnalul FIFO (jurnal de tip FIFO), care se află parțial în memoria controlerului și parțial pe disc. Având în vedere că accesarea unei piese complete este în medie de 10 ori mai eficientă decât accesarea unui sector, cantități mari de date de paritate modificate sunt colectate folosind înregistrarea parității, care sunt apoi scrise colectiv pe un disc conceput pentru a stoca paritatea pe întreaga pistă.

Arhitectură date flotante și paritate(float și paritate), care permite realocarea alocației fizice a blocurilor de disc. Pe fiecare cilindru sunt plasate sectoare libere pentru a reduce latența de rotație(întârzieri de rotație), datele și paritatea sunt plasate în aceste spații libere. Pentru a asigura operabilitatea în timpul unei căderi de curent, cardul de paritate și de date trebuie să fie stocat în memorie nevolatilă. Dacă pierdeți harta locației, toate datele din matrice se vor pierde.

stripping virtual- este o arhitectură flotantă de date și paritate care utilizează memoria cache de writeback. În mod firesc, realizând aspectele pozitive ale ambelor.

În plus, există și alte modalități de îmbunătățire a performanței, cum ar fi distribuția operațiunilor RAID. La un moment dat, Seagate a inclus suport pentru operațiunile RAID în unitățile sale cu interfețe Fibre Chanel și SCSI. Acest lucru a făcut posibilă reducerea traficului dintre controlerul central și discurile din matrice pentru sistemele RAID 5. Aceasta a fost o inovație majoră în domeniul implementărilor RAID, dar tehnologia nu a primit un bilet de viață, deoarece unele caracteristici ale Standardele Fibre Chanel și SCSI slăbesc modelul de defecțiune pentru matricele de discuri.

Pentru același RAID 5, a fost introdusă arhitectura TickerTAIP. Arata astfel - nodul inițiator al mecanismului de control central (nodul inițiator) primește cererile utilizatorului, selectează un algoritm de procesare și apoi transferă lucrul pe disc și paritatea la nodul lucrător (nodul lucrător). Fiecare nod de lucru se ocupă de un subset de discuri din matrice. Ca și în modelul Seagate, nodurile lucrătoare transferă date între ele fără participarea nodului inițiator. În cazul unei defecțiuni a unui nod de lucru, discurile pe care le-a servit devin inaccesibile. Dar dacă cuvântul de cod este construit în așa fel încât fiecare caracter să fie procesat de un nod de lucru separat, atunci schema de toleranță la erori repetă RAID 5. Pentru a preveni defecțiunile nodului inițiator, acesta este duplicat, astfel încât obținem o arhitectură care este tolerantă. de defecțiuni ale oricăruia dintre nodurile sale. Cu toate caracteristicile sale pozitive, această arhitectură suferă de problema „erorilor de scriere” („gaura de scriere”). Ceea ce implică o eroare care apare atunci când cuvântul de cod este schimbat de mai mulți utilizatori în același timp și nodul eșuează.

De asemenea, ar trebui să menționăm o modalitate destul de populară de a restaura rapid un RAID - folosind un disc liber (de rezervă). Dacă unul dintre discurile din matrice eșuează, RAID-ul poate fi reconstruit folosind un disc liber în loc de cel defect. Principala caracteristică a unei astfel de implementări este că sistemul intră în starea anterioară (stare de siguranță fără intervenție externă). Cu o arhitectură de economisire distribuită, blocurile logice ale discurilor de rezervă sunt distribuite fizic pe toate discurile din matrice, eliminând nevoia de a reconstrui matricea în cazul în care un disc se defectează.

Pentru a evita problema de recuperare tipică pentru nivelurile RAID clasice, se folosește și o arhitectură, care se numește degruparea parității(distribuție de paritate). Aceasta implică plasarea mai puține unități logice mai mari pe unități fizice mai mici și mai mari. Folosind această tehnologie, timpul de răspuns al sistemului la o solicitare în timpul reconstrucției este mai mult decât dublu, iar timpul de reconstrucție este redus semnificativ.

Arhitectura principalelor niveluri de RAID

Acum să ne uităm la arhitectura nivelurilor de bază ale RAID mai detaliat. Înainte de a lua în considerare, să facem câteva presupuneri. Pentru a demonstra principiile construirii sistemelor RAID, luați în considerare un set de N discuri (pentru simplitate, N va fi considerat un număr par), fiecare dintre ele constând din M blocuri.

Datele vor fi notate - Dm,n, unde m este numărul de blocuri de date, n este numărul de subblocuri în care este împărțit blocul de date D.

Discurile pot fi conectate fie la unul, fie la mai multe canale de transfer de date. Utilizarea mai multor canale crește debitul sistemului.

RAID 0 Striped Disk Array fără toleranță la erori

Este o matrice de discuri în care datele sunt împărțite în blocuri, iar fiecare bloc este scris (sau citit) pe un disc separat. Astfel, este posibil să efectuați mai multe operații I/O în același timp.

Avantaje:

  • cea mai înaltă performanță pentru aplicațiile care necesită procesarea intensivă a cererilor I/O și volume mari de date;
  • ușurința de implementare;
  • cost redus pe unitate de volum.

Defecte:

  • nu este o soluție tolerantă la erori;
  • O singură defecțiune a unității duce la pierderea tuturor datelor din matrice.

RAID 1. Matrice de discuri cu duplicare sau oglindire (oglindire)

Oglindirea este o modalitate tradițională de a crește fiabilitatea unei matrice de discuri mici. În cea mai simplă versiune, sunt utilizate două discuri, pe care sunt înregistrate aceleași informații, iar în cazul unei defecțiuni a unuia dintre ele, rămâne duplicatul acestuia, care continuă să funcționeze în același mod.

Avantaje:

  • ușurința de implementare;
  • ușurința recuperării matricei în caz de defecțiune (copie);
  • Performanță suficient de ridicată pentru aplicații cu intensitate ridicată a solicitărilor.

Defecte:

  • cost ridicat pe unitate de volum - redundanță 100%;
  • rata scăzută de transfer de date.

RAID 2. Matrice de discuri tolerantă la erori folosind codul Hamming (ECC).

Supracodarea folosită în RAID 2 se numește cod Hamming. Codul Hamming vă permite să corectați defecțiuni simple și duble. Astăzi este utilizat în mod activ în tehnologia de codificare a datelor în RAM, cum ar fi ECC. Și codificarea datelor pe discuri magnetice.

În acest caz, este afișat un exemplu cu un număr fix de discuri din cauza descrierii greoaie (cuvântul de date este format din 4 biți, respectiv, codul ECC de 3).

Avantaje:

  • corectare rapidă a erorilor („în zbor”);
  • rata foarte mare de transfer de date pentru volume mari;
  • pe măsură ce numărul de discuri crește, costurile generale scad;
  • o implementare destul de simplă.

Defecte:

  • cost ridicat cu un număr mic de discuri;
  • viteză scăzută de procesare a cererilor (nu este potrivit pentru sistemele orientate spre tranzacții).

RAID 3. Matrice tolerantă la erori cu transfer paralel de date și paritate (Discuri de transfer paralel cu paritate)

Datele sunt împărțite în subblocuri la nivel de octeți și sunt scrise simultan pe toate discurile din matrice, cu excepția unuia, care este folosit pentru paritate. Utilizarea RAID 3 rezolvă problema redundanței ridicate în RAID 2. Majoritatea discurilor de control utilizate în RAID nivelul 2 sunt necesare pentru a determina poziția unui bit defect. Dar acest lucru nu este necesar, deoarece majoritatea controlerelor sunt capabile să detecteze când un disc a eșuat prin intermediul unor semnale speciale sau prin codificare suplimentară a informațiilor scrise pe disc și utilizate pentru a corecta defecțiuni aleatorii.

Avantaje:

  • rata de transfer de date foarte mare;
  • Defecțiunea discului are un efect redus asupra performanței matricei;

Defecte:

  • implementare dificilă;
  • performanță scăzută cu o intensitate mare a solicitărilor de date de un volum mic.

RAID 4. Matrice tolerantă la erori de discuri independente cu disc de paritate partajat (discuri de date independente cu disc de paritate partajat)

Datele sunt împărțite la nivel de bloc. Fiecare bloc de date este scris pe un disc separat și poate fi citit separat. Paritatea pentru un grup de blocuri este generată la scriere și verificată la citire. RAID Level 4 îmbunătățește performanța transferurilor mici de date prin paralelism, permițând să aibă loc mai mult de un acces I/O în același timp. Principala diferență dintre RAID 3 și 4 este că în ultimul, data striping se face la nivel de sector, nu la nivel de biți sau octeți.

Avantaje:

  • viteză foarte mare de citire a datelor de volume mari;
  • performanță ridicată cu intensitate ridicată a solicitărilor de citire a datelor;
  • cheltuieli generale reduse pentru implementarea redundanței.

Defecte:

  • performanță foarte scăzută la scrierea datelor;
  • viteză redusă de citire a datelor mici cu solicitări unice;
  • asimetrie de performanță în ceea ce privește citirea și scrierea.

RAID 5. Discuri de date independente cu blocuri de paritate distribuite

Acest nivel este similar cu RAID 4, dar spre deosebire de cel anterior, paritatea este distribuită ciclic pe toate discurile din matrice. Această modificare îmbunătățește performanța scrierii unor cantități mici de date pe sisteme multitasking. Dacă operațiunile de scriere sunt planificate corect, atunci este posibil să procesați până la N/2 blocuri în paralel, unde N este numărul de discuri din grup.

Avantaje:

  • viteză mare de înregistrare a datelor;
  • viteza de citire a datelor suficient de mare;
  • performanță ridicată cu intensitate mare a solicitărilor de citire/scriere a datelor;
  • cheltuieli generale reduse pentru implementarea redundanței.

Defecte:

  • viteza de citire a datelor este mai mică decât în ​​RAID 4;
  • viteză scăzută de citire/scriere a datelor mici cu solicitări unice;
  • implementare destul de complicată;
  • recuperare de date complexe.

RAID 6. Discuri independente de date cu două scheme independente de paritate distribuită

Datele sunt partiționate la nivel de bloc, similar cu RAID 5, dar pe lângă arhitectura anterioară, o a doua schemă este utilizată pentru a îmbunătăți toleranța la erori. Această arhitectură este dublă tolerantă la erori. Cu toate acestea, atunci când se efectuează o scriere logică, există de fapt șase accesări pe disc, ceea ce mărește mult timpul de procesare pentru o cerere.

Avantaje:

  • toleranță ridicată la erori;
  • viteza suficient de mare de procesare a cererilor;
  • cheltuieli generale relativ mici pentru implementarea redundanței.

Defecte:

  • implementare foarte complexă;
  • recuperare de date complexe;
  • viteză foarte mică de scriere.

Controlerele RAID moderne vă permit să combinați diferite niveluri RAID. Astfel, este posibil să se implementeze sisteme care combină avantajele diferitelor niveluri, precum și sisteme cu un număr mare de discuri. De obicei, aceasta este o combinație de nivel zero (decapare) și un fel de nivel tolerant la erori.

RAID 10 Redundant Parallel Fault Tolerant Array

Această arhitectură este o matrice de tip RAID 0, ale cărei segmente sunt matrice RAID 1. Combină toleranța la erori și performanța foarte ridicată.

Avantaje:

  • toleranță ridicată la erori;
  • performanta ridicata.

Defecte:

  • cost foarte mare;
  • scalare limitată.

RAID 30. Matrice tolerantă la erori cu transfer paralel de date și performanță crescută.

Este o matrice de tip RAID 0, ale cărei segmente sunt matrice RAID 3. Combină toleranța la erori și performanța ridicată. Utilizat de obicei pentru aplicații care necesită transferuri mari de date în serie.

Avantaje:

  • toleranță ridicată la erori;
  • performanta ridicata.

Defecte:

  • preț mare;
  • scalare limitată.

Matrice de paritate distribuită cu toleranță la erori RAID 50 cu performanțe mai mari

Este o matrice de tip RAID 0, ale cărei segmente sunt matrice RAID 5. Combină toleranța la erori și performanța ridicată pentru aplicații cu cerere mare cu viteză mare de transfer de date.

Avantaje:

  • toleranță ridicată la erori;
  • rata mare de transfer de date;
  • viteza mare de procesare a cererilor.

Defecte:

  • preț mare;
  • scalare limitată.

RAID 7. Matrice tolerantă la erori optimizată pentru performanță. (Asincronie optimizată pentru rate I/O ridicate, precum și rate ridicate de transfer de date). RAID 7® este o marcă înregistrată a Storage Computer Corporation (SCC)

Pentru a înțelege arhitectura RAID 7, luați în considerare caracteristicile acestuia:

  1. Toate cererile de transfer de date sunt procesate asincron și independent.
  2. Toate operațiunile de citire/scriere sunt stocate în cache prin intermediul magistralei x de mare viteză.
  3. Un disc de paritate poate fi plasat pe orice canal.
  4. Microprocesorul controlerului de matrice folosește un sistem de operare în timp real orientat spre proces.
  5. Sistemul are o scalabilitate bună: până la 12 interfețe gazdă și până la 48 de discuri.
  6. Sistemul de operare controlează canalele de comunicare.
  7. Sunt utilizate unități standard SCSI, magistrale, plăci de bază și module de memorie.
  8. X-bus-ul de mare viteză este folosit pentru a lucra cu memoria cache internă.
  9. Procedura de generare a parității este integrată în cache.
  10. Unitățile atașate la un sistem pot fi declarate ca independente.
  11. Un agent SNMP poate fi utilizat pentru a gestiona și monitoriza sistemul.

Avantaje:

  • rată mare de transfer de date și viteză mare de procesare a interogărilor (de 1,5 - 6 ori mai mare decât alte niveluri RAID standard);
  • scalabilitate ridicată a interfețelor gazdă;
  • viteza de scriere a datelor crește odată cu creșterea numărului de discuri din matrice;
  • nu este nevoie de transfer de date suplimentare pentru calculul parității.

Defecte:

  • proprietatea unui producător;
  • cost foarte mare pe unitate de volum;
  • perioada scurta de garantie;
  • nu poate fi deservit de utilizator;
  • trebuie să utilizați o sursă de alimentare neîntreruptibilă pentru a preveni pierderea datelor din memoria cache.

Să luăm acum în considerare nivelurile standard împreună pentru a le compara caracteristicile. Comparația se face în cadrul arhitecturilor menționate în tabel.

RAIDMinim
discuri
Nevoie
în discuri
eșec-
stabilitate
Viteză
transmiterea datelor
Intensitate
prelucrare
cereri
Practic
utilizare
0 2 N foarte inalt
până la N x 1 disc
Grafică, video
1 2 2N* R > 1 disc
W = 1 disc
până la 2 x 1 disc
W = 1 disc
servere de fișiere mici
2 7 2N ~RAID 3Scăzutmainframe-uri
3 3 N+1 ScăzutGrafică, video
4 3 N+1 RWR=RAID 0
W
servere de fișiere
5 3 N+1 RWR=RAID 0
W
servere de baze de date
6 4 N+2cel mai inaltscăzutR > 1 disc
W
folosit foarte rar
7 12 N+1 cel mai inaltcel mai inaltdiferite tipuri de aplicații

Precizări:

  • * - este luată în considerare opțiunea utilizată în mod obișnuit;
  • k este numărul de subsegmente;
  • R - citire;
  • W - intrare.

Câteva aspecte ale implementării sistemelor RAID

Luați în considerare trei opțiuni principale pentru implementarea sistemelor RAID:

  • software (pe bază de software);
  • hardware - orientat pe magistrală (bazat pe magistrală);
  • hardware - subsistem autonom (bazat pe subsistem).

Nu se poate spune fără ambiguitate că o implementare este mai bună decât alta. Fiecare opțiune de organizare a matricei satisface anumite nevoi ale utilizatorilor, în funcție de capacitățile financiare, de numărul de utilizatori și de aplicațiile utilizate.

Fiecare dintre implementările de mai sus se bazează pe execuția codului programului. Ele diferă de fapt prin locul în care este executat acest cod: în procesorul central al computerului (implementarea software) sau într-un procesor specializat pe controlerul RAID (implementarea hardware).

Principalul avantaj al implementării software-ului este costul scăzut. Dar, în același timp, are multe dezavantaje: performanță scăzută, încărcare cu muncă suplimentară pe procesorul central și creșterea traficului de autobuze. Nivelurile RAID simple - 0 și 1 - sunt de obicei implementate în software, deoarece nu necesită calcule semnificative. Având în vedere aceste caracteristici, sistemele RAID cu implementare software sunt utilizate în serverele entry-level.

Implementările hardware ale RAID sunt în mod corespunzător mai scumpe decât implementările software, deoarece folosesc hardware suplimentar pentru a efectua operațiuni I/O. În același timp, descarcă sau eliberează procesorul central și magistrala de sistem și, în consecință, vă permit să creșteți performanța.

Implementările orientate pe magistrală sunt controlere RAID care utilizează magistrala de mare viteză a computerului în care sunt instalate (mai recent, este folosită de obicei magistrala PCI). La rândul lor, implementările orientate pe magistrală pot fi împărțite în nivel scăzut și nivel înalt. Primele de obicei nu au cipuri SCSI și folosesc așa-numitul port RAID de pe placa de bază cu un controler SCSI încorporat. În acest caz, funcțiile de procesare a codului RAID și a operațiunilor I/O sunt distribuite între procesorul de pe controlerul RAID și cipurile SCSI de pe placa de bază. Astfel, procesorul central este eliberat de procesarea codului suplimentar și traficul de magistrală este redus în comparație cu versiunea de software. Costul unor astfel de plăci este de obicei scăzut, mai ales dacă sunt concentrate pe sisteme RAID - 0 sau 1 (există și implementări de RAID 3, 5, 10, 30, 50, dar sunt mai scumpe), așa că se înghesuie treptat. implementări software de pe piața de servere entry-level. Controlerele de nivel înalt cu implementare magistrală au o structură ușor diferită de cea a fraților lor mai mici. Ei se ocupă de toate funcțiile de execuție a codului I/O și RAID. În plus, nu sunt atât de dependente de implementarea plăcii de bază și, de regulă, au mai multe caracteristici (de exemplu, capacitatea de a conecta un modul pentru a stoca informații în cache în cazul unei defecțiuni a plăcii de bază sau al unei căderi de curent) . Astfel de controlere sunt de obicei mai scumpe decât cele de nivel scăzut și sunt utilizate în serverele de gamă medie și înaltă. Ei, de regulă, implementează nivelurile RAID 0.1, 3, 5, 10, 30, 50. Având în vedere că implementările orientate pe magistrală sunt conectate direct la magistrala PCI internă a computerului, acestea sunt cele mai productive dintre sistemele luate în considerare ( la organizarea unui singur sistem gazdă). Viteza maximă a unor astfel de sisteme poate ajunge la 132 MB/s (32bit PCI) sau 264 MB/s (64bit PCI) la frecvența magistralei de 33MHz.

Alături de avantajele enumerate, arhitectura orientată pe autobuz are următoarele dezavantaje:

  • dependență de sistemul de operare și platformă;
  • scalabilitate limitată;
  • posibilități limitate de organizare a sistemelor tolerante la erori.

Toate aceste dezavantaje pot fi evitate prin utilizarea subsistemelor autonome. Aceste sisteme au o organizare externă complet autonomă și, în principiu, sunt un computer separat care este folosit pentru organizarea sistemelor de stocare a informațiilor. În plus, dacă tehnologia canalelor de fibră optică este dezvoltată cu succes, performanța sistemelor autonome nu va fi în niciun caz inferioară sistemelor orientate pe magistrală.

De obicei, un controler extern este plasat într-un rack separat și, spre deosebire de sistemele cu o organizare de magistrală, poate avea un număr mare de canale de intrare / ieșire, inclusiv canale gazdă, ceea ce face posibilă conectarea mai multor computere gazdă la sistem și organizarea sisteme de cluster. În sistemele cu un controler de sine stătător, pot fi implementate controlere de așteptare la cald.

Unul dintre dezavantajele sistemelor autonome este costul lor ridicat.

Având în vedere cele de mai sus, observăm că controlerele autonome sunt de obicei folosite pentru a implementa depozite de date de mare capacitate și sisteme cluster.

Top articole similare