Pagina 1 di 1

Tecniche di archiviazione dati: RAID

Inviato: 21/05/2024, 22:30
da FrancyDotNet
I sistemi RAID (Redundant Array of Independent Disks) rappresentano un approccio avanzato alla gestione dell'archiviazione dei dati, progettato per migliorare la sicurezza, le prestazioni e/o l'affidabilità dei sistemi di memorizzazione.

Nel panorama delle tecnologie di storage, i sistemi RAID offrono una vasta gamma di configurazioni e livelli, ciascuno con caratteristiche uniche adatte a differenti esigenze di utilizzo. L'obiettivo principale dei sistemi RAID è quello di garantire l'integrità dei dati attraverso tecniche di ridondanza, distribuzione e protezione.

La scelta di un particolare livello RAID dipende da diversi fattori, tra cui la crittografia dei dati, le prestazioni richieste, il costo, la capacità di ridondanza e la tolleranza ai guasti.

I sistemi RAID sono ampiamente utilizzati in una varietà di contesti, tra cui server aziendali, sistemi di archiviazione di grandi dimensioni, applicazioni di videosorveglianza, server di database critici e sistemi di elaborazione dati ad alte prestazioni.

A breve, esploreremo i principali livelli RAID, dalla configurazione di base RAID 0 fino alle soluzioni più avanzate come RAID 6. Ogni livello offre un approccio unico alla protezione dei dati e alle prestazioni, offrendo agli utenti una gamma diversificata di opzioni per soddisfare le loro esigenze di storage. Buona lettura!



RAID 0 - striping
Il sistema RAID 0 divide i dati equamente tra due o più dischi, tipicamente tramite sezionamento (striping), ma senza mantenere alcuna informazione di parità o ridondanza che aumenti l'affidabilità.
Visto che il file system utilizza tutti i dischi, il guasto di un disco rende inaccessibile una porzione così grande del file system da impedirne spesso ogni funzionamento. Sebbene i dati possano essere recuperati, risultano spesso incompleti e danneggiati. RAID 0 è molto utile per creare server che necessitino di grandi spazi di stoccaggio, per i quali la ridondanza è irrilevante o gestita altrimenti (cfr. RAID 1+0 e RAID 0+1).
  • Schema:
Immagine
  • Numero minimo di dischi: 2
  • Numero massimo dischi difettosi: 0
  • Capacità: 𝐶1+𝐶2+..+𝐶n
  • Vantaggi: Basso costo di implementazione e alte prestazioni in scrittura e lettura. Ad esempio RAID 0 è spesso utilizzato in applicazioni dove la velocità è cruciale, come l'editing video e le applicazioni che richiedono un elevato throughput
  • Svantaggi: Impossibilità di utilizzare dischi hot-spare e affidabilità drasticamente ridotta. Inoltre la mancanza di ridondanza significa che RAID 0 non è adatto per dati critici senza un backup esterno



RAID 1 - replicazione / mirroring
Il sistema RAID 1 mantiene una copia esatta di tutti i dati su almeno due dischi. È utile quando la ridondanza sia ritenuta un'esigenza più importante rispetto allo sfruttamento ottimale della capacità di stoccaggio dei dischi. L'insieme, infatti, limita il suo volume a quello del disco di taglia inferiore. D'altro canto, visto che un sistema con "𝑛" dischi è in grado di resistere alla rottura di 𝑛 - ( 𝑛 - 1 ) componenti, l'affidabilità aumenta linearmente al numero di dischi presenti.
  • Schema:
Immagine
  • Numero minimo di dischi: 2
  • Numero massimo dischi difettosi: N/2
  • Capacità: 𝐶 (capacità del disco più piccolo)
  • Vantaggi: Alta affidabilità grazie alla resistenza ai guasti che aumenta linearmente con il numero di copie; velocità di lettura (in certe implementazioni e sotto certe condizioni); recupero dati più rapido in caso di guasto di un disco, dato che i dati sono immediatamente disponibili sull'altro disco.
  • Svantaggi: Bassa scalabilità; costi aumentati linearmente con il numero di copie (dovuto al fatto che ogni disco aggiuntivo raddoppia la quantità di hardware necessaria); velocità di scrittura ridotta a quella del disco più lento dell'insieme.



