Considerazioni per la scelta del RAID corretto

Quando ci si appresta a configurare un server fisico occorre sempre prestare attenzione a come si configurerà il RAID in base al ruolo e/o ai servizi che il sistema andrà ad erogare.

La scelta del RAID (acronimo di Redundant of Inexpensive Disks o Redundant Array of Independent Disks) sarà di fatto il risultato del connubio tra le performance in lettura e/o scrittura, il livello di ridondanza e la dimensione dello spazio di archiviazione.

Quando la scelta tra privilegiare le performance o la dimensione dello spazio di archiviazione la mia opinione è quella di privilegiare le performance se lo spazio di archiviazione che ne consegue è comunque sufficiente per erogare il ruolo e/o i servizi per un certo periodo. Infatti la tendenza del prezzo dello storage nell’ultimo periodo è al ribasso ed è relativamente semplice aumentare lo spazio di archiviazione successivamente. Viceversa modificare successivamente la scelta del RAID per ottenere performance migliori risulta oneroso dal punto di vista operativo e non sempre fattibile. Inoltre occorre considerare che col passare del tempo i requisiti di performance in generale tendono ad aumentare a causa degli aggiornamenti software che offrono via via maggiori funzionalità.

Per scegliere il RAID corretto occorre analizzare quali sono le performance, il livello di ridondanza e la capacità di archiviazione di ciascun tipologia di array. A tal proposito ho trovato particolarmente interessati le considerazioni riportare nel seguente RAID Performance Considerations basate sul confronto tra livelli di RAID eseguiti su 12 dischi generici da 10K da 125 IOPs ipotizzando di non avere cache sul controller RAID e sui dischi e che le performace del controller non limitino le performance risultanti dell’array di dischi.

Nella seguente tabella vengono riportati i livelli di ridondanza di ciascun RAID espressi in numero di dischi:

image

Nella seguente tabella vengono riportate le capacità e le performance di lettura e scrittura di ciascun RAID espresse in numero di dischi:

:

Nella seguente tabella vengono riportate le performance di lettura e scrittura di ciascun RAID espresse in percentuale del numero di dischi:

Per fare i calcoli delle performance minime e massime che si possono ottenere conviene utilizzare il dato Sustained tranferate del disco in modo da avere una previsione conservativa delle prestazioni in situazioni di massimo carico, di seguito alcuni dati di esempio di tre hard disk:

image

Quindi ad esempio un con RAID60 di 12 HD Ultrastar HUS726060AL5214 in condizioni di elevato utilizzo (per esempio scenari di videosorveglianza) le performance di scrittura possono variare da 227 *(12/6) MB/s a 227*(12-4) MB/s ovvero da 454 MB/s a 1816 MB/s. Mentre se si utilizza un RAID10 le performance si scrittura mediamente sono di 227*(12/2) MB/s ovvero 1362 MB/s.

La prima cosa che salta all’occhio è che il RAID10 offre performance molto più stabili rispetto ai RAID5/6/50/60 in cui le performance di lettura e scrittura variano all’interno di un range.

Per ridurre il Fault Tollerance i RAID 50 e RAID 60 con più Span sono da preferire a RAID5 e RAID6 con molti dischi.

Particolare attenzione va anche prestata al parametro Read Error rate per Bits read che diminuisce all’aumentare della dimensione del disco e che comporta il fatto che statisticamente alcune tipologie di RAID potrebbero non essere in grado di eseguire la rebuild con dischi oltre una certa dimensione a causa della certezza statistica del verificarsi di un errore di lettura durante il processo.

A riguardo Robin Harris di Storage Bits nel 2007 nell’articolo Why RAID 5 stops working in 2009 sconsigliava l’utilizzo del RAID 5 con dischi da 2TB che sarebbero entrati in commercio nel 2009, in realtà poi la problematica è stata contenuta dal fatto che si è passati da un Read error rate di 1 per 10^14 del 2007 a 1 per 10^15 nei giorni nostri riducendo la probabilità di fallimento del processo di rebuild (a riguardo veda l’articolo di Robin Harris scritto poi nel 2013 Has RAID5 stopped working?).

Sempre per lo stesso motivo ci si sta avvicinando al verificarsi di questa problematica anche per il RAID6 come scrive sempre Robin Harris nell’articolo Why RAID 6 stops working in 2019.

Oltre alle considerazioni di  Robin Harris, anche DELL nel documento Dell PS Series Storage: Choosing a Member RAID Policy riporta le seguenti raccomandazioni:

  • Il RAID5 è di fatto sconsigliato e andrebbe di fatto utilizzato il RAID50
  • Il RAID50 è sconsigliato con dischi da 1TB o di dimensioni maggiori

