RAID: da “Redundant Array of Inexpensive Disks” a “Redundant

annuncio pubblicitario
RAID: da “Redundant Array of Inexpensive Disks” a “Redundant Array
of Independent (expensive?) Disks”.
Chi si occupa di sicurezza informatica si è abituato a considerare normale utilizzare metodi
di risk management per implementare un moderno sistema di protezione aziendale.
L'incessante cronaca di attacchi a siti internet e la possibilità di accedere facilmente a fonti
di sapere aperte e attendibili (ad es. i sistemi a codice free o open source) hanno
consolidato la consapevolezza che nessun sistema di sicurezza è inviolabile. In ambito
storage è ancora comune considerare i sistemi come infallibili poiché altamente resilienti.
Probabilmente il ritardo di offerta di storage con software a codice aperto per il mercato
aziendale ha limitato la diffusione di notizie e quindi la conoscenza di casi critici, con
qualche eccezione8 (notare che spesso la causa è imputata ad un errore “umano”).
Per arrivare a considerare normale9 che i dati in uno storage in RAID 5/6 abbiano un
elevato rischio di corruzione o fault totale è necessario chiarire il contesto dei requisti
minimi ricordando che il
documento10 del 1988 in cui viene
coniato per la prima volta il termine
RAID conclude con una serie di
temi su cui investigare e tra questi:
“Ho do defective sectors affect
RAID?”
Facciamo l'ipotesi di uno storage in
raid 5 “hardware” costituito da un
array di dischi in cui il controller
aggrega n dischi che espone al
sistema operativo come un singolo
volume su cui creare un
filesystem. In caso eliminazione
(erasure) di un singolo disco il
controller entra in modalità “Interim
Data Recovery Mode”, ossia
ricostruisce al volo il dato mancante in modo che il sistema operativo possa operare senza
interruzione di servizio. Appena l'unità guasta viene sostituita con una nuova, parte un
processo di ricostruzione per tornare allo stato precedente. Ci sono tre puntualizzazioni
importantissime da fare a questo punto:
- un sistema RAID5 effettua la ricostruzione del dato mancante solo in Interim o in
Rebuild data recovery mode,
- il rebuild (re-silver) di un array RAID5 comporta la lettura sequenziale di TUTTI i bit
(non è un filesystem) di tutti i dischi rimanenti e, in caso di errore di lettura anche di un
solo bit, si interrompe con segnalazione di errore,
- in nessun caso lo standard RAID5 effettua il checksum dei dati...
8
http://www.availabilitydigest.com/public_articles/0510/virginia.pdf ,
https://www.computable.nl/artikel/achtergrond/infrastructuur/4389649/2379248/raadsels-rond-computerstoringgroningen.html
9 http://www.zdnet.com/article/why-raid-5-stops-working-in-2009/
10 http://www.cs.cmu.edu/~garth/RAIDpaper/Patterson88.pdf
U.O.A. Servizio Informatico
Resp. del Procedimento: dott. Giorgio Roncolato
Resp. Istruttoria: Alessandro Fascina
Revisione 1.0 del 5 febbraio 2016
Via Trento, 4 - 36071 Arzignano (VI)
Tel: 0444/479663 Fax: 0444/479654
e-mail: [email protected]
C.F.e P.I. 00913220240
Il motivo per cui i sistemi RAID5/6 non effettuano verifiche di integrità (alcuni si basano su
query S.M.A.R.T per verificare lo stato dei dischi!) ad ogni lettura è opinabile in termini di
integrità dei dati enterprise (ma ben argomentato in questo post 11 e parzialmente
confermato da questo paper12 ) mentre il fatto che il rebuild si interrompa in caso di errore,
per quanto impressionante, deriva dal fatto che un array RAID (hardware o software se
non integrato nel filesystem) è ad un livello inferiore e disgiunto dal filesystem dell' Os e
quindi non ha nessun mapping/conoscenza di come siano strutturati i dati.
E' interessante osservare che il vero scopo di sistemi RAID6/Double Parity non sia quello
di ricostruire un array in caso di rottura contemporanea di due dischi (evento che in sé
riconduce alle stesse criticità di un Raid5), ma di tollerare la ricostruzione di un disco e
la perdita di un bit!
Abbiamo stabilito che lo standard Raid5, originariamente progettato per ottenere
performance con un “accettabile” livello di affidabilità, non effettua mai il checksum dei
dati in lettura e scrittura, delegando tale attività ai controlli ECC integrati nell'elettronica dei
dischi o del controller. Oggi sul mercato sono già disponibili dischi magnetici SATA
consumer da 8TB13 (al costo di 200€) con frequenze dichiarate dai produttori di
unrecoverable error rate di un bit ogni 1014:
Lo scenario che andremo a descrivere
sarà quello di un RAID5 con array di
dischi ad altissima capacità e URE di
categoria consumer 1x1014 .
Prima di proseguire è necessario
ricordare che l'indicazione di un URE con frequenza di 1x1014 non significa che si abbia la
certezza che l'evento accada e vale l'occasione per ricordare alcuni elementi del calcolo
delle probabilità.
La distribuzione binomiale di probabilità è una distribuzione discreta che descrive il
numero di successi in un processo di Bernoulli.
Un tipico processo di Bernoulli è il lancio di una moneta dove il risultato può essere testa o
croce oppure la lettura di un bit da un hard disk che può avere valore 0 o 1 14, con la
caratteristica che:
- p è la probabilità che un evento abbia successo
- q è la probabilità che un evento non abbia successo
- p = 1 -q
La distribuzione binomiale consente di valutare le probabilità che una modalità di un
evento con probabilità individuabile a priori (p) si verifichi un determinato numero di volte
(k) entro un numero totale (n) di eventi.
Ad esempio se lancio tre volte15 un dado il numero massimo di combinazioni semplici con
ripetizioni16 è 56 (n=6, k=3):
11 http://serverfault.com/questions/100301/how-does-raid-detect-a-faulty-hd
12 http://pages.cs.wisc.edu/~bpkroth/cs736/md-checksums/md-checksums-paper.pdf
13 http://www.seagate.com/files/www-content/product-content/hdd-fam/seagate-archive-hdd/en-us/docs/archive-hdddS1834-3-1411us.pdf
14 https://mycourses.aalto.fi/pluginfile.php/42813/course/section/45281/Solution7.pdf
15 http://www.irccsdebellis.it/html/dipuninf/statistica/cap6.pdf
16 https://it.wikipedia.org/wiki/Coefficiente_binomiale
U.O.A. Servizio Informatico
Resp. del Procedimento: dott. Giorgio Roncolato
Resp. Istruttoria: Alessandro Fascina
Revisione 1.0 del 5 febbraio 2016
Via Trento, 4 - 36071 Arzignano (VI)
Tel: 0444/479663 Fax: 0444/479654
e-mail: [email protected]
C.F.e P.I. 00913220240
Ad ogni lancio la probabilità che esca un certo valore (ad esempio 6) è 1/6, ma qual è la
probabilità che esca 6 almeno una volta dopo tre lanci?
La formula generale B(n,p) ci dice che la somma di tutte le probabilità è uguale a 1:
Tra tutte le otto (23) possibili combinazioni dei tre lanci (n=3) vogliamo calcolare quella
dove la probabilità che un evento p pari a 1/6 non si verifichi mai ossia k=0, la formula
P(n,k,p) diventa il caso specifico P(3,0,p)
sapendo che il coefficiente si esprime come
p=1/6
q= 1-p
n (numero di lanci) = 3
k (casi di successo) = 0
[
]( ) ( )
3!
1 0
1
⋅ ⋅ 1−
0!⋅(3−0)! 6
6
(3−0)
( )
=1⋅1⋅ 1−
(3−0)
1
6
n!
( nk)= k!(n−k
)!
( )
= 1−
1 3
=0,579
6
ossia che nel 57.9% dei casi su tre lanci l'evento p non uscirà mai. A questo punto
sapendo che p=1-q possiamo dedurre che tutti i casi rimanenti in cui l'evento p esca
almeno una volta ha una probabilità del 1-0,579= 42,1%.
Dalla letteratura17 sappiamo che durante il rebuild di un array da 100GB in raid5 di dischi
con ure 1x10^14 l'eventualità di incorrere in un errore di lettura di bit è assimilabile ad un
processo di Bernoulli (0,1) possiamo utilizzare la distribuzione binomiale per calcolare la
probabilità di leggere con successo tutti i dati:
p (probabilità di leggere 1 bit errato) = 1/10^14
q (probabilità di non leggere 1 bit errato) = 1-p = 1-1/10^14
n (numero di letture di bit indipendenti) = 100GB = 8*10^11 bit
k (casi di successo) = 0
(8∗100 )[ p ][q
11
0
11
(8∗10 −0 )
[
1
]=1∗1∗ 1− 14
10
]
11
8∗10
=0,992
che significa che la probabilità di incorrere in almeno un unrecoverable error è dello 0,8%.
Il numero di errori attesi si ricava dalla formula
ossia (8*10^11)*(1/(10^14))= 0,008.
17 https://web.eecs.umich.edu/~pmchen/papers/chen94_1.pdf
U.O.A. Servizio Informatico
Resp. del Procedimento: dott. Giorgio Roncolato
Resp. Istruttoria: Alessandro Fascina
Revisione 1.0 del 5 febbraio 2016
Via Trento, 4 - 36071 Arzignano (VI)
Tel: 0444/479663 Fax: 0444/479654
e-mail: [email protected]
C.F.e P.I. 00913220240
Vediamo ora uno scenario di 6 dischi da 6TB SATA consumer in RAID5 nell'ipotesi di
rebuild causato dalla rottura di un disco, il processo di lettura dovrà ricostruire i dati via
XOR dai 5 dischi rimanenti:
p (probabilità di leggere 1 bit errato) = 1/10^14
q (probabilità di non leggere 1 bit errato) = 1-p = 1-1/10^14
n (numero di letture di bit indipendenti) = 5*6TB=30TB = 2,4*10^14 bit
k (casi di successo) = 0
C( 2,4*10^14;0)*p^0*q^ 2,4*10^14 = 1*1*(1-1/(10^14))^(2,4*10^14) = 0,090
che significa che la probabilità di incorrere in almeno un unrecoverable error è dello
91%!.
Il numero di errori attesi si ricava dalla formula: (2,4*10^14)*(1/(10^14)= 2,4 .
Il grafico successivo indica la probabilità di un errore in array di dischi SATA con ure
1x1014:
Sono dati che fanno riflettere e che fanno capire come mai ad un certo punto la i di
Inexpensive sia diventata Indipendent, infatti ora sappiamo che l'unica vera differenza tra
un disco consumer ed uno enterprise è l' URE, ad esempio con un disco da 10TB
“consumer enterprise” HGST HelioSeal18 con URE 1x1015 la probabilità che l' array in
rebuild ottenga l'errore scende:
1-((1-(1/10^15))^(2,4*10^14))19 = 0,21 , ma il 21% di probabilità di ottenere un blocco nella
ricostruzione del raid è ancora un valore inaccettabile.
Una possibile soluzione potrebbe essere quella di usare unità con URE 1x1016 :
1-((1-1/(10^16))^(2,4*10^14)) = 0,02, ma un tale livello di qualità è presente solo nei dischi
magnetici SAS20 (o SSD enterprise) che però vengono venduti a 3.000€ l'uno e con
capacità massima di 900GB.
18 https://www.hgst.com/products/hard-drives/ultrastar-archive-ha10
19 La formula equivalente 1-(((10^15-1)/10^15)^(2,4*10^14))
20 http://www.enterprisestorageforum.com/storage-technology/sas-vs.-sata-1.html
U.O.A. Servizio Informatico
Resp. del Procedimento: dott. Giorgio Roncolato
Resp. Istruttoria: Alessandro Fascina
Revisione 1.0 del 5 febbraio 2016
Via Trento, 4 - 36071 Arzignano (VI)
Tel: 0444/479663 Fax: 0444/479654
e-mail: [email protected]
C.F.e P.I. 00913220240
I valori di soglia critici in relazione ai parametri ure sono i seguenti:
URE 1x1014 12,5 TB.
URE 1x1015 125 TB.
URE 1x1016 1,25 PB.
La possibilità di un bit URE durante il re-silver di un array RAID5 non è l'unico problema,
esiste infatti un elevata correlazione di un secondo fault successivo alla rottura di un disco
e quindi è estremamente importante non solo che l'unità difettosa sia sostituita
immediatamente tramite dischi di spare, ma che il processo di ricostruzione sia minore di
10 ore21: “For example, the probability of seeing two drives in the cluster fail within one hour is
four times larger under the real data, compared to the exponential distribution. The
probability of seeing two drives in the cluster fail within the same 10 hours is two
times larger under the real data, compared to the exponential distribution. “
Illustrazione 6: Distribution of time
between disk replacements across all
nodes in HPC1 for only year 3 of
operation.
Ipotizzando di leggere un intero disco da 10TB ad una velocità ottimistica di 100MB/s
(durante un rebuild RAID5 è operativo e quindi esegue le attività di lettura ad una velocità
del 60-80% del massimo possibile) abbiamo 10TB/100MB/s= 27 ore.
Non è un caso quindi che i produttori di sistemi storage enterprise offrano
prevalentemente dischi SAS con URE 1x1016 e di capacità ridotta, molto al di sotto della
massima capacità disponibile sul mercato, con conseguente esplosione dei costi di
acquisto, supporto e manutenzione. Ed è probabilmente per gli stessi motivi che la I di
RAID si è trasformata da Inexpensive in Indipendent...
Per completare il quadro d'insieme ricordiamo che la letteratura scientifica, sulla base di
misurazioni empiriche, ha ridiscusso la definizione di parametri o concetti noti
(MTBF,MTTL,latent sector error, silend data corruption, ecc., ecc), ma anche formule e
algoritmi di analisi e previsione dei guasti22 .
21 https://www.usenix.org/legacy/events/fast07/tech/schroeder/schroeder_html/index.html
22 http://www.cs.cmu.edu/~bianca/fast08.pdf
U.O.A. Servizio Informatico
Resp. del Procedimento: dott. Giorgio Roncolato
Resp. Istruttoria: Alessandro Fascina
Revisione 1.0 del 5 febbraio 2016
Via Trento, 4 - 36071 Arzignano (VI)
Tel: 0444/479663 Fax: 0444/479654
e-mail: [email protected]
C.F.e P.I. 00913220240
Nel 2006 Netapp pubblica un articolo “NETAPP RAID-DP™: DUAL-PARITY RAID 6
PROTECTION WITHOUT COMPROMISE “
che annuncia che con il proprio RAIDDoubleParity il rischio di perdita di dati in caso di rebuild di un array è 3800 volte più
basso di un RAID5 (la versione del 2006 WP-7005-1006 è reperibile in altri siti).
Nel 2009 Adam Leventhal23, sulla base dei trend di crescita della capacità dello storage,
prevede che nel 2019 anche RAID6 non potrà più essere affidabile e suggerisce di iniziare
a considerare la strada del RAID Triple Parity. Nel 2013 Netapp, con rara e ammirabile
onestà intellettuale, pubblica un documento24 che prende atto dei progressi tecnologici e
delle analisi scientifiche e propone una nuova formulazione del calcolo dell'affidabilità degli
storage RAID6 che ricalcola il minor rischio dai 3800x del 2006 ad un valore attorno a
300x25 nei confronti di RAID5 (ma anche RAID1+0) e mettendo a disposizione un
calcolatore26. Compariamo quest'ultimo documento27 Netapp con uno Dell28 del 2002 che
sostiene che “Mirroring (RAID10 ndr) provides the most reliable RAID system” (tesi
tutt'ora sostenuta da alcuni produttori):
Poiché sappiamo che la complessità degli argomenti trattati coinvolge anche la scelta dei
metodi matematici di analisi è evidente la necessità che i modelli/algoritmi utilizzati da
chiunque per calcolare l'affidabilità dei sistemi storage siano resi pubblici o,
auspicabilmente, ricollocati nell'ambito del sempre attuale metodo scientifico in modo da
facilitare la discussione e la verifica dalla più amplia platea possibile di soggetti. In caso
contrario ogni affermazione è riconducibile a semplice opinione se non ad un mero
messaggio pubblicitario.
23
24
25
26
27
28
http://queue.acm.org/detail.cfm?id=1670144
https://www.usenix.org/system/files/fastpw13-final25.pdf
http://www.netapp.com/us/media/wp-7005.pdf
http://raideqn.netapp.com/
http://www.netapp.com/us/media/wp-7005.pdf
http://www.dell.com/content/topics/global.aspx/power/en/ps1q02_long?c=us&l=en&cs=04
U.O.A. Servizio Informatico
Resp. del Procedimento: dott. Giorgio Roncolato
Resp. Istruttoria: Alessandro Fascina
Revisione 1.0 del 5 febbraio 2016
Via Trento, 4 - 36071 Arzignano (VI)
Tel: 0444/479663 Fax: 0444/479654
e-mail: [email protected]
C.F.e P.I. 00913220240
Scarica