Cerco di essere elementare:
RAID sta' per Redundand Array of Inexpensive Disks ossia Gruppo Ridondante di Dischi Economici.
(non esiste una traduzione esatta e che renda esattamente l'idea per il termine Array)
In pratica un controller RAID e' un controller per dischi rigidi che, adoperando normali dischi, consente di ottenere un incremento delle prestazioni e/o della capacita' e/o dell'affidabilita' dei dischi stessi.
Si parla di inexpensive disks perche' al momento dell'introduzione del RAID l'alternativa era l'impiego di particolari dischi appositamente progettati per garantire uno o piu' delle suddette migliorie rispetto ai normali dischi ma il cui costo era considerevolmente superiore a quello dei dischi standard.
Questa era la parte che si poteva semplificare.
Un controller RAID puo' operare in varie maniere e secondo come esso adopera i dischi puo' essere in grado di fornire uno o piu' dei risuiltati. Le varie configurazioni vengono solitamente definite Livelli del RAID, dei quali i piu' comuni sono il livello 0, il livello 1 ed il livello 5.
Il livello 0 (detto striping) e' l'unico che non migliora l'affidabilita': in esso piu' dischi vengono "affiancati" l'uno all'altro e le informazioni vengono ripartite tra i vari dischi.
All'esterno il controller mostra un singolo disco ma l'effetto complessivo e' una diminuzione del tempo necessario alla scrittura (se uso N dischi soltanto 1/N-esimo delle informazioni viene scritto su ogni disco e siccome la scrittura sui dischi puo' avvenire contemporaneamente posso giungere ad una velocita' N volte superiore) ed un aumento della capacita' complessiva (all'esterno vedo un unico disco di capacita' pari alla somma delle capacita' dei singoli dischi).
Non si ha miglioramento dell'affidabilita' perche' ogni singola informazione viene scritta su di un singolo disco e quindi se quel disco si rompe, l'informazione' e' irrimediabilmente persa.
Il livello 1 (detto mirroring) prevede che le informazioni vengano scritte contemporaneamente su due dischi (uno e' la copia speculare dell'altro da cui il nome mirroring).
Non si hanno miglioramenti nelle prestazioni in scrittura mentre alcuni controller rileggono parte delle informazioni da un disco e parte dall'altro raddoppiando cosi' la velocita' di lettura, la capacita' complessiva resta pari a quella del singolo disco (e quindi e' la meta' di quella totale) ma si ha un incremento dell'affidabilita': se un disco si rompe, il sistema continua a funzionare utilizzando soltanto l'altro e quando il disco danneggiato viene sostituito il suo contenuto viene ripristinato a partire da quello del disco funzionante ripristinando la tolleranza agli errori.
Nel livello 5 (detto striping con parita') si adoperano un minimo di tre dischi e le informazioni vengono spezzate in blocchi che vengono a loro volta spezzati su N-1 dischi e contemporaneamente adoperate per costruire un ulteriore blocco di dati, denominato di parita', da scrivere sull'N-esimo disco.
Ad ogni successiva scrittura l'impiego dei dischi viene ruotato (se usassimo 3 dischi, la prima scrittura avverrebbe sui dischi 1 e 2 ponendo i dati di parita' sul disco 3, la seconda avverrebbe sui dischi 2 e 3 con la parita' sul disco 1 ed infine la terza scrittura opererebbe sui dischi 3 ed 1 con la parita' sul disco 2) in modo che su ogni disco siano presenti sia blocchi di dati che blocchi di parita'.
In caso di avaria di uno dei dischi, le informazioni di parita' consentono di ricostruire la parte di dati che era stata scritta sul disco danneggiato garantendo cosi' tolleranza agli errori.
In condizioni di funzionamento normale, la scrittura e la lettura possono essere fino ad N-1 volte piu' veloci rispetto a quelle ottenibili sul singolo disco (in scrittura, in realta', un po' di tempo viene perso per il calcolo del blocco di parita') mentre in caso di avaria di un disco le performance calano notevolmente a causa della necessita' di ricostruire i dati perduti.
Una volta sostituito il disco in avaria, e' possibile ripristinarne il contenuto a partire dal contenuto degli altri dischi e tornare quindi ad un sistema ad alta affidabilita'.
Ciao, Pino