Evaluarea performan*elor matricilor RAID cu disc de rezerv*

Download Report

Transcript Evaluarea performan*elor matricilor RAID cu disc de rezerv*

Facultatea de Electronică,Telecomunicaţii şi Tehnologia Informaţiei
Universitatea “POLITEHNICA” din Bucureşti
Evaluarea performanţelor matricilor RAID
cu disc de rezervă
Coordonator
Conf. Dr. Ing. Ștefan Stăncescu
Absolvent
Marcu Andrei
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
–
•
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.
–
•
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.
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
• 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.

Implementare hibridă
• 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 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.
 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.
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
 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.
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.
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 Scheduling
policy (1, 2, 3, 4, 5, 6, 8, 17) din fişierul Seagate-Cheetah15k5.diskspecs, după care
se 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).
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
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.
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
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.
Sarcină de lucru cu 3000 de cereri, distribuție
gaussiană de medie 108 şi dispersie 107, distanță
între momentele de sosire ale cererilor de 0.5 ms,
citiri şi scrieri aleatoare.
RAID 5
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.
Sarcină de lucru cu 3000 de cereri, distribuție
gaussiană de medie 108 şi dispersie 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.