Un array RAID-Z di grandi dimensioni è altrettanto grave di un array RAID-5 di grandi dimensioni?


11

Per molto tempo ho sentito di quanto sia brutta un'idea un array RAID-5 di grandi dimensioni (> 5 TB?) Semplicemente perché c'è un alto rischio che un'altra unità si guasti.

RAID-Z1 è riuscito a rimediare a un array di qualsiasi dimensione (se hai assolutamente bisogno di un numero prendi in considerazione 4x2 TB o 5x2 TB)? Forse un modo più sicuro per replicare nuovamente i dati che non sono così intensi su tutte le unità?

Risposte:


8

Anche dato ciò che una delle altre risposte qui esposte, vale a dire che ZFS funziona solo con blocchi usati effettivi e non con spazio vuoto, sì, è ancora pericoloso creare un grande RAIDZ1 vdev. La maggior parte dei pool viene utilizzata almeno per il 30-50%, molti vanno fino al massimo consigliato dell'80% (alcuni lo superano, consiglio vivamente di non farlo affatto, per motivi di prestazioni), quindi ZFS tratta solo con blocchi usati non è una grande vittoria. Inoltre, alcune delle altre risposte fanno sembrare che una cattiva lettura sia ciò che causa il problema. Non è così. Un po 'di marcio all'interno di un blocco non è quello che ti rovinerà qui, di solito, è un altro disco che va storto mentre il resilver del primo disco va male che ti ucciderà .. e su dischi da 3 TB in un grande raidz1 possono essere necessari giorni, anche settimane resilver su un nuovo disco, quindi le possibilità che ciò accada non sono insignificanti.

Il mio consiglio personale ai clienti è di non usare mai RAIDZ1 (equivalente RAID5) con dischi> 750 GB, solo per evitare un sacco di spiacevoli spiacevoli inconvenienti. Sono stato d'accordo con loro che hanno infranto questa regola a causa di altri motivi (il sistema ha un backup da qualche altra parte, i dati non sono così importanti, ecc.), Ma di solito faccio del mio meglio per spingere RAIDZ2 come opzione minima con grandi dischi.

Inoltre, per una serie di motivi, di solito consiglio di non utilizzare più di 8-12 dischi in una striscia raidz2 o 11-15 dischi in una striscia raidz3. Dovresti essere nella fascia bassa di quegli intervalli con dischi da 3 TB e potresti essere OK nella fascia alta di quegli intervalli su dischi da 1 TB. Che questo ti aiuti a stare lontano dall'idea che più dischi si guasteranno mentre è in corso un resilver è solo uno di questi motivi, ma grande.

Se stai cercando alcune regole empatiche (modifica il 04/10/15 - Ho scritto queste regole pensando solo ai dischi rotanti - perché sono anche logiche [perché dovresti fare meno di 3 dischi in un raidz1] ha un senso anche per i pool SSD ma i pool all-SSD non erano una cosa nella mia testa quando li ho scritti):

  • Non utilizzare raidz1 su dischi> 750 GB.
  • Non utilizzare meno di 3 o più di 7 dischi su un raidz1.
  • Se stai pensando di usare raidz1 vdevs a 3 dischi, prendi in seria considerazione invece i vdev mirror a 3 vie.
  • Non utilizzare meno di 6 o più di 12 dischi su un raidz2.
  • Non utilizzare meno di 7 o più di 15 dischi su un raidz3.
  • Ricorda sempre che a differenza degli array RAID tradizionali in cui il numero di dischi aumenta la IOPS, in ZFS è il numero di VDEVS, quindi andare con vdev a banda più corta migliora il potenziale IOPS del pool.

Con la modifica delle dimensioni e delle prestazioni del disco, consiglieresti comunque la stessa regola empirica? (2014)
Lord Loh.

Qualche fonte o motivazione per le regole empiriche?
Kenny Evitt, il