“RAID 50 is not preferred for arrays with 1 TB or larger SATA or NL-SAS disks. This change is the result of the growing Class-2 HDD capacities and the degree of data protection that different RAID policies offer. RAID 6 and RAID 10 offer significantly higher levels of resiliency with very high capacity disks”

“RAID 6 is the Dell recommendation for PS Series arrays populated with SATA or NL-SAS disks 1 TB or larger. RAID 6 minimizes the risk of data loss during a RAID reconstruction thereby maximizing protection of the RAID set. Therefore, this recommendation is strongly encouraged for all customers when choosing a RAID policy for their arrays”

Sempre nel documento Dell PS Series Storage: Choosing a Member RAID Policy viene riportata una comparazione tra le tipologie di RAID e le modalità di accesso ai dati (lettura Random/Sequenziale e scrittura Random/Sequenziale) per i controller della serie PS:

image

“PS Series storage had considerable variation in performance amongst the RAID levels for random write I/O, as compared to the other three corners. Generally speaking, RAID 10 is very effective with applications that display small, random, write-intensive I/O, whereas RAID 6 pays a slight performance penalty for writing out the two parity data to two different disks.”

Inoltre dal momento che il RID viene implementato per consentire al sistema di funzionare anche quanto uno o più dischi cessano di funzionare è necessario valutare anche le performance quando il RAID funziona in modalità degradata a cusa della rottura di un disco e quando viene eseguita la rebuid.

Di seguito le considerazioni di DELL contenute nel documento Dell PS Series Storage: Choosing a Member RAID Policy per la modalità Degraded:

When a disk in a RAID set fails and there is no spare disk to replace it, the set is still functional, but degraded. Another disk failure (except in RAID 6) could result in a complete loss of data in the set.

  • With RAID 6, there is moderate impact on read and write performance on a heavily loaded system. The impact difference is negligible compared to RAID 5 or 50, even with two parity calculations to reconstruct the data. However, RAID 6 can survive the simultaneous failure of any two disks in a set.
  • With RAID 10, there is only minimal impact on read performance in the RAID 1 mirror set that has experienced the failure. There is negligible impact on the overall read performance.
  • With RAID 5/RAID 50, there is moderate impact on read performance and random write performance, due to the parity reconstruction overhead.

Di seguito le considerazioni di DELL contenute nel documento Dell PS Series Storage: Choosing a Member RAID Policy riguardo al funzionamento durante il rebuild:

When a disk in a RAID set fails and a spare disk is available, the amount of time needed to reconstruct the data from parity information must be considered in the context of both heavy and light workloads.

  • With RAID 6, data reconstruction is equal to RAID 5 or RAID 50 with a single disk failure. With a double disk failure, RAID 6 can involve slightly more overhead than a RAID 5 or RAID 50 because two parity calculations must be performed. This slight difference in overhead is outweighed by the additional level of protection RAID 6 offers. RAID 6 will continue to protect the RAID set should one occur whereas other RAID types will not.
  • With RAID 10, data reconstruction involves only two disks (one active and one spare) out of the total number of disks in the array, so the overall performance impact is minimal.
  • With RAID 5 and RAID 50, data reconstruction involves multiple disks, so the overall performance impact is significantly higher than other RAID types. For example, reconstruction in a six-disk RAID set involves six disks (five active and one spare). It is important to note that reconstruction time is directly impacted by the size of the disks.

Conclusioni

Da mio punto di vista se possibile la scelta migliore è il RAID10 se la quantità di spazio è sufficiente in quanto questa tipologia si RAID ha una serie di vantaggi:

  • Le performance in scrittura e lettura sono stabili ed elevate
  • Il Fault Tollerance è elevato è può arrivare fino alla metà dei dischi
  • Le performance in scrittura in presenza di accessi Random è molto superiore a quella delle altre tipologie di RAID

Il RAID10 risulta la scelta più adatta soprattutto in scenari in cui sono richieste elevate performance in scrittura e/o lettura con requisiti di Fault Tollerance elevati o in scenari in cui a priori non è possibile stabilire a priori le evoluzioni delle richieste di performance.

Nel caso questioni questioni legate alla capacità necessaria non sia possibile utilizzare un RAID10 è possibile valutare le altre tipologie di RAID scegliendo quello che fornisce la capacità necessaria e il miglior connubio tra Fault Tollerance e Performance in base alla tipologia di dati da memorizzare e trattare.