Posted on

Velocità dei dischi in RAID

Proviamo a fare un quadro delle velocità dei dischi quando vengono raggruppati in un RAID. Tratteremo l’argomento arrivando a definire le prestazioni del raid relativamente alle prestazioni del singolo disco e della sua numerosità. Ci sono altri parametri che influenzano la velocità (come per esempio la cache)  ma non sono così rilevanti in termini assoluti.

Per capire le prestazioni, osserviamo 2 misure : la velocità di lettura di dati da un raid e la velocità di scrittura dei dati in un raid.  Per arrivare a definire queste due variabili, in questo articolo indicheremo con “N” il numero dei dischi che compongono il raid e con “V” la velocità del singolo disco che compone il raid.

Le prestazioni di archiviazione vengono misurate in IOPS (operazioni di input/ouput per secondo). In effetti esistono due velocità diverse: parleremo di RIOPS per indicare le operazioni di lettura e WIOPS per indicare le operazioni di scrittura.

Quindi la variabile V che indica la velocità del singolo disco è in realtà la IOPS.

RAID 0

Il RAID 0 è il più semplice di tutti. Un certo numero di dischi vengono messi insieme e visti dal sistema come un unico grande disco. Non esiste ridondanza dei dati, quindi la rottura di uno solo dei nostri dischi comporta la perdita di tutti i dati.

Il RAID 0 è il più veloce di tutti.

velocità RAID 0 = (N dischi) * (V singolo disco)

In generale il RAID-0 composto da 2 dischi  è sempre più veloce di un singolo disco perché è possibile eseguire simultaneamente le operazioni di lettura e scrittura. Il RAID 0 divide i dati in blocchi e li distribuisce su più unità. Se per esempio devo leggere i numeri da 1 a 100 memorizzati dentro il mio raid, il controller del raid potrà leggere contemporaneamente i numeri da 1 a 50 e da 51 a 101 perché si trovano in blocchi diversi : quindi il tempo di lettura dei numeri a 1 a 100 sarà dimezzato.

RAID 1

Nel RAID 1 dati vengono copiati 2 volte. Ne consegue che la capacità totale dell’array ne risulterà dimezzata.

Il RAID 1 è utile per operazioni di lettura molto veloci, tuttavia è più lento durante la scrittura sui dischi, poiché i dati devono essere scritti due volte. RAID 1 richiede almeno due dischi fisici e può essere eseguito con un numero “pari” di dischi.

Dovendo scrivere 2 volte il dato la velocità si dimezza :

velocità SCRITTURA RAID 1 = (N dischi) * (V singolo disco) / 2

La velocità di lettura è uguale a quella del RAID 0 a parità di numero di dischi ma è doppia a parità di capacità totale : perché per avere la stessa capacità raddoppiamo ii dischi. Spiegando il raid 10  entreremo nel dettaglio dei calcoli perchè le velocità sono le stesse.

RAID 10

In pratica un RAID 10 è un raid 0 ma con i dati scritti 2 volte. E’ l’insieme di un raid 1 e di un raid 0 (1 + 0 = 10). Dato che lo stesso dato viene scritto 2 volte nel raid, la capacità totale del RAID risulta dimezzata.

Per fare un raid 10 occorrono minimo 4 dischi e numero di dischi pari.

 

Dovendo scrivere 2 volte il dato la velocità si dimezza :

velocità SCRITTURA RAID 10 = (N dischi) * (V singolo disco) / 2

In realtà a parità di capacità totale del raid e non del numero di dischi, la velocità di scrittura di un raid 0 coincide con quella del raid 10. Supponiamo di avere un raid 0 con 2 hard disk da 4TB, totale 8TB. Per avere la stessa capacità con un RAID 10, utilizzando lo stesso tipo di hard disk, dobbiamo comprare 4 dischi da 4TB. totale sempre 8TB (perché la capacità si dimezza).

velocità SCRITTURA RAID 0 = (N dischi) * (V singolo disco) = 2 * V

