Tecnologia RAID Dario Maio Le motivazioni storiche

Transcript

Tecnologia RAID Dario Maio Le motivazioni storiche
Tecnologia RAID
Compaq SP24000, detto anche
"Terabytes in a Cabinet," usa
dischi da 4, 9, 18 o 36 GB fino a
una capacità massima di 3.4 TB
UltraSCSI
Dario Maio
http://www.csr.unibo.it/~maio/
[email protected]
RAID
1
Le motivazioni storiche
¾
Negli anni 80 la tecnologia degli hard disk non rispondeva
adeguatamente ai problemi indotti da:
¾ requisiti applicativi di elevata capacità e scalabilità
¾ Input/Output Gap dovuto a CPU sempre più veloci
¾ Necessità di sistemi di memorizzazione affidabili
¾ Necessità di ottenere bassi costi
¾
Cominciò allora la sperimentazione di una tecnologia alternativa, che
combinava dischi piccoli poco costosi in array.
¾
Nel 1988 Patterson e altri, nel lavoro “A case for redundant arrays of
inexpensive disks” analizzano le motivazioni della tecnologia RAID
e introducono un modello per l’analisi delle prestazioni delle varie
tipologie di array.
RAID
Page 1
2
Prestazioni di CPU e RAM
anno-1984
¾
Legge di Bill Joy (1985): MIPS= 2
ma una CPU più veloce non basta a rendere più veloce un
sistema
Legge di Amdahl: ogni istruzione di CPU per secondo
richiede un byte di memoria principale
dunque anche la capacità di memoria deve crescere con la
stessa legge
¾
Legge di Gordon Moore: transistor/chip=2 anno-1964
¾
le capacità delle RAM sono in realtà cresciute più in fretta
di un fattore circa 3 rispetto alla velocità dei processori
RAID
3
Prestazioni degli HD
¾
¾
¾
Mentre la densità di memorizzazione fino agli anni 80 ha
seguito una crescita in linea con l’aumento delle capacità
della RAM, le prestazioni nei grandi dischi costosi sono
aumentate di meno di un 10% all’anno, dipendendo
fortemente dalla meccanica dei dispositivi.
“The Pending I/O crisis”: qual è allora l’impatto del
miglioramento delle prestazioni di alcune parti di un
sistema, lasciando le altre inalterate?
Legge di Amdahl:
S=
1
(1-f)+f/k
S: effettivo aumento
f: frazione di lavoro svolto
più velocemente
k: aumento di velocià
apportato
RAID
Page 2
4
Esempio: legge di Amdahl
¾
Alcune applicazioni spendono il 10% in I/O. Dopo un
aumento del 100% della velocità della CPU, si ha:
S=
1
(1-0.9)+0.9/100
≅ 10
Osservando che rispetto a piccoli dischi poco costosi le
prestazioni dei grandi dischi, in termini di I/O per secondo, sono
superiori solo di un fattore 2-3, nasce l’idea di costruire “array di
piccoli dischi”, sfruttando tecniche di distribuzione dei dati e di
parallelismo degli accessi.
RAID
5
Le cattive notizie: affidabilità
¾
Sia dato un array di D dischi; assumendo che ogni disco
presenti lo stesso MTTFdisk (Mean Time To Failure) e che
i guasti siano fra loro indipendenti, si ha:
MTTFdisk array =
¾Esempio:
MTTFdisk
D
MTTFdisk = 30000 ore (>3 anni)
D = 100 dischi
MTTFdisk array = 300 ore (< 2 settimane)
RAID
Page 3
6
La soluzione RAID
¾
¾
La soluzione più ovvia al problema della scarsa
affidabilità di un array di dischi consiste nell’impiego di
tecniche di ridondanza. Ma la ridondanza ha anche aspetti
negativi in termini di prestazioni.
RAID (Redundant Array of Inexpensive Disks) impiega:
Ridondanza
per aumentare l’affidabilità
Parallelismo e Data Striping
per aumentare le prestazioni
RAID
7
Affidabilità dei RAID (1)
Si ricorre a extra “check” disk con informazioni
ridondanti. In caso di guasto di un disco, si sostituisce
ricostruendo l’informazione nel nuovo disco usando la
ridondanza dei check disk.
Ipotesi per il calcolo dell’affidabilità:
‰ Single Error Repairing RAID
‰ Il MTTR (Mean Time To Repair) può essere ridotto
disponendo di extra disk (hot standby spares) montati
senza intervento umano.
‰ Guasti indipendenti, distribuzione esponenziale per il
tempo fra due guasti
¾
λe
−λt
λ=1/MTTF
RAID
Page 4
8
Affidabilità dei RAID (2)
D = Numero totale dischi dati (esclusi gli extra-check disk)
‰ G = Numero dischi dati in un gruppo
‰ C = Numero check disk in un gruppo
‰ nG = D/G =Numero gruppi nel disk array
‰
MTTFGroup =
MTTFDisk
1
∗
G + C (Prob.di un altroguastoin un gruppodurantel' intervalloMTTR)
Prob.di un altro guasto ≅
MTTF
RAID
=
MTTF
nG
MTTR
MTTFDisk /(G + C - 1)
Group
≅
(MTTF Disk ) 2
(D + C ∗ n G )(G + C − 1) ∗ MTTR
RAID
9
Concetti di base
¾
¾
¾
Richieste multiple indipendenti possono essere servite in
parallelo da dischi diversi.
Una singola richiesta di un numero elevato di blocchi può
essere servita da più dischi che operano in maniera
coordinata.
La maggior parte delle organizzazioni può essere distinta
in base a due caratteristiche:
Granularità di inserimento dei dati
Metodo e struttura con cui le informazioni ridondanti
vengono calcolate e distribuite sui vari dischi
RAID
Page 5
10
Parallelismo : grana fine
¾
¾
I dati vengono inseriti in blocchi relativamente piccoli, le
richieste di I/O accedono a tutti i dischi di un gruppo. Ciò
comporta data rate elevato ma basso I/O rate.
Granularità idonea per applicazioni di supercomputing
Durante una lettura tutti i dischi di un gruppo agiscono in
parallelo, ciascuno trasferendo una porzione dei dati richiesti
RAID
11
Parallelismo: grana grossa
¾
¾
I dati vengono inseriti in blocchi relativamente grandi, le
piccole richieste vengono servite da un piccolo numero di
dischi. Ciò comporta data rate basso ma elevato I/O rate.
Granularità idonea per transaction processing
Molteplici letture/scritture individuali avvengono in parallelo sui
vari dischi di un gruppo
RAID
Page 6
12
Ridondanza e data striping
¾
Due problemi ortogonali:
1) Metodo per il calcolo delle informazioni ridondanti:
parità, codici di Hamming, codici di Reed-Solomon, …
2) Schema di distribuzione, ai due estremi:
2a) concentrazione delle informazioni ridondanti in un
numero piccolo di dischi
2b) distribuzione uniforme su tutti i dischi, che consente
in generale un bilanciamento del carico fra i dischi
RAID
13
RAID 0 : Non - Redundant
‰Non è una vera architettura RAID, infatti non mantiene ridondanza
e consente solo data striping, a livello di blocco o multipli di blocco.
‰Presenta
il minor costo fra le architetture RAID
‰Ha
le migliori prestazioni in scrittura, non ha le migliori prestazioni
in lettura
‰L’affidabilità
‰Utilizzata
è molto bassa
in applicazioni di supercomputing
RAID
Page 7
14
RAID 1 : Mirrored disks
D
Una versione
ottimizzata fault
D
Mirrored data tolerant prevede il
raddoppio dei
controller, rendendo
possibili letture in
parallelo
‰I dati sono mantenuti in duplice copia su dischi distinti, tutti i dischi
sono duplicati (G=1 C=1)
‰Ogni dato è posto su due attuatori indipendenti, si possono ottenere
migliori prestazioni in lettura rispetto a un solo disco, tramite la
tecnica seek scheduling
‰Offre
un’elevata affidabilità, ma presenta il costo più elevato fra le
architetture RAID. Idonea per small DB. MTTDL (mean time to data
loss) è elevatissimo: si dovrebbero guastare contemporaneamente un
disco e la sua copia
RAID
15
MTTF di RAID 1
MTTF
RAID -1
≅
(MTTF Disk ) 2
(MTTF Disk ) 2
=
(D + C ∗ n G )(G + C − 1) ∗ MTTR
2 ∗ D ∗ MTTR
‰Esempio:
D=100, MTTFDisk = 30000 ore, MTTR = 1 ora
MTTFRAID-1 = 4500000 ore > 500 anni
‰Num.
Totale dischi = 2D
‰Costo
aggiuntivo = 100%
‰Capacità
di memoria utile = 50%
RAID
Page 8
16
RAID 0+1 (RAID 1+0)
‰Nella configurazione 0+1 (stripe of mirrors) i dati sono distribuiti su
insiemi di dischi in duplice copia;
‰Nella configurazione 1+0 (mirror of stripes) i dati sono distribuiti su
un array di dischi che viene completamente duplicato su uno o più
array di dischi.
‰Ottima
affidabilità e buone prestazioni in accesso ma costi elevati
RAID
17
RAID 2: Memory-Style ECC
G
C
‰Architettura
non diffusa commercialmente. Striping a livello di bit,
unico movimento parallelo delle testine. Uso di codici di Hamming
per rilevare e correggere un errore.
‰Il numero di dischi ridondanti in un gruppo è circa proporzionale al
logaritmo del numero di dischi dati nel gruppo:
Es. G=10, C=4; G=25,C=5;
‰Nei dischi ridondanti viene inserita la parità calcolata sui diversi
sottoinsiemi dell’informazione. Un unico disco di parità può rilevare
un singolo errore, ma per correggere un errore sono necessari più
dischi di parità per identificare il disco con l’errore.
‰Small I/O richiedono tutti i dischi di un gruppo; dunque non idoneo
per transaction processing. Il massimo parallelismo di transazioni è
pari a D/G. Large I/O richiede almeno G settori; appropriato per
supercomputer.
RAID
Page 9
18
RAID 2 (striping at bit level)
A0
A1
A2
A3
B0
B1
B2
B3
C0
C1
C2
C3
Sector 0
Data Disk 1
D0
D1
D2
D3
4 transfer units
Sector 0
Data Disk 2
A0
B0
C0
D0
A1
B1
C1
D1
Sector 0
Check Disk 5
A ECC0
B ECC0
C ECC0
D ECC0
Sector 0
Data Disk 3
A2
B2
C2
D2
Sector 0
Check Disk 6
Sector 0
Data Disk 4
A3
B3
C3
D3
Sector 0
Check Disk 7
A ECC1
B ECC1
C ECC1
D ECC1
A ECC2
B ECC2
C ECC2
D ECC2
RAID
19
MTTF di RAID 2
‰Esempio:
MTTF
D=100, G=10, C=4, MTTFDisk = 30000 ore, MTTR = 1 ora
RAID - 2
≅
(MTTF Disk ) 2
(MTTF Disk ) 2
=
=
(D + C ∗ n G )(G + C − 1) ∗ MTTR
1.4 ∗ D ∗ 13 * MTTR
= 494500 ore > 50 anni
‰Num.
Totale dischi = 140D
‰Costo
aggiuntivo = 40%
‰Capacità
‰Con
di memoria utile = 71%
G= 25, C=5 si ha MTTFRAID-2= 130500 ore = circa 12 anni
‰Num.
Totale dischi = 120
‰Costo
aggiuntivo = 20%
‰Capacità
di memoria utile = 83%
RAID
Page 10
20
RAID 3: Bit-Interleaved Parity
‰Striping a livello di bit, unico movimento parallelo delle testine. Uso
di un solo disco di parità.
‰I disk controller identificano il disco guasto, così un solo disco di
parità è sufficiente per ricostruire l’informazione in un gruppo.
‰ Le read accedono a tutti i dischi dati di un gruppo, le write accedono
a tutti i dischi dati e al disco di parità.
‰Fornisce prestazioni in lettura inferiori agli schemi che
distribuiscono la parità uniformemente sui dischi. Viene usata in
applicazioni che richiedono larghezza di banda ma non moltissime
operazioni di I/O.
RAID
21
RAID 3 (bit-interleaved parity)
A0
A1
A2
A3
B0
B1
B2
B3
Sector 0
Data Disk 1
A0
B0
C0
D0
C0
C1
C2
C3
D0
D1
D2
D3
Sector 0
Data Disk 2
A1
B1
C1
D1
4 transfer units
Sector 0
Data Disk 3
A2
B2
C2
D2
Sector 0
Data Disk 4
A3
B3
C3
D3
Sector 0
Check Disk 5
A ECC
B ECC
C ECC
D ECC
La parità è calcolata per
un’ intera unità di
trasferimento
RAID
Page 11
22
‰Esempio:
MTTF
MTTF di RAID 3
D=100, G=10, C=1, MTTFDisk = 30000 ore, MTTR = 1 ora
RAID - 2
(MTTF Disk ) 2
(MTTF Disk ) 2
=
=
(D + C ∗ n G )(G + C − 1) ∗ MTTR
1.1 ∗ D ∗ 10 * MTTR
≅
= 820000 ore > 90 anni
‰Num.
Totale dischi = 110
‰Costo
aggiuntivo = 10%
‰Capacità
‰Con
di memoria utile = 91%
G= 25, C=1 si ha MTTFRAID-2= 346000 ore = circa 40 anni
‰Num.
Totale dischi = 104
‰Costo
aggiuntivo = 4%
‰Capacità
di memoria utile = 96%
RAID
23
Esempio di Even-Parity
Se il disco 2 si guasta, il Bit 0 del dato
mancante si determina risolvendo:
1+x+0+1=y con y dispari, essendo pari
a 1 il valore di parità del Bit 0.
In questo caso il Bit 0 sul disco 2 deve
essere pari a 1.
Binary Value of Data
Drive
Data Value
Bit 7
Bit 6
Bit 5
Bit 4
Bit 3
Bit 2
Bit 1
Bit 0
1
135
1
0
0
0
0
1
1
1
2
11
0
0
0
0
1
0
1
1
3
96
0
1
1
0
0
0
0
0
4
157
1
0
0
1
1
1
0
1
Sum of bits
Even
Odd
Odd
Odd
Even
Even
Even
Odd
Parity Values
0
1
1
1
0
0
0
1
RAID
Page 12
24
RAID 4: Block-Interleaved Parity
‰Striping a livello di blocco, testine indipendenti. Uso di un solo
disco di parità.
‰Piccole
letture richiedono l’accesso a un solo disco dati.
‰Piccole scritture richiedono 4 I/O: due per leggere il vecchio dato e la
vecchia parità, due per scrivere il nuovo dato e aggiornare la parità.
‰Il
collo di bottiglia rimane il disco di parità.
‰Risultati di affidabilità, costo, capacità effettiva uguali a quelli del
livello RAID 3.
‰Il ciclo di small read-modify-write è ancora troppo lento rispetto a
RAID 1; dunque non sempre idoneo per transaction processing.
Idoneo per ambienti che richiedono molte simultanee piccole letture.
‰Il calcolo della parità è più semplice rispetto a RAID 3, infatti noti il
vecchio valore del dato e vecchio valore della parità, il nuovo valore
della parità si ottiene:
new parity =(old data xor new data) xor old parity
RAID
25
RAID 4 (block-interleaved parity)
A0
A1
A2
A3
B0
B1
B2
B3
Sector 0
Data Disk 1
A0
A1
A2
A3
C0
C1
C2
C3
Sector 0
Data Disk 2
B0
B1
B2
B3
D0
D1
D2
D3
4 transfer units
Sector 0
Data Disk 3
C0
C1
C2
C3
Sector 0
Data Disk 4
D0
D1
D2
D3
Sector 0
Check Disk 5
ECC0
ECC1
ECC2
ECC3
La parità è calcolata ora
per pezzi di un’ intera
unità di trasferimento
RAID
Page 13
26
RAID 5 (Block-Interleaved
Distributed Parity)
‰Striping a livello di blocco, e parità distribuita su tutti i dischi;
testine indipendenti. Rispetto a RAID 3 si riduce il collo di bottiglia
in quanto scritture indipendenti concorrenti non sempre richiedono
di accedere allo stesso disco per la parità.
‰Hanno prestazioni migliori per grandi letture, piccole letture e
grandi scritture; le piccole scritture sono inefficienti rispetto allo
schema di mirroring, in quanto è necessario usare il ciclo letturamodifica-scrittura per aggiornare la parità. Idoneo per applicazioni di
calcolo e per elaborazione di transazioni interattive.
‰Risultati di affidabilità, costo, capacità effettiva uguali a quelli dei
livelli RAID 3 e RAID 4.
RAID
27
Prestazioni RAID 4 e 5 a confronto
check disk
RAID 4
1
S0
S1
2
3
4
W
W
RAID 5
5
1
W
S0
W
S1
S2
S2
S3
S3
S4
S4
S5
S5
Write S0 su disco 2 e Write S1 su disco 3
implicano rsipettivamente
Write S0 su disco 5 e Write S1 su disco 5
2
3
4
5
W
W
W
W
Non c’è collo di bottiglia su disco 5
RAID
Page 14
28
Left-Symmetric Parity Distribution
1
2
3
4
5
6
7
8
9
a1
b2
c3
d4
a2
b3
c4
d5
a3
b4
c5
d6
a4
b5
c6
d7
a5
b6
c7
d8
a6
b7
c8
pd
a7
b8
pc
d1
a8
pb
c1
d2
pa
b1
c2
d3
pa calcola la parità delle stripe a1-a8
pb calcola la parità delle stripe b1-b8
………….
RAID
29
RAID 6: P+Q Redundancy
‰Striping a livello di blocco, e parità distribuita su tutti i dischi;
testine indipendenti. Tolleranza fino a 2 guasti, utilizzando codici di
Reed - Solomon.
‰Hanno prestazioni comparabili con RAID 5, ma piccole scritture
richiedono 6 operazioni di I/O.
‰Affidabilità
superiore a RAID 5, costi superiori a RAID 5.
D1
D2
D3
D4
D5
D6
dischi
0
1
2
3
P0
Q0
6
7
P1
Q1
4
5
P2
12
Q2
13
8
14
9
15
10
P3
11
Q3
codice R-S
18
19
P4
Q4
16
17
parità
stripe
RAID
Page 15
30
Codici di Reed-Solomon
‰Un codice di Reed-Solomon è specificato come RS(n,k) con simboli
di s bit. Ciò significa che il codificatore prende k simboli dati di s bit
ciascuno e aggiunge simboli di parità per costruire una parola codice
di n simboli.
Vi sono n-k simboli di parità di s bit ciascuno. Il decodificatore può
correggere fino a t simboli che contengono errori in una parola
codice, essendo 2t = n-k.
‰I codici RS sono un sottoinsieme dei codici BCH. Alla base la
matematica dei campi di Galois. L’informazione da memorizzare è
vista come un polinomio che moltiplicato per un polinomio
generatore genera la parola codice.
RAID
31
Esempio di codice RS
‰RS(255,223) con simboli di 8 bit. Ogni parola codice contiene
255 byte, di cui 223 sono dati e 32 sono parità. In questo
esempio:
n = 255, k = 223, s = 8
2t = 32, t = 16
‰Il decodificatore può correggere errori fino a 16 byte nella
parola codice.
‰Dato un simbolo di dimensione s, la lunghezza massima di
parola codice è pari a n = 2s – 1
‰Nell’esempio infatti n = 28 – 1=255
RAID
Page 16
32
RAID 3+0, 0+3, RAID 5+0, 0+5
‰Combinano rispettivamente le tecniche di parità tipiche del livello 3
o del livello 5 con le tecniche di distribuzione del livello 0.
‰Presentano costi elevati, ma beneficiano del parallelismo d’accesso ai
dischi di parità.
‰Esistono anche altre combinazioni di livelli. Non tutte le
combinazioni sono possibili.
RAID
33
Nuove tendenze
RAID
Page 17
34
Riferimenti bibliografici
http://www.pcguide.com/ref/hdd/perf/raid/
http://www.dell.com/us/en/biz/topics/
vectors_1999-raid.htm
http://www.fibrechannel.com/
RAID
Page 18
35