evaluarea performanţelor matricilor raid cu disc de rezervă coordonator conf. dr. ing. tefan...

25
Evaluarea performanţelor matricilor RAID cu disc de rezervă Coordonator Conf. Dr. Ing. Ștefan Stăncescu Absolvent Marcu Andrei Facultatea de Electronică,Telecomunicaţii şi Tehnologia Informaţiei Universitatea “POLITEHNICA” din Bucureşti

Post on 19-Dec-2015

219 views

Category:

Documents


1 download

TRANSCRIPT

Evaluarea performanţelor matricilor RAID cu disc de rezervă

CoordonatorConf. Dr. Ing. Ștefan Stăncescu

Absolvent

Marcu Andrei

Facultatea de Electronică,Telecomunicaţii şi Tehnologia InformaţieiUniversitatea “POLITEHNICA” din Bucureşti

Cuprins

• INTRODUCERE

• Capitolul 1 – Specificaţii RAID

• Capitolul 2– Prezentare niveluri RAID

• Capitolul 3– Algoritmi de planificare a accesului la disc

• Capitolul 4– Noţiuni despre Rebuilding

• Capitolul 5– Simulatorul Disksim 4.0

• Capitolul 6– Rezultate experimentale

• CONCLUZII

Despre RAID

• În ultimii 20 de ani, RAID s-a maturizat pentru a deveni un standard, o caracteristică transparentă pentru produse de stocare în interiorul claselor enterprise, dar şi dispozitive de stocare orientate către consumator.

• RAID răspândeşte datele pe mai multe discuri dure pentru a îmbunătăţi performanţa discului şi pentru a creşte toleranţa la erori.

• RAID - acronim pentru Redundant Array of Independent Disks - matrice redundantă de discuri independente (iniţial matrice redundanta de discuri ieftine), este realizat prin combinarea mai multor discuri într-o unitate logică, unde datele sunt distribuite în unităţi în diferite moduri numite "niveluri RAID“.

• RAID este adeseori folosit la sistemele cu accesibilitate ridicată, unde este important ca sistemul să ruleze cât mai multă vreme cu putință. RAID este în general folosit la servere, dar poate fi folosit și în cazul stațiilor de lucru (workstation).

Principalele configurații RAID

• mirroring (oglindirea) - copierea datelor pe mai multe discuri– poate creşte viteza la citire deoarece sistemul poate accesa date diferite de pe cele două discuri, dar va

fi mai încet la scriere dacă sistemul insistă ca ambele discuri să confirme corectitudinea datelor scrise.

• striping (întreţesere) - împărţirea datelor pe mai multe discuri– este îndeosebi folosit pentru mărirea performanţei, deoarece permite citirea secvenţelor de

date de pe mai multe discuri simultan

• error correction (cu corectarea erorilor) unde discuri de verificare redundante stochează datele pentru a fi detectate şi corectate eventualele erori.

– verificarea erorilor în mod obişnuit va încetini sistemul deoarece datele vor fi citite din mai multe

locaţii şi apoi comparate.

• striping with parity (cu discuri de paritate) unde corectitudinea datelor este asigurată

de blocuri de paritate.

Moduri de implementare

• Distribuţia de date intre multiplele unităţi poate fi realizată atât pe cale software cât şi pe cale hardware. Adiţional exista şi un mod hibrid, parţial hardware, parţial software.

Implementare hardware

• RAID-ul hardware are ca cerinţa minimă un controller RAID. Într-un calculator personal acesta poate fi un card PCI sau poate fi inclus în chipset-ul plăcii de bază.

• Controllerul se ocupa de managementul discurilor şi calculează datele redundante caracteristice nivelului RAID ales.

• Prezintă performanţe garantate, fără utilizare a procesorului gazdei, controllerul prezentând sistemului de operare un simplu disc logic.

Moduri de implementare

Implementare software

Implementare hibridă

• Implementările software sunt furnizate de majoritatea sistemelor de operare. Acest layer este pus deasupra driverelor discurilor şi oferă un strat de abstractizare între discurile logice şi discurile fizice.

• Implementările software necesită foarte puţine resurse şi timp de prelucrare mici.• Ele sunt eficiente ca şi cost (până într-un punct) însă nu oferă acelaşi grad de

performanţă ca şi RAID-ul bazat pe hardware.• CPU-ul gazdei se ocupa de procesarea datelor.• O altă facilitate adusă de implementarea software este că permite crearea de matrici