RAID 2 - sezionamento a livello di bit
Un sistema RAID 2 divide i dati al livello di bit (invece che di blocco) e utilizza un codice di Hamming che permette di correggere errori su singoli bit e di rilevare errori doppi. Questi dischi sono sincronizzati dal controllore, in modo tale che la testina di ciascun disco sia nella stessa posizione in ogni disco. Questo sistema si rivela molto efficiente in ambienti in cui si verificano numerosi errori di lettura o scrittura. Tuttavia, in ambienti più moderni, data l'elevata affidabilità dei dischi, il RAID 2 non viene più utilizzato e oggi è considerato obsoleto.
  • Schema:
Immagine
  • Numero minimo di dischi: 7
  • Numero massimo dischi difettosi: 0
  • Capacità: 𝐶×7 (dove 𝐶 è la capacità del disco più piccolo)
  • Vantaggi: Elevata capacità di correzione degli errori grazie all'utilizzo del codice di Hamming; Buona performance in ambienti con frequenti errori di lettura/scrittura.
  • Svantaggi: Inefficienza in termini di utilizzo dello spazio rispetto ad altri livelli RAID, dato che richiede un elevato numero di dischi; Costi elevati dovuti al bisogno di dischi sincronizzati e di un controller specializzato; Obsolescenza, poiché le moderne tecnologie di dischi offrono già una bassa probabilità di errori e una maggiore efficienza.



RAID 3 - sezionamento a livello di byte con disco di parità
Un sistema RAID 3 usa una divisione a livello di byte con un disco dedicato alla parità. Il RAID 3 è estremamente raro nella pratica. Uno degli effetti collaterali del RAID 3 è che non può eseguire richieste multiple simultaneamente. Questo perché ogni singolo blocco di dati è diffuso tra tutti i dischi del RAID e risiede nella stessa posizione su ciascun disco. Quindi, ogni operazione di I/O richiede l'utilizzo di tutti i dischi.

Nell'esempio riportato qua sotto, una richiesta per il blocco A richiederà di cercare attraverso tutti i dischi. Una richiesta simultanea per il blocco B rimarrà invece in attesa.
  • Schema:
Immagine
  • Numero minimo di dischi: 3
  • Numero massimo dischi difettosi: 1
  • Capacità: 𝐶×(𝑁-1) (dove 𝐶 è la capacità del disco più piccolo e 𝑁 è il numero totale di dischi)
  • Vantaggi: Sicurezza ed efficienza contro la perdita di dati; La parità permette di recuperare i dati in caso di guasto di un singolo disco; La ricostruzione dei dati persi può essere effettuata rapidamente grazie al disco di parità dedicato.
  • Svantaggi: Non è possibile eseguire richieste multiple simultaneamente, il che può ridurre le prestazioni in ambienti con elevati carichi di lavoro; Se il disco di parità fallisce, l'intero sistema RAID è vulnerabile fino a quando il disco non viene sostituito e la parità ricostruita; Le operazioni di scrittura possono essere lente poiché il disco di parità deve essere aggiornato ogni volta che i dati vengono scritti.



RAID 4 - sezionamento a livello di blocco con disco di parità
Il sistema RAID 4 usa una divisione dei dati a livello di blocchi e mantiene su uno dei dischi i valori di parità, in maniera molto simile al RAID 3, dove la suddivisione è a livello di byte. Questo permette ad ogni disco appartenente al sistema di operare in maniera indipendente quando è richiesto un singolo blocco.

Se il controllore del disco lo permette, un sistema RAID 4 può servire diverse richieste di lettura contemporaneamente. In lettura, la capacità di trasferimento è paragonabile al RAID 0, ma la scrittura è penalizzata perché la scrittura di ogni blocco comporta anche la lettura del valore di parità corrispondente e il suo aggiornamento.

Nell'esempio accanto, una richiesta al blocco A1 potrebbe essere evasa dal disco 1. Una richiesta simultanea al blocco B1 dovrebbe aspettare, ma una richiesta al blocco B2 potrebbe essere servita allo stesso momento.
  • Schema:
