Tecnologia 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/ dmaio@deis.unibo.it 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 e introducono un modello per l analisi delle prestazioni delle varie tipologie di array. 2 Page 1
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=2anno-1964 le capacità delle RAM sono in realtà cresciute più in fretta di un fattore circa 3 rispetto alla velocità dei processori 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: 1 S = (1-f)+f/k S: effettivo aumento f: frazione di lavoro svolto più velocemente k: aumento di velocià apportato 4 Page 2
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. 5 Le cattive notizie: affidabilità Sia dato un array di D dischi; assumendo che ogni disco presenti lo stesso MTTF disk (Mean Time To Failure) e che i guasti siano fra loro indipendenti, si ha: MTTF disk array = MTTF disk D Esempio: MTTF disk = 30000 ore (>3 anni) D = 100 dischi MTTF disk array = 300 ore (< 2 settimane) 6 Page 3
La soluzione 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. (Redundant Array of Inexpensive Disks) impiega: Ridondanza per aumentare l affidabilità Parallelismo e Data Striping per aumentare le prestazioni 7 Affidabilità dei (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 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 λt λe λ=1/mttf 8 Page 4
Affidabilità dei (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 n G = D/G =Numero gruppi nel disk array MTTF Group MTTF = G+ C Disk ( Prob.diun MTTR Prob.di un altroguasto MTTF /(G Disk + 1 altroguastoin un gruppodurantel' C-1) intervallomttr ) MTTF = MTTF n G Group (D 2 (MTTF Disk ) + C n )(G + C 1) MTTR G 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 10 Page 5
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 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 12 Page 6
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 13 0 : Non - Redundant Non è una vera architettura, infatti non mantiene ridondanza e consente solo data striping, a livello di blocco o multipli di blocco. Presenta il minor costo fra le architetture Ha le migliori prestazioni in scrittura, non ha le migliori prestazioni in lettura L affidabilità è molto bassa Utilizzata in applicazioni di supercomputing 14 Page 7
1 : Mirrored disks D Mirrored data 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. Idonea per small DB. MTTDL (mean time to data loss) è elevatissimo: si dovrebbero guastare contemporaneamente un disco e la sua copia D Una versione ottimizzata fault tolerant prevede il raddoppio dei controller, rendendo possibili letture in parallelo 15 MTTF di 1 MTTF -1 (D 2 (MTTF Disk ) + C n )(G + C 1) MTTR G = 2 (MTTF Disk ) 2 D MTTR Esempio: D=100, MTTF Disk = 30000 ore, MTTR = 1 ora MTTF -1 = 4500000 ore > 500 anni Num. Totale dischi = 2D Costo aggiuntivo = 100% Capacità di memoria utile = 50% 16 Page 8
0+1 ( 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 17 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. 18 Page 9
A0 A1 A2 A3 B0 B1 B2 B3 2 (striping at bit level) C0 C1 C2 C3 D0 D1 D2 D3 4 transfer units Data Disk 1 Data Disk 2 Data Disk 3 Data Disk 4 A0 B0 C0 D0 A1 B1 C1 D1 A2 B2 C2 D2 A3 B3 C3 D3 Check Disk 5 A ECC0 B ECC0 C ECC0 D ECC0 Check Disk 6 A ECC1 B ECC1 C ECC1 D ECC1 Check Disk 7 A ECC2 B ECC2 C ECC2 D ECC2 19 Esempio: D=100, G=10, C=4, MTTF Disk = 30000 ore, MTTR = 1 ora MTTF -2 MTTF di 2 2 2 (MTTF Disk ) (MTTF Disk ) = (D + C n )(G + C 1) MTTR 1.4 D 13 * MTTR = 494500 ore > 50 anni Num. Totale dischi = 140D Costo aggiuntivo = 40% Capacità di memoria utile = 71% G = Con G= 25, C=5 si ha MTTF -2 = 130500 ore = circa 12 anni Num. Totale dischi = 120 Costo aggiuntivo = 20% Capacità di memoria utile = 83% 20 Page 10
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. 21 A0 A1 A2 A3 B0 B1 B2 B3 3 (bit-interleaved parity) C0 C1 C2 C3 D0 D1 D2 D3 4 transfer units Data Disk 1 Data Disk 2 Data Disk 3 Data Disk 4 A0 B0 C0 D0 A1 B1 C1 D1 A2 B2 C2 D2 A3 B3 C3 D3 Check Disk 5 A ECC B ECC C ECC D ECC La parità è calcolata per un intera unità di trasferimento 22 Page 11
Esempio: D=100, G=10, C=1, MTTF Disk = 30000 ore, MTTR = 1 ora MTTF -2 MTTF di 3 2 2 (MTTF Disk ) (MTTF Disk ) = (D + C n )(G + C 1) MTTR 1.1 D 10 * MTTR = 820000 ore > 90 anni Num. Totale dischi = 110 Costo aggiuntivo = 10% Capacità di memoria utile = 91% G = Con G= 25, C=1 si ha MTTF -2 = 346000 ore = circa 40 anni Num. Totale dischi = 104 Costo aggiuntivo = 4% Capacità di memoria utile = 96% 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 24 Page 12
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 3. Il ciclo di small read-modify-write è ancora troppo lento rispetto a 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 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 25 4 (block-interleaved parity) A0 A1 A2 A3 B0 B1 B2 B3 C0 C1 C2 C3 D0 D1 D2 D3 4 transfer units Data Disk 1 Data Disk 2 Data Disk 3 Data Disk 4 A0 A1 A2 A3 B0 B1 B2 B3 C0 C1 C2 C3 D0 D1 D2 D3 ECC0 ECC1 ECC2 ECC3 Check Disk 5 La parità è calcolata ora per pezzi di un intera unità di trasferimento 26 Page 13
5 (Block-Interleaved Distributed Parity) Striping a livello di blocco, e parità distribuita su tutti i dischi; testine indipendenti. Rispetto a 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 3 e 4. 27 4 Prestazioni 4 e 5 a confronto check disk 5 1 2 3 4 5 1 2 3 4 5 S0 W W S0 W W S1 W W S1 W W 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 Non c è collo di bottiglia su disco 5 28 Page 14
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. 29 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 5, ma piccole scritture richiedono 6 operazioni di I/O. Affidabilità superiore a 5, costi superiori a 5. D1 D2 D3 D4 D5 D6 dischi 0 6 P2 1 7 Q2 2 P1 8 3 Q1 9 P0 4 10 Q0 5 11 stripe codice R-S 12 13 14 15 P3 Q3 18 19 P4 Q4 16 17 parità 30 Page 15
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. 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 = 2 s 1 Nell esempio infatti n = 2 8 1=255 32 Page 16
3+0, 0+3, 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. 33 Nuove tendenze 34 Page 17
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/ 35 Page 18