RAID

Home Page Linux Tecnologia

La tecnologia RAID fu inventata alla fine degli anni settanta, come filosofia con cui approcciare i problemi di affidabilità dei sistemi di storage dell’epoca.
Nella metà degli anni ottanta, fu data una definizione standard al 3edundant Array of Inexpensive Disk, RAID appunto, e ne furono definite delle configurazioni tipo chiamate livelli.
Di base un sistema RAID, aumentava la sua affidabilità sfuttando il concetto di ridondanza dei dati. Cosa ben diversa dai backup, di cui il RAID non è assolutamente un sostituto.
La convinzione era che un array di dischi economici, era molto più affidabile, di un unico disco costoso a parità di capacità di archiviazione. Questa convinzione era supportata dal fatto che all”epoca, il divario di prezzo tra dischi affidabili e dischi commerciali era enorme.
Oggi un sistema RAID viene implementato anche per avere storage prestanti oltre che affidabili. Anche perché mediamente il livello di affidabilità dei dischi rigidi e lo stesso.
Un sistema RAID può essere implementato sia con driver software, come ad esempio linux nel cui kernel implementa le funzionalità RAID in maniera nativa, sia con controller hardware più o meno avanzati.
Le configurazioni RAID si possono dividere un 4 categorie:

  • configurazioni per l’aumento delle prestazioni;
  • configurazioni per l’aumento dell’affidabilità con mirroring;
  • configurazioni per l’aumento dell’affidabilità con parità
  • configurazioni miste.

Nella categoria delle configurazioni per l’aumento delle prestazioni troviamo la configurazione 0. La configurazione RAID 0 distribuisce i dati su più dischi, senza preoccuparsi dell’affidabilità. Tranne che nei casi in cui servano veramente prestazioni elevate e sconsigliabile l’uso di questa configurazione perchè oltre a alzare la probabilità di guasto, la rottura di anche un solo disco rende inutilizzabile l’intero array.
Un sensibile aumento dell’affidabilità si ha con il RAID 2 che è in pratica un RAID 0, in cui i dati vengono divisi a livello di bit tra più dischi invece di dividerli a livello di blocchi (o stripe), come nel RAID 0, ad aggiunge un sistema di controllo e correzione di errore che permette di recuperare in alcuni casi l’informazione anche con un disco rotto.
Il RAID 1 invece e la più semplice configurazione con aumento di affidabilità da realizzare, e consiste nel tenere nello scrivere gli stessi dati su più dischi. In pratica si hanno due o più dischi che sono uno la copia speculare dell’altro. In questo modo fino a che rimane in vita almeno un disco dell’array, i dati sono fruibili. Inoltre in lettura, visto che i dati possono essere letti in parallelo su più dischi, è possibile avere un significativo aumento delle prestazioni. Il rovescio della medaglia è lo spazio di archiviazione che è pari alla dimensione del disco più piccolo che fà parte dell’array.
Dal RAID 3 in su abbiamo invece le configurazioni per l’aumento di affidabilità con l’uso della parità.
In pratica i dati vengono divisi in byte (RAID 3) o blocchi (RAID 4, 5 e 6) e ripartiti con su più dischi. Nel caso dei RAID 3 e 4, uno dei dischi è dedicato alla parità, mentre nel caso dei RAID 5 e 6 la parità e distribuita fra tutti i dischi.
Nella pratica i RAID 3 e 4 non vengono più utilizzati da tempo, a causa dei limiti di prestazione, che introducono le loro metodologie di funzionamento. Il RAID 5 invece è un buon compromesso di affidabilità e prestazioni. Lo spazio disponibile per i dati è pari ai 2/3 della dimensione dell’array e il funzionamento è garantito anche in caso di rottura di un disco. Il RAID 6 introduce la doppia ridondanza dei dati, riducendo a 3/5 lo spazio per i dati utente, ma garantendo il funzionamento dell’array anche in caso di cedimento di due dischi.
Infine abbiamo le configurazioni miste, per lo più configurazioni RAID 0+1 o molto più frequentemente 1+0 nei sistemi di storage per database ad alte prestazioni.
Qualunque che sia la configurazione, va progettata con attenzione e calata nella realtà del sistema che dovrà utilizzarlo.
Come già menzionato, nei sistemi con esigenze di prestazioni, come uno storage per DB, la scelta va su una configurazione RAID 1, dove la possibilità di letture parallele da più dischi consente un sensibile aumento dello spazio, mentre dove è necessario lo spazio di archiviazione e ci sono poche letture, come ad esempio su di un file server, i RAID 5 o 6 sono più indicati.
Molto dipende anche dal controller utilizzato. Un controller performante permette di compensare carenze di prestazioni del sottosistema disco. Infine magari è meglio avere configurazioni in RAID 5 con uno o più dischi in hot standby, pittosto che avere un sistema RAID 6 molto meno performante del RAID 5  a causa della doppia parità.

Scritto da

Share

Lascia un commento