Immagine
  • Numero minimo di dischi: 3
  • Numero massimo dischi difettosi: 1
  • Capacità: 𝐶×(𝑁-1) (dove 𝐶 è la capacità del disco più piccolo e 𝑁 è il numero totale di dischi)
  • Vantaggi: Grazie al disco di parità, il sistema può tollerare il guasto di un disco senza perdita di dati; Il parallelismo nella struttura permette di servire rapidamente le richieste di lettura (simile a RAID 0); Possibilità di inserire dischi hot-spare per un recupero rapido in caso di guasto di un disco.
  • Svantaggi: Il disco di parità può diventare un collo di bottiglia, limitando le prestazioni complessive del sistema; La modifica e il calcolo della parità comportano una penalizzazione delle operazioni di scrittura, richiedendo fino a 4 accessi al disco per ogni operazione I/O (lettura dei dati vecchi, lettura della parità vecchia, scrittura dei dati nuovi, scrittura della parità aggiornata).



RAID 5 - sezionamento a livello di blocco con parità distribuita
Un sistema RAID 5 utilizza una suddivisione dei dati a livello di blocco, distribuendo i dati di parità uniformemente tra tutti i dischi che lo compongono. È una delle implementazioni più popolari, sia in software che in hardware, e praticamente ogni dispositivo di storage integrato dispone del RAID 5 tra le sue opzioni.
  • Schema:
Immagine
  • Numero minimo di dischi: 3
  • Numero massimo dischi difettosi: 1
  • Capacità: 𝐶×(𝑁-1) (dove 𝐶 è la capacità del disco più piccolo e 𝑁 è il numero totale di dischi)
  • Vantaggi: Non esiste il problema del disco collo di bottiglia come nel RAID 4, poiché la parità è distribuita tra tutti i dischi; Le letture e le scritture sono più veloci rispetto al RAID 4, poiché tutti i dischi possono partecipare alle operazioni di I/O. Questo rende RAID 5 particolarmente efficiente in lettura; Offre un buon equilibrio tra capacità di storage, prestazioni e tolleranza ai guasti.
  • Svantaggi: Le operazioni di scrittura sono penalizzate dalla necessità di calcolare e aggiornare la parità, richiedendo fino a 4 accessi al disco per ogni operazione di I/O (lettura dei dati vecchi, lettura della parità vecchia, scrittura dei dati nuovi, scrittura della parità aggiornata). Tuttavia, è comunque più veloce di un singolo disco; Sebbene le scritture siano più lente rispetto alle letture, la velocità aumenta all'aumentare del numero di dischi. Su un controller P410, un RAID 5 composto da 5 dischi da 10.000 RPM offre una lettura/scrittura sequenziale paragonabile a quella di un SSD; con 10 dischi, la velocità è più del doppio.



RAID 6 - sezionamento a livello di blocco con doppia parità distribuita
Un sistema RAID 6 utilizza una divisione a livello di blocchi con i dati di parità distribuiti due volte tra tutti i dischi. Non era presente tra i livelli RAID originari. Nel RAID 6, il blocco di parità viene generato e distribuito tra due stripe di parità, su due dischi separati, utilizzando differenti stripe di parità nelle due direzioni.

Il RAID 6 è più ridondante del RAID 5, ma è molto inefficiente quando viene usato con un numero limitato di dischi. La doppia parità fornisce un'implementazione ancora più ridondante.
  • Schema:
Immagine
  • Numero minimo di dischi: 4
  • Numero massimo dischi difettosi: 2
  • Capacità: 𝐶×(𝑁−2) (dove 𝐶 è la capacità del disco più piccolo e 𝑁 è il numero totale di dischi)
  • Vantaggi: Altissima fault tolerance, grazie alla doppia ridondanza, il sistema può tollerare il guasto di due dischi contemporaneamente; Ideale per ambienti mission-critical dove la perdita di dati non è un'opzione.
  • Svantaggi: Le operazioni di scrittura sono penalizzate dalla necessità di calcolare e aggiornare due blocchi di parità, richiedendo fino a 6 accessi al disco per ogni operazione di I/O (lettura dei dati vecchi, lettura delle parità vecchie, scrittura dei dati nuovi, scrittura delle parità aggiornate);Necessita di almeno N+2 dischi, aumentando significativamente il costo economico della struttura a causa della ridondanza e della complessità del controller; Le scritture sui diversi dispositivi non sono atomiche nell'insieme; la mancanza di alimentazione durante una scrittura può portare alla perdita di dati. Ad esempio, in un sistema con 4 dischi in RAID 6, se si volesse modificare un blocco, si dovrebbero fare le seguenti operazioni: lettura del blocco n-1, lettura delle parità, calcolo della nuova parità, scrittura del blocco n e scrittura delle parità. Se si perde l'alimentazione durante le ultime operazioni, i dati possono risultare danneggiati.