velocità SCRITTURA RAID 10 = (N dischi) * (V singolo disco) = 4 * V / 2 = 2 * V

Inoltre a parità di capacità, e quindi aumentando il numero di dischi per ottenere il raid 10, la velocità di lettura del raid 10 raddoppia rispetto al raid 0 per quanto detto sopra descrivendo la lettura dei dati in un raid 0

velocità LETTURA RAID 0 = (N dischi) * (V singolo disco) = 2 * V

velocità LETTURA RAID 10 = (N dischi) * (V singolo disco) = 4 * V

RAID 5

Per descrivere il RAID 5, introduciamo il concetto di parità. La parità è un valore di controllo dei dati : quando viene scritto un dato viene scritto anche il dato di parità che per esempio contiene il numero totale dei bit dei dati appena scritti. Questo è un dato di controllo : quando leggiamo i dati appena scritti se il numero totale dei bit non coincide con quelli di parità memorizzati prima, significa che il raid è in errore.

Per creare un raid 5 servono almeno 3 dischi. Uno dei dischi si può rompere ed il sistema continuerà a lavorare. Dovete però cambiare il disco rotto perchè, al successivo guasto di un altro disco, perderete tutti i dati.

La capacità totale di un array in RAID 5 e data dalla capacita totale dei dischi meno 1. Quindi nel RAID 5 si perde solo un disco. Per questo motivo è sicuramente il raid chc impiega meglio le capacità (e quindi il costo) dei dischi. Di contro è un raid molto lento.

Quando viene scritto un dato su un raid 5 il controller deve leggere la parità, verificarla e riscriverla. Ciò significa che un array RAID 5 dovrà leggere i dati, leggere la parità, scrivere i dati e infine scrivere la parità : quattro operazioni per ciascuna operazione effettiva di scrittura. La velocità di scrittura diminuisce, rispetto alla condizione normale di un fattore 4.

velocità SCRITTURA RAID 5 = (N dischi) * (V singolo disco) / 4

In un raid 5 uno dei dischi dell’array viene perso. Semplifichiamo dicendo che viene usato proprio per scrivere i dati di parità. Se quindi vogliamo ottenere un disco da 8 TB in raid 5, dobbiamo acquistare 3 dischi da 4TB.

velocità SCRITTURA RAID 5 = (N dischi) * (V singolo disco) = 3 * V / 4

velocità LETTURA RAID 5 = (N dischi) * (V singolo disco) = 3 * V

RAID 6

RAID 6 su RAID 5 con un ulteriore secondo livello di parità, quindi è più sicuro di RAID 5. Ogni operazione di scrittura richiede ai dischi di leggere i dati, leggere la prima parità, leggere la seconda parità, scrivere i dati, scrivere la prima parità e infine scrivere la seconda parità. La velocità di scrittura diminuisce, rispetto alla condizione normale di un fattore 6.

velocità SCRITTURA RAID 6 = (N dischi) * (V singolo disco) / 6

Quando si fa un raid un raid 6 si perdono ben 2 dischi. Se quindi vogliamo ottenere un disco da 8 TB in raid 6, dobbiamo acquistare 4 dischi da 4TB. (nb in questo esempio raid 10 e raid 6 richiedono  entrambi 4 dischi ma nessuno, in queste condizioni, farebbe il raid 6 rispetto al raid 10 perché questo è più veloce)

velocità SCRITTURA RAID 6 = (N dischi) * (V singolo disco) = 4 * V / 6 = 2 * V / 3   (2 terzi più lenta del 10)

velocità LETTURA RAID 6 = (N dischi) * (V singolo disco) = 4 * V

IOPS E INTERFACCE

Dispositivo IOPS Interfaccia
Unità RPM 5400 75-100 IOPS SATA III
Unità RPM 7200 125-150 IOPS SATA III
Unità RPM 10.000 140 IOPS SAS
Unità RPM 15.000 175-210 IOPS SAS
Unità SSD 40K-100K+ IOPS* SATA III

Documentazione