ZFS: Mirror vs. RAID-Z


14

Sto progettando di costruire un file server usando OpenSolaris e ZFS che forniranno due servizi primari: essere un obiettivo iSCSI per macchine virtuali XenServer ed essere un file server principale generale. L'hardware che sto guardando include 2x controller SATA a 4 porte, 2x unità di avvio piccole (una su ciascun controller) e 4x unità grandi per l'archiviazione. Ciò consente una porta libera per controller per l'aggiornamento dell'array lungo la strada.

Dove sono un po 'confuso è come configurare le unità di archiviazione. Per quanto riguarda le prestazioni, il mirroring sembra essere il re. Sto facendo fatica a vedere quale sarebbe il vantaggio di usare RAIDZ sul mirroring. Con questa configurazione posso vedere due opzioni: due pool con mirroring in uno stripe o RAIDZ2. Entrambi dovrebbero proteggere contro i guasti di 2 unità e / o un guasto del controller ... l'unico vantaggio di RAIDZ2 sarebbe che qualsiasi 2 unità potrebbe guastarsi. Lo spazio di archiviazione dovrebbe essere il 50% della capacità in entrambi i casi, ma il primo dovrebbe avere prestazioni molto migliori, giusto?

L'altra cosa su cui sto cercando di pensare è il vantaggio di array con mirroring con più di due dispositivi. Per l'integrità dei dati quale, se del caso, sarebbe il vantaggio di un RAIDZ su un mirror a tre vie? Dal momento che ZFS mantiene l'integrità dei file cosa porta RAIDZ in tabella ... I controlli di integrità di ZFS non annullano il valore della parità di RAIDZ?

Risposte:


14

La semplice risposta è che il mirroring di qualcosa non richiede quasi alcuna potenza di elaborazione, ma scrive sul disco una seconda volta. Per RAID-Z2, devi calcolare un blocco di parità completamente nuovo, che sebbene un piccolo CAN possa impantanare la CPU quando devi scrivere grandi quantità di dati rapidamente.

Mirroring è sempre la soluzione preferita per i dati ad alta velocità, se è solo bulk storage senza velocità di scrittura veloce, RAID-Z2 è una buona alternativa che non consentono alcun due unità a morire, come si allude a.

L'altro vantaggio è che i pool con mirroring possono essere espansi con più dispositivi con mirroring - mentre non è possibile espandere un RAID-Z2 - sebbene sia possibile aggiungere più pool di archiviazione RAID-Z2 al pool, saranno concatenati due pool di archiviazione RAID-Z2 (in effetto) anziché dividere equamente tra tutto lo spazio di archiviazione e striping.


Ma in ZFS cosa ti offre il blocco di parità di RAIDZ? Fornisce integrità dei dati aggiuntiva oltre a quella già fornita da ZFS? O è semplicemente necessario che muoiano due unità? Se questo è l'unico vantaggio rispetto allo scenario a tre, non c'è alcun vantaggio di RAIDZ su un mirror, giusto?
John Clayton,

1
RAID-Z consente la morte di un'unità: se si dispone di 10 unità, si ottengono 9 unità di dati. Con RAID-Z2 è possibile far morire due unità qualsiasi e disporre di 8 unità di dati. Con il mirror, puoi far morire metà delle unità, ma solo una per ogni set di due. Ho il sospetto che tu lo sappia già, ma è questo caso marginale di 4 unità che offre due soluzioni di guasto a due unità: RAID-Z2 e modalità Mirror. Non ci sono ulteriori quote di integrità dei dati che sono "utili" in uno scenario normale.
dotwaffle,

Quindi, per essere chiari, il vantaggio di RAIDZ sui mirror è un po 'più di protezione dai guasti hardware? RAIDZ1 e un mirror con unità X sono sostanzialmente equivalenti?
John Clayton,

5
La parità di RAID-Z è un superset del checksum integrato di ZFS. Tutto il checksum fa è assicurarsi che i dati letti dai dischi siano corretti. È progettato per essere un controllo veloce con un piccolo overhead. Ciò che offre la parità RAID-Z è la possibilità di ricostruire i dati danneggiati in caso di perdita di un'unità (o 2 per RAID-Z2). Ma i calcoli per generare questi dati di parità richiedono molta più CPU rispetto a un semplice checksum di blocco e devono essere calcolati su un intero strip, anche se si sta scrivendo solo un blocco 4KB.
Afrazier

4
@ John Clayton: il livello di ridondanza dipende da come si configura la memoria. È possibile creare un mirror N-way, il che significa che la capacità dei dati è la dimensione di un'unità, ma è possibile perdere unità N-1 senza perdere alcun dato. Ad esempio, se si dispone di un mirror a 3 vie, tutte e 3 le unità contengono gli stessi dati e si possono perdere 2 unità senza perdere alcun dato. La differenza è che l'aggiunta di unità a un mirror N-way aumenta la ridondanza (ma la capacità è sempre la dimensione di 1 unità), mentre l'aggiunta di unità a raidz2 aumenta la capacità (ma la ridondanza è sempre di 2 unità).
derubare il

18

RAID-Z elimina la maggior parte della pena di scrittura e i problemi di integrità dei dati di cui soffrono i volumi RAID 5/6, al costo di un po 'di tempo della CPU. In genere, i sistemi dispongono di cicli CPU da risparmiare, quindi impiegare tempo CPU per migliorare le prestazioni di I / O e l'integrità dei dati è un buon compromesso rispetto al mirroring.

Ecco una spiegazione dettagliata di RAID-Z che potrebbe rispondere ad altre domande.

Inoltre, ricorda che RAID è una soluzione di tolleranza agli errori . Non implementate RAID-Z2 per proteggervi dalla perdita di dati: eseguite backup o repliche per farlo. Scegli di implementare RAID-Z2 vs. RAID-Z o RAID-10 vs RAID-6 vs. RAID-5 per mantenere operativi i tuoi sistemi in caso di guasto hardware.


1
Devo dare la risposta a dotwaffle poiché mi ha aiutato a capire la differenza tecnica. Ottimo consiglio sull'uso previsto però ... che mi ha davvero fatto fermare e pensare.
John Clayton,

1
Una cosa importante da notare è che mentre RAIDZ elimina i problemi di penalità di scrittura , introduce problemi di penalità di lettura dovuti all'aumento della concorrenza per ogni operazione di lettura
the-wabbit
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.