Come funziona la parità su un arrays RAID-5?

Sto cercando di build una bella matrix RAID per backup dedicati. Mi piacerebbe avere circa 2-4 TB di spazio disponibile, dato che ho questa ctriggers abitudine di digitalizzare tutto. Pertanto, ho bisogno di un sacco di stoccaggio e di ridondanza in caso di guasti dell'azionamento. Sarò anche sostanzialmente eseguire il backup di 2-3 computer /home cartelle utilizzando uno dei cloni "Time Machine" per Linux. Questo arrays sarà accessibile tramite la mia networking locale tramite SSH.

Ho difficoltà a capire come il RAID-5 raggiunga la parità e quante unità siano effettivamente necessarie. Si supponga che abbia bisogno di 5 unità, ma potrei sbagliarmi. La maggior parte degli schemi che ho visto ha solo confuso me. Sembra che questo sia il modo in cui funziona il RAID-5, per favore correggimi come sono sicura che non lo comprendo correttamente:

 /---STORAGE---\ /---PARITY----\ | DRIVE_1 | | DRIVE_4 | | DRIVE_2 |----| ... | | DRIVE_3 | | | \-------------/ \-------------/ 

Sembra che le unità 1-3 appaiano e funzionino come un'unità singola e massiccia ( capacity * number_of_drives ) e le unità di parità capacity * number_of_drives il backup di tali unità. Quello che mi sembra strano è che io vedo solitamente 3 unità di storage in un diagramma a solo 1 o 2 unità di parità. Dire che stiamo eseguendo 4 unità 1TB in un arrays RAID-5, 3 storage in esecuzione e 1 parità in esecuzione, abbiamo 3TB di archiviazione effettiva, ma abbiamo solo 1TB di parità !?

So che manco qualcosa qui, qualcuno mi aiuta? Inoltre, per il mio caso d'uso, che cosa sarebbe meglio, RAID-5 o RAID-6? La tolleranza agli errori è la massima priorità per me, a questo punto, poiché andrà in esecuzione su una networking solo per uso domestico, la velocità non è estremamente critica.

    Esegue solo XOR each bit corrispondente da each drive – Se si perde un'unità, è ansible ribuild i dati mancanti.

    Per background:

     AB (A XOR B) 0 0 0 1 1 0 0 1 1 1 0 1 

    Supponiamo che D sia l'XOR delle altre colonne, quindi fino a quando perdi solo un disco, puoi capire cosa hai perso.

     ABCD 1 0 0 1 0 1 0 1 1 1 0 0 

    Alcune volte il bit della striscia sarà distribuito attraverso le unità, ma il concetto è lo stesso.

    Quindi, per RAID-5, non import quante unità, è necessario solo un'unità per la parità uguale o maggiore dell'unità più piccola dell'arrays che si desidera RAID.

    RAID-5 per uso personale è probabilmente la cosa migliore perché la complessità computazionale è molto più bassa di RAID-6.

    RAID-6 è più complicato utilizzando Galois Fields per calcolare la parità. E questo può tassare i calcoli di parità. Tuttavia, è ansible perdere più unità, ma se ricostruisci la tua matrix non appena ottenete un singolo guasto, dovresti benissimo attaccare con RAID-5.

    Ecco cosa penso sia un diagramma migliore per mostrare come funziona la parità in RAID4 e RAID5

    RAID4

     Disk1 Disk2 Disk3 Disk4 ---------------------------- data1 data1 data1 parity1 data2 data2 data2 parity2 data3 data3 data3 parity3 data4 data4 data4 parity4 

    RAID5

     Disk1 Disk2 Disk3 Disk4 ---------------------------- parity1 data1 data1 data1 data2 parity2 data2 data2 data3 data3 parity3 data3 data4 data4 data4 parity4 

    Consiglierei di leggere questo articolo su Raid 5 e Raid 6

    http://en.wikipedia.org/wiki/Standard_RAID_levels#RAID_5_parity_handling

    RAID 5 scrive un block di parità in ciascuna striscia, quindi per la striscia A di un arrays di dischi 4 scrive il controllo di parità nel quarto disco, con i dati sui dischi 1, 2 e 3

    Per la striscia B, il block di parità è sul disco 3, con i dati sui dischi 1,2 e 4 .. ecc.

    Se dice che il disco 4 non riesce, i dati possono essere recuperati per la Striscia B, come si conosce i dati sul disco 1 e 2 e hanno il controllo di parità sul disco 3.

    Se la striscia B ha una parità di "2" e il disco 1 ha i dati di "1" e il disco 2 dati "0", il disco 4 deve avere dati pari a "1" in modo che il disco venga scritto con dati = "1"

    Il disco integer può essere ricreato in questo modo, RAID 6 estende questo fatto avendo 2 blocchi partito per striscia.

    Per quanto riguarda lo spazio per Raid 5, solo uno dei dischi vale la pena di spazio per la parità, in quanto scrive solo sul block di parità per striscia, mentre con Raid 6 si perde 2 dischi, ma può anche perdere due dischi piuttosto che quello che si può perdere Raid 5;)

    L'articolo di Wikipedia spiega meglio!

    RAID 5 utilizza un'unità per la parità, indipendentemente dal numero di unità dati presenti nell'arrays. Ciò significa che diventa più efficiente, in termini di spazio utilizzabile, più unità che vengono aggiunte.

    La parità è raggiunta eseguendo un'operazione XOR attraverso lo stesso block in ciascuna unità; il contenuto dell'azionamento di parità viene regolato in modo tale che tutti gli azionamenti XOR siano a zero . Ciò significa che RAID 5 è limitato dalla minore capacità di tutte le unità nell'arrays.

    RAID 6 è simile, tranne che due errori di unità simultanei possono essere tollerati. Questo è utile perché il process di " resilvering " un'arrays dopo che un singolo guasto dell'unità può essere abbastanza stressante per causare un secondo azionamento a fallire.

    Se la tolleranza agli errori è il tuo objective, RAID-6 fornirà abbastanza ridondanza per perdere due drive. In genere RAID-5 supporterà solo un errore di unità singola.