Re: Tecniche di archiviazione dati: RAID

Inviato: 21/05/2024, 22:33
da FrancyDotNet
Dopo aver esplorato le configurazioni RAID di base, come RAID 0, RAID 1, RAID 5, e RAID 6, è il momento di approfondire le configurazioni RAID avanzate, note come nested RAID o RAID ibridi. Queste configurazioni combinano due diversi livelli di RAID per ottenere un mix ottimale di prestazioni, ridondanza e capacità di archiviazione. I nested RAID sono particolarmente utili in scenari in cui la semplice ridondanza o il miglioramento delle prestazioni forniti dai RAID di base non sono sufficienti.

Cos'è un Nested RAID?

I sistemi RAID nidificati combinano due livelli di RAID per creare una struttura più robusta. Ogni livello del RAID nidificato viene applicato a un diverso insieme di dischi, creando così un sistema che eredita i vantaggi di entrambi i livelli RAID utilizzati. I tipi più comuni di RAID nidificati sono RAID 10, RAID 50 e RAID 60. Vediamo ciascuno di questi in dettaglio.



RAID 10 (1+0) - Mirroring e Striping
Il RAID 10 combina il mirroring (RAID 1) e lo striping (RAID 0) per fornire sia alta velocità che elevata tolleranza ai guasti. In un sistema RAID 10, i dati sono prima duplicati su due dischi (mirroring) per garantire la ridondanza, e poi i blocchi di dati sono distribuiti su più dischi (striping) per migliorare le prestazioni. Questo sistema richiede almeno quattro dischi.
  • Schema:
Immagine
  • Numero minimo di dischi: ???
  • Numero massimo dischi difettosi: ???
  • Capacità: ???
  • Vantaggi: Grazie allo striping, le operazioni di lettura e scrittura sono molto veloci; Grazie al mirroring, il sistema può resistere al guasto di uno o più dischi senza perdita di dati.
  • Svantaggi: Richiede il doppio dello spazio di archiviazione rispetto ai dati effettivi, a causa del mirroring.



RAID 50 (5+0) - Striping e Parità Distribuita
Il RAID 50 combina il RAID 5 e il RAID 0 per offrire un buon equilibrio tra tolleranza ai guasti e prestazioni. In un sistema RAID 50, i dati sono suddivisi in blocchi e distribuiti su più set RAID 5, che forniscono ridondanza attraverso la parità distribuita, e poi i set RAID 5 sono ulteriormente suddivisi (striped) per migliorare le prestazioni.
  • Schema:
Immagine
  • Numero minimo di dischi: ???
  • Numero massimo dischi difettosi: ???
  • Capacità: ???
  • Vantaggi: Migliora le velocità di lettura e scrittura rispetto a un singolo set RAID 5; Può resistere al guasto di un disco per ogni set RAID 5.
  • Svantaggi: La configurazione è più complessa rispetto a un singolo RAID 5; Richiede un numero significativo di dischi per ottenere benefici sostanziali.



RAID 60 (6+0) - Striping e Doppia Parità Distribuita
Il RAID 60 combina il RAID 6 e il RAID 0, offrendo la massima tolleranza ai guasti e buone prestazioni. In un sistema RAID 60, i dati sono suddivisi in blocchi e distribuiti su più set RAID 6, che forniscono doppia parità per una maggiore ridondanza, e poi i set RAID 6 sono ulteriormente suddivisi (striped) per migliorare le prestazioni.
  • Schema:
Immagine
  • Numero minimo di dischi: ???
  • Numero massimo dischi difettosi: ???
  • Capacità: ???
  • Vantaggi: Può resistere al guasto di due dischi per ogni set RAID 6; Migliora le velocità di lettura e scrittura rispetto a un singolo set RAID 6.
  • Svantaggi: Richiede un numero ancora maggiore di dischi e ha costi più alti dovuti alla complessità del controller; La gestione della doppia parità può rallentare le operazioni di scrittura.

Re: Tecniche di archiviazione dati: RAID