La fonte è l'esperienza di me stesso e dei colleghi in migliaia di implementazioni ZFS presso Nexenta. Per quanto riguarda un aggiornamento: le regole sono valide (04/10/15), nulla è cambiato che mi fa venir voglia di modificare i punti elenco, anche se Vorrei dire che ho scritto quelle regole senza pensare a SSD. Le regole non sono necessariamente le stesse per gli SSD, a seconda di fattori circostanziali. Con loro hai anche altre considerazioni, come il collo di bottiglia dell'HBA.
Nex7,

1
@ Nex7, qual è la logica per questo nel tuo articolo di blog? "8. RAIDZ - Conti disco pari / dispari: prova (e non molto difficile) a mantenere il numero di dischi dati in un raidz vdev su un numero pari"
Costin Gușă,

È importante ricordare i casi d'uso. Qui su serverfault ci concentriamo su applicazioni professionali / aziendali, quindi la tua risposta è giusta. Detto questo, per coloro che stanno eseguendo installazioni consumer (e forse anche applicazioni aziendali limitate?), Considera quanto male sarebbe perdere un singolo blocco da un singolo file (forse un paio) dal tuo array se hai un errore durante un ricostruire. Nessun grosso problema? Quindi RAIDZ1 potrebbe andare bene.
Dan Pritts,

11

RAID-Z è cattivo come R5, no. È buono come R1 o R10, di solito no.

RAID-Z è a conoscenza di punti vuoti sulle unità, dove R5 non lo è. Quindi RAID-Z deve solo leggere le aree con i dati per recuperare il disco mancante. Inoltre, i dati non sono necessariamente sottoposti a striping su tutti i dischi. Un file molto piccolo potrebbe risiedere su un solo disco, con la parità su un altro disco. A causa di questo RAID-5 dovrà leggere esattamente tutti i dati dello spazio utilizzato sull'array (se 1mb viene utilizzato su un array da 5 TB, una ricostruzione deve solo leggere 1 mb).

In caso contrario, se la maggior parte di un array di grandi dimensioni è pieno, la maggior parte dei dati dovrà essere letta da tutti i dischi. Rispetto a R1 o R10 in cui i dati devono essere estratti esattamente da un solo disco (per disco guasto; se più dischi falliscono solo in situazioni in cui l'array è ancora recuperabile).

Ciò di cui ti preoccupi è il fatto che con ogni operazione di lettura di un settore c'è la possibilità che troverai un settore che non è stato scritto correttamente o non è più leggibile. Per un'unità tipica in questi giorni che è circa 1x10 ^ -16 (non tutte le unità sono uguali, quindi cerca le specifiche sulle tue unità per capire la loro valutazione). Questo è incredibilmente raro, ma viene fuori circa una volta ogni 1 PB; per un array da 10 TB c'è una probabilità dell'1% che il tuo array sia toast e non lo conosci fino a quando non provi a recuperarlo.

ZFS aiuta anche a mitigare questa possibilità, poiché la maggior parte dei settori illeggibili sono evidenti prima di iniziare a provare a ricostruire l'array. Se si pulisce l'array ZFS su base regolare, l'operazione scrub rileverà questi errori e aggirerà tali errori (o avviserà l'utente in modo da poter sostituire il disco in questo modo). Ti raccomandano di pulire i dischi di livello aziendale da una a quattro volte al mese; e unità di livello consumer almeno una volta alla settimana o più.


3

Alcuni dei vantaggi di RAID-Z rispetto al RAID-5 tradizionale è che non richiede hardware specializzato ed è più affidabile evitando il foro di scrittura RAID-5.

Tuttavia, sia RAID-Z che RAID-5 non supportano più di un errore del disco.

Se si desidera sopravvivere a un errore di due dischi con ZFS, è possibile utilizzare RAIDZ2 e il guasto di tre dischi RAIDZ3 .


1
+1 Inoltre, i checksum perblock consentono a ZFS, qualora trovasse corruzione in un array, di individuare i file interessati. La maggior parte degli HBA R5 contrassegnerà semplicemente l'intero volume come corrotto o riferirà al sistema operativo che un settore è danneggiato, in entrambi i casi l'HBA non ha modo di sapere quale disco è sbagliato in uno scenario di corruzione.
Chris S

Altre discussioni sulla gestione degli errori del resilver di ZFS
un CVn
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.