RAID şi din partiţii ale unui HDD.

• Echipamentele RAID hibride au apărut odată cu introducerea controllerelor RAID ieftine, implementate în controllere HDD şi ca extensii de BIOS reprezentate de drivere de sistem.

• Din nefericire aceste controllere fac toate calculele necesare în regim software, ele aduna majoritatea dezavantajelor implementării software şi hardware.

RAID 1: Disk Mirroring. Discuri în oglindă

• Implementarea RAID 1 foloseşte „oglindirea” datelor pentru a asigura redundanţa. Tehnica creează şi menţine pe discuri separate, două sau mai multe copii ale aceloraşi date, fiecare dintre copii constituindu-se ca o imagine „în oglindă” a celeilalte.

• Comparativ cu unele nivele de arii de discuri, RAID 1 poate scădea performanţa generală a sistemului deoarece fiecare scriere pe disc trebuie să fie efectuată de „n” ori unde „n” este numărul de copii (implementare soft). Performanţa în cazul citirii este însă îmbunătăţită deoarece cererile de citire sunt trimise simultan controllerelor de discuri ale tuturor copiilor, dar numai discul care este capabil să răspundă primul cererii de citire va returna datele sistemului.

• Deoarece RAID 1 asigură redundanţa datelor de 100%, ea este cea mai scumpă implementare dintre tipurile de arii de discuri, dar asigură şi cea mai mare disponibilitate a datelor prin utilizarea celui mai mic număr de discuri în configuraţie.

RAID 5: Striped Array With Distributed Parity. Discuri organizate în fâşii cu paritate distribuită

• La RAID 5 datele se distribuie pe mai multe discuri de date şi de „paritate”, iar datele sunt scrise fiecare bloc pe un singur disc, acestea putând fi accesate concomitent de pe toate discurile. RAID 5 nu are dedicat un disc special numai pentru informaţia de paritate ci distribuie pe toate discurile ariei informaţia de tip date şi informaţia de paritate.

• Toate calculele pentru paritate sunt efectuate de către procesor, iar în cazul unei defecţiuni, operaţiunile de I/O sunt de până la trei ori mai consumatoare de resurse (memorie, putere de calcul).

• Cu o performanţă medie foarte bună şi un cost relativ scăzut per GB util (totuşi, este nevoie de cele mai multe ori de un controller hardware dedicat), RAID 5 este utilizat cu succes în majoritatea sistemelor complexe.

Specificaţii ale principalelor matrici RAID

RAID 6: Discuri organizate în fâşii cu paritate distribuită dublă

• RAID 6 este identic cu nivelul 5 , cu excepţia faptului că se calculează şi se stochează paritate dublă pentru date, deci sunt necesare cel puţin patru discuri; creste redundanţa.

RAID 5+0

• RAID 5+0 combină feliile de blocuri de la nivelul RAID 0 cu paritatea distribuită de RAID 5. Aceasta este o matrice RAID 0 întreţesută de-a lungul elementelor de RAID 5.

RAID 0: Discuri organizate în grupuri de fâşii• În această organizare de arii de discuri neredundante,

datele sunt întreţesute (stripping) în mod secvenţial pe mai multe discuri, care sunt tratate ca un singur disc virtual sau volum.

Algoritmi de planificare a accesului la disc

• First Come First Served (FCFS) – este cel mai simplu şi direct algoritm de planificare, în care cererile sunt prelucrate în aceeaşi ordine în care acestea sunt primite.

• SCAN (Elevator) - braţul se mişcă în ambele direcţii, satisface toate cererile, până când ajunge la ultima pistă într-o direcţie sau până când nu mai există cereri în acea direcţie, dupa care porneste in sens opus.

• Circular SCAN (C-SCAN) – este similar cu SCAN dar restrânge scanarea într-o singură direcţie.

• Shortest Seek Time First (SSTF) - selectează cererea I/O de disc care necesită cea mai puţină mişcare a braţului de la poziţia sa actuală.

• VSCAN - combină algoritmul SSTF şi algoritmul SCAN.• Shortest Positioning Time First (SPTF) - se dă prioritate cererilor care sunt în

aşteptare în coadă de o perioadă prea lungă de timp.• LOOK – similar lui SCAN, capul circula de-a lungul suprafeţei de disc satisfăcând

cereri în direcţii alternante.• Circular LOOK (C-LOOK) - reprezintă o combinaţie între C-SCAN şi LOOK.

Rebuilding

1. Orientat pe fâşii• fiecare UR (unitate de rebuild) este reconstruita

printr-un proces dedicat care citeşte UR de pe discurile funcţionale , executa XOR între ele şi scrie UR rezultată pe discul de rezervă.

2. Orientat pe disc• dedică un proces pentru fiecare disc care

citeşte UR de pe discurile funcţtionale într-un

mod asincron.

Reprezinta reconstrucţia sistematică de date de pe discul defect , pe un disc de rezervă. Discul îşi va modifica ulterior modul său de operaţiune de la modul deteriorat la modul rebuild.

Rebuilding

O matrice RAID de discuri funcţionează în 3 moduri:

1. Modul Normal. Toate discurile primare sunt operaţionale în acest mod şi discul de rezervă poate fi operaţional, defect, sau în reparaţie.

2. Modul Deteriorat. Defectarea unuia dintre discurile primare duce la acest mod. O cerere pentru a citi datele de pe discul defect va presupune accesul la blocurile corespunzătoare de pe discurile funcţionale pentru a recrea blocul de date pierdut.

3. Modul Rebuild. Operaţiunea de rebuild este pornita dupa ce un disc eşueaza in a se intoarce in modul normal al sistemului. În modul de rebuild sistemul citeşte piste consecutive de date de la toate discurile funcţionale în paralel, calculează conţinuturile pistelor discului defect (prin aplicarea operaţiei XOR asupra pistelor coresupunzatoare din discurile funcţionale), şi scrie pistele reconstruite pe discul de rezervă.

Mediul de simulare DiskSim 4.0

• Prin crearea Simulatorului DiskSim 4.0 s-a dorit realizarea unor serii de îmbunătăţiri la varianta precedentă 3.0.

• Prin această ultimă variantă unele deficienţe au fost rezolvate, simulatorul devenind mult mai uşor de utilizat prin restructurarea unor librării pentru o mai mare eficienţă.

• DiskSim 4.0 oferă posibilitatea configurării în simulator a discurilor, controller-elor, buss-urilor, cache-urilor, dar şi a componentelor de software care dirijează activitatea acestora: driverele, algoritmii de planificare a transferului, organizarea structurilor RAID.

• DiskSim 4.0 simulează şi raportează numai aspectele legate de performanţa sistemelor de stocare şi nu modelează comportamentul restului de componente ale unui sistem de calcul sau interacţiunea dintre acestea şi sistemul de stocare pe discuri.

Rularea simulatorului DiskSim 4.0

• Pentru rulare DiskSim necesită cinci parametri în linia de comandă:

DiskSim <parfile> <outfile> <tracetype> <tracefile> <synthgen>

unde:

• disksim - numele fişierului executabil.• parfile - numele fişierului cu parametrii de configurare a arhitecturii simulate.• outfile - numele fişierului de ieşire a rezultatelor simulării.• tracetype - identifică tipul de trace (ascii, validate).• tracefile - numele fişierului de trace-uri (workload) care va fi folosit la intrare. • synthgen - specifică dacă generatorul de workload este activ sau nu (orice valoare diferită de "0" activează generatorul).

Un exemplu de linie de comandă utilizată pentru simulări:./disksim raid1.parv fcfs.outv ascii T1.trace 0

Pentru fiecare algoritm se va modifica succesiv valoarea parametrului Schedulingpolicy (1, 2, 3, 4, 5, 6, 8, 17) din fişierul Seagate-Cheetah15k5.diskspecs, după

carese trece la fişierul de parametrii corespunzător RAID 5 (raid5.parv).

Generatorul de workload

• Pentru crearea sarcinilor de lucru s-a folosit un generator de workload-uri care ne permite să modificăm diferiţi parametrii de configurare(număr de cereri, timpul intre cereri, blocurile accesate, tipul de cerere).

Exemplu dintr-un fișier workload (.trace)

Prima coloană reprezintă timpul la care sosește cererea (față de momentul 0), a doua coloană reprezintă numărul organizării de disk-uri (arhitectura) care se simulează, a 3-a coloană reprezintă numărul blocului, a 4-a numărul de blocuri accesate de la poziţia respectivă iar ultima coloană reprezintă tipul cererii, dacă este citire sau scriere, 1 reprezintă citire și 0 scriere.

Timp de sosire al cererii

Numărul organizării

Număr bloc accesat

Dimensiune cerere (în blocuri)

Tip cerere

0,50 0 125244130 1 1

1,00 0 127278923 1 1

1,50 0 104233600 1 0

2,00 0 77295925 1 1

2,50 0 128767728 1 1

3,00 0 91617535 1 0

3,50 0 119709598 1 0

4,00 0 129680747 1 0

4,50 0 87636445 1 0

Interpretarea rezultatelor simulărilor

• Graficele vor fi vizualizate cu ajutorul unei aplicaţii create în Visual Studio (limbaj visual basic).

• Aceasta preia fişierele .outv rezultate în urma simulărilor menţionate anterior şi afişează următorii parametrii de performanţa într-un sistem de coordonate cartezian:

Disk Response time average― timpul mediu de răspuns

Disk Seek time average― timpul mediu de căutare

Disk Rotational latency average― latența rotațională

Disk Transfer time average― timpul mediu de transfer

Disk Access time average― timpul mediu de acces

RAID 1

Sarcină de lucru cu 5000 de cereri, distribuție gaussiană de medie 108 şi dispersie 3*107, distanță între momentele de

sosire ale cererilor de 0.5 ms, numai citiri.

RAID 5

Sarcină de lucru cu 5000 de cereri, distribuție gaussiană de medie 108 şi dispersie 3*107, distanță între momentele de

sosire ale cererilor de 0.5 ms, numai citiri.

RAID 1 vs RAID 5

RAID 5 se comportă mai bine decat RAID 1 (cu aprox 20%), SPTF a obţinut cele mai bune rezultate, fiind urmat de SSTF. La polul opus, FCFS și SCAN ocupă cele mai slabe poziţii.

RAID 5

Sarcină de lucru cu 5000 de cereri, distribuție gaussiană de medie 108 şi dispersie 3*107, distanță între momentele de

sosire ale cererilor de 0.5 ms, numai scrieri.

RAID 1

Sarcină de lucru cu 5000 de cereri, distribuție gaussiană de medie 108 şi dispersie 3*107, distanță între momentele de

sosire ale cererilor de 0.5 ms, numai scrieri.

RAID 5 vs RAID 1

RAID 1 este mai eficient (aprox 10%) faţă de RAID 5 pentru timpul mediu de raspuns, datorită încărcării pentru calculul de

paritate. Din nou, SPTF obţine cele mai bune rezultate.

RAID 1

Sa rc in ă d e lu c ru c u 3 0 0 0 d e c e re ri , d is t rib u ți e g a u s s i a nă d e m e d ie 1 08 ş i d is p e rs i e 1 07, d i s ta n ță î n tre m o m e n te le d e s o s ire a le c e re ri lo r d e 0 .5 m s , c itiri ş i s c rie ri a le a to a re .

Sarcină de lucru cu 3000 de cereri, distribuție gaussiană de medie 108 şi dispersie 3*107, distanță între momentele de sosire ale cererilor de 0.5 ms,

citiri şi scrieri aleatoare.

RAID 5

Sa rc in ă d e lu c ru c u 3 0 0 0 d e c e re ri , d is t rib u ți e g a u s s i a nă d e m e d ie 1 08 ş i d is p e rs i e 1 07, d i s ta n ță î n tre m o m e n te le d e s o s ire a le c e re ri lo r d e 0 .5 m s , c itiri ş i s c rie ri a le a to a re .

Sarcină de lucru cu 3000 de cereri, distribuție gaussiană de medie 108 şi dispersie 3*107, distanță între momentele de sosire ale cererilor de 0.5 ms,

citiri şi scrieri aleatoare.

Concluzii

• Atât RAID 1 (oglindire) cât şi RAID 5 (întreţesere cu paritate) oferă o bună redundanţă a datelor dacă unul din discurile care alcătuiesc matricea suferă o

defecţiune.

• Rezultatele la scriere pentru RAID 5 sunt în general mai slabe decât la RAID 1, datorită încărcării suplimentare pentru calculul paritaţii.

• Performanţa la citire, pe de altă parte, este mai mare într-o configuraţie RAID 5 și crește o data cu numărul de discuri.

• S-a observat că timpul de răspuns s-a micşorat când procesele accesează date din zone cât mai apropiate.

• Algoritmul care se remarcă în toate cazurile studiate este SPTF urmat de SSTF,

iar cele mai slabe poziții sunt ocupate de FCFS si SCAN.