Inviato: 04/06/2024, 22:36
da FrancyDotNet
Il sistema RAID (Redundant Array of Independent Disks) è una tecnologia di archiviazione che combina più dischi rigidi in un'unica unità logica per migliorare le prestazioni, la ridondanza dei dati o entrambe. A seconda della configurazione RAID scelta (RAID 0, 1, 5, 6, 10, ecc.), le sue caratteristiche possono essere particolarmente adatte a diversi scopi. Ecco una panoramica su come RAID può essere utile per ciascuna delle tue applicazioni menzionate:


BACKUP:
RAID non è propriamente una soluzione di backup. Sebbene possa fornire ridondanza (ad esempio RAID 1, RAID 5, RAID 6), proteggendo i dati dalla perdita causata dal guasto di un disco, non protegge dai guasti del sistema, errori umani o attacchi ransomware. Per un backup, è più indicato avere copie multiple dei dati in diverse posizioni, preferibilmente anche offline o in cloud.


NAS (Network Attached Storage):
Un NAS con configurazione RAID è molto comune. RAID può migliorare l'affidabilità e la velocità di accesso ai dati. Configurazioni come RAID 1, RAID 5 o RAID 6 sono spesso utilizzate nei NAS per garantire la ridondanza dei dati e la tolleranza ai guasti, rendendo il NAS ideale per l'archiviazione e la condivisione di file in rete.


EDITING VIDEO E PRODUZIONE MULTIMEDIALE:
Le applicazioni di editing video e produzione multimediale richiedono accessi rapidi e affidabili ai dati. RAID 0 può essere utilizzato per massimizzare le prestazioni, mentre RAID 5 o RAID 10 può fornire un equilibrio tra velocità e sicurezza dei dati.


STREAMING MEDIA:
Un servizio di streaming media utilizza RAID 3 per garantire prestazioni elevate durante il trasferimento di grandi volumi di dati video. RAID 3 offre striping a livello di byte con un disco dedicato per la parità, assicurando una riproduzione continua e protezione dei dati in caso di guasto del disco.


VIDEOSORVEGLIANZA:
RAID può essere utile nei sistemi di videosorveglianza, dove l'affidabilità e la continuità del servizio sono cruciali. Configurazioni come RAID 5 o RAID 6 possono garantire che i dati video siano protetti anche in caso di guasto di uno o più dischi. La velocità di scrittura di RAID 0 può essere utile per sistemi di videosorveglianza ad alte prestazioni, ma senza alcuna ridondanza.


ARCHIVIAZIONE DI DATI SCIENTIFICI E DATA WAREHOUSING
Un'istituzione di ricerca scientifica utilizza RAID 4 per archiviare e analizzare grandi volumi di dati sperimentali. RAID 4 offre striping a livello di blocco con un disco dedicato per la parità, assicurando prestazioni elevate e protezione dei dati. Ciò consente ai ricercatori di accedere rapidamente alle informazioni necessarie per le analisi scientifiche e per le operazioni di data warehousing.


SERVER:
Per un file server, RAID è molto utile. Configurazioni come RAID 5, RAID 6 o RAID 10 possono fornire un buon equilibrio tra prestazioni e ridondanza, garantendo che i file siano accessibili rapidamente e che i dati siano protetti contro il guasto dei dischi.
  • I database server richiedono alta disponibilità e prestazioni elevate. Configurazioni come RAID 10 sono spesso utilizzate per fornire velocità e ridondanza, garantendo che i dati siano disponibili rapidamente e siano protetti contro i guasti dei dischi.
  • I server web e di applicazioni richiedono spesso accesso rapido ai dati e alta disponibilità. Configurazioni RAID come RAID 5 o RAID 10 possono assicurare che i siti web e le applicazioni siano sempre online e che i dati siano protetti contro i guasti dei dischi.
  • I server di posta elettronica beneficiano di configurazioni come RAID 5 o RAID 10 per assicurare che i messaggi di posta elettronica siano accessibili in modo continuo e garantire che il sistema sia resistente ai guasti dei dischi e che le prestazioni siano sufficienti per gestire un elevato volume di traffico di posta.
  • In ambienti virtualizzati, dove più macchine virtuali (VM) condividono le risorse del disco, configurazioni RAID come RAID 10 sono spesso utilizzate per fornire sia prestazioni che ridondanza. Questo è particolarmente importante per garantire che le VM siano sempre disponibili e operative.