Best practice ZFS con RAID hardware


30

Se si ha un hardware di livello server a disposizione, è mai consigliabile eseguire ZFS su un RAID1 basato su hardware o altro? Si dovrebbe spegnere il RAID basato su hardware ed eseguire ZFS su un mirroro un raidz zpoolinvece?

Con la funzionalità RAID hardware disattivata, i controller SATA2 e SAS basati su RAID hardware hanno più o meno probabilità di nascondere errori di lettura e scrittura rispetto ai controller RAID non hardware?

In termini di server non personalizzabili, se si verifica una situazione in cui un controller RAID hardware è effettivamente neutro sotto il profilo dei costi (o addirittura riduce il costo dell'offerta di server precostruita, poiché la sua presenza migliora la probabilità che la società di hosting fornisca IPMI complementare accesso), dovrebbe essere assolutamente evitato? Ma dovrebbe essere ricercato?



2
@ShaneMadden, le domande sono simili, tuttavia, la mia domanda giunge già dal punto di vista del raid hardware in termini di zfs, e mi sto chiedendo quanto sia grave; inoltre, considera che la risposta accettata alla tua domanda collegata non risponde affatto alla mia domanda; la mia domanda è più simile a una domanda successiva alla domanda che hai collegato.
CNST

"ZFS su Hardware Mirroring o semplicemente mirroring in ZFS?" e questa domanda sono due argomenti diversi. L'altro argomento ha una portata più ristretta rispetto a questo argomento.
Stefan Lasiewski,

@ewwhite, non l'hai già chiesto?
CNST

@cnst Beh, non c'è una risposta marcata e le persone continuano a sottovalutare la mia risposta. Quindi sarebbe bello che ci fosse un po 'di chiusura alla domanda posta. ( È la cosa responsabile da fare )
ewwhite

Risposte:


17

L'idea con ZFS è di far conoscere il più possibile il comportamento dei dischi. Quindi, dal peggio al meglio:

  • Hardware raid (ZFS non ha assolutamente idea dell'hardware reale),
  • Modalità JBOD (il problema riguarda più i potenziali espansori: meno larghezza di banda),
  • La modalità HBA è l'ideale (ZFS sa tutto sui dischi)

Dato che ZFS è abbastanza paranoico sull'hardware, meno nascondono, più è in grado di far fronte a qualsiasi problema hardware. E come sottolineato da Sammitch , le configurazioni del controller RAID e ZFS possono essere molto difficili da ripristinare o riconfigurare in caso di errore (ad es. Guasto hardware).

Informazioni sul problema dell'hardware standardizzato con alcuni controller hardware-RAID al suo interno, fai solo attenzione che il controller hardware abbia una modalità pass-through o JBOD reale.


10
Vale anche la pena notare che se si utilizza HW RAID e il controller si spegne [succede più di quanto si pensi] se non si riesce a ottenere un sostituto identico o completamente compatibile, si è cerchiato. D'altra parte, se hai dato i dischi grezzi a ZFS, puoi ricollegarli a qualsiasi controller su qualsiasi macchina e ZFS può ricostruire l'array e continuare come se niente fosse.
Sammitch,

1
I server di fascia alta in genere hanno controller RAID integrati. Ad esempio, non ho mai dovuto sostituire un controller su un sistema HP o Dell.
ewwhite,

2
Questa risposta non risponde a nulla. Esprime solo l'opinione parziale, secondo cui il fornitore dell'hardware del server e il programmatore ZFS hanno svolto un lavoro migliore rispetto al fornitore del controller RAID e al programmatore del firmware RAID. La community di FreeNAS è piena di ragazzi che hanno ucciso i loro Zpools con memoria del server mal funzionante o alimentatori inappropriati. La possibilità che qualcosa di grosso fallisca è maggiore di qualcosa di piccolo.
ceving

14

D. Se si ha un hardware di livello server a disposizione, è mai consigliabile eseguire ZFS su un RAID1 basato su hardware o qualcosa del genere?

R. È preferibile eseguire ZFS direttamente su disco e non utilizzare alcuna forma di RAID nel mezzo. Il fatto che un sistema che richieda effettivamente l'utilizzo della scheda RAID precluda l'utilizzo di ZFS ha più a che fare con gli altri vantaggi di ZFS che con la resilienza dei dati. Completamente, se c'è una scheda RAID sottostante responsabile della fornitura di un singolo LUN a ZFS, ZFS non migliorerà la resilienza dei dati. Se la tua unica ragione per andare con ZFS in primo luogo è il miglioramento della resilienza dei dati, allora hai perso tutti i motivi per usarlo. Tuttavia, ZFS fornisce anche ARC / L2ARC, compressione, istantanee, cloni e vari altri miglioramenti che potresti desiderare, e in quel caso, forse è ancora il tuo filesystem preferito.

D. È necessario disattivare il RAID basato su hardware ed eseguire invece ZFS su un mirror o su un raidz zpool?

R. Sì, se possibile. Alcune schede RAID consentono la modalità pass-through. Se ce l'ha, questa è la cosa preferibile da fare.

D. Con la funzionalità RAID hardware disattivata, i controller SATA2 e SAS basati su RAID hardware hanno più o meno probabilità di nascondere errori di lettura e scrittura rispetto ai controller RAID non hardware?

R. Ciò dipende interamente dalla scheda RAID in questione. Dovrai esaminare il manuale o contattare il produttore / fornitore della scheda RAID per scoprirlo. Alcuni lo fanno molto, sì, soprattutto se 'disattivare' la funzionalità RAID non la spegne completamente.

Q. In termini di server non personalizzabili, se si verifica una situazione in cui un controller RAID hardware è effettivamente neutro sotto il profilo dei costi (o addirittura riduce il costo dell'offerta di server precostruita, poiché la sua presenza migliora la probabilità che la società di hosting fornisca accesso IPMI complementare), dovrebbe essere assolutamente evitato? Ma dovrebbe essere ricercato?

R. Questa è la stessa domanda del tuo primo. Ancora una volta - se il tuo unico desiderio di utilizzare ZFS è un miglioramento della resilienza dei dati e la tua piattaforma hardware scelta richiede una scheda RAID fornisca un singolo LUN a ZFS (o più LUN, ma hai una striscia ZFS su di essi), allora stai facendo nulla per migliorare la resilienza dei dati e quindi la scelta di ZFS potrebbe non essere appropriata. Se, tuttavia, ritieni che una qualsiasi delle altre funzioni di ZFS sia utile, potrebbe essere comunque.

Voglio aggiungere un'ulteriore preoccupazione: le risposte di cui sopra si basano sull'idea che l'uso di una scheda RAID hardware sotto ZFS non fa nulla per danneggiare ZFS oltre a rimuovere la sua capacità di migliorare la resilienza dei dati. La verità è che è più un'area grigia. Ci sono vari parametri sintonizzabili e ipotesi all'interno di ZFS che non funzionano necessariamente anche quando vengono distribuiti LUN multi-disco anziché dischi non elaborati. La maggior parte di questo può essere annullata con un'adeguata messa a punto, ma immediatamente, non sarai efficiente su ZFS su grandi LUN RAID come se fossi su singoli mandrini.

Inoltre, ci sono alcune prove che suggeriscono che il modo molto diverso in cui ZFS parla con i LUN rispetto ai filesystem più tradizionali spesso invoca percorsi di codice nel controller RAID e carichi di lavoro a cui non sono abituati, il che può portare a stranezze. In particolare, probabilmente ti farai un favore disabilitando la funzionalità ZIL interamente su qualsiasi pool che posizioni sopra un singolo LUN se non stai fornendo anche un dispositivo di registro separato, anche se ovviamente ti consiglio vivamente Fornire al pool un dispositivo di log non elaborato separato (che non è un LUN dalla scheda RAID, se possibile).


9

Corro ZFS su configurazioni RAID HP ProLiant Smart Array abbastanza spesso.

Perché?

  • Perché mi piace ZFS per le partizioni dati, non le partizioni di avvio.
  • Perché l'avvio di Linux e ZFS probabilmente non è abbastanza sicuro per me in questo momento.
  • Perché i controller RAID HP non consentono il passaggio dei dispositivi RAW . La configurazione di più volumi RAID 0 non è la stessa dei dischi RAW.
  • Poiché i backplane dei server non sono in genere abbastanza flessibili da dedicare alloggiamenti di unità a un controller specifico o dividere le funzioni tra due controller. In questi giorni vedi le configurazioni a 8 e 16 alloggiamenti più spesso. Non sempre abbastanza per segmentare il modo in cui le cose dovrebbero essere.
  • Ma mi piacciono ancora le funzionalità di gestione del volume di ZFS. Lo zpool mi permette di scolpire le cose in modo dinamico e sfruttare al meglio lo spazio disponibile su disco.
  • Compression, ARC e L2ARC sono caratteristiche killer!
  • Una configurazione ZFS appositamente progettata in cima al RAID hardware fornisce ancora buoni avvisi e avvisi di errore, ma supera la soluzione solo hardware.

Un esempio:

Configurazione del controller RAID.

[root@Hapco ~]# hpacucli ctrl all show config

Smart Array P410i in Slot 0 (Embedded)    (sn: 50014380233859A0)

   array B (Solid State SATA, Unused Space: 250016  MB)
      logicaldrive 3 (325.0 GB, RAID 1+0, OK)

      physicaldrive 1I:1:3 (port 1I:box 1:bay 3, Solid State SATA, 240.0 GB, OK)
      physicaldrive 1I:1:4 (port 1I:box 1:bay 4, Solid State SATA, 240.0 GB, OK)
      physicaldrive 2I:1:7 (port 2I:box 1:bay 7, Solid State SATA, 240.0 GB, OK)
      physicaldrive 2I:1:8 (port 2I:box 1:bay 8, Solid State SATA, 240.0 GB, OK)

bloccare l'elenco dei dispositivi

[root@Hapco ~]# fdisk  -l /dev/sdc

Disk /dev/sdc: 349.0 GB, 348967140864 bytes
256 heads, 63 sectors/track, 42260 cylinders
Units = cylinders of 16128 * 512 = 8257536 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00000000

   Device Boot      Start         End      Blocks   Id  System
/dev/sdc1               1       42261   340788223   ee  GPT

configurazione di zpool

[root@Hapco ~]# zpool  list
NAME   SIZE  ALLOC   FREE    CAP  DEDUP  HEALTH  ALTROOT
vol1   324G  84.8G   239G    26%  1.00x  ONLINE  -

dettaglio zpool

  pool: vol1
 state: ONLINE
  scan: scrub repaired 0 in 0h4m with 0 errors on Sun May 19 08:47:46 2013
config:

        NAME                                      STATE     READ WRITE CKSUM
        vol1                                      ONLINE       0     0     0
          wwn-0x600508b1001cc25fb5d48e3e7c918950  ONLINE       0     0     0

Elenco dei file system zfs

[root@Hapco ~]# zfs list
NAME             USED  AVAIL  REFER  MOUNTPOINT
vol1            84.8G   234G    30K  /vol1
vol1/pprovol    84.5G   234G  84.5G  -

Quindi, per quanto riguarda la domanda chiusa a cui ti sei collegato, è per dire che se voglio usare ZFS, è meglio evitare, ad esempio, Dell PERC H200 e HP P410? Non hanno ancora un modo per disabilitare la modalità raid hardware, che sia RAID0 o RAID1?
primo

Quindi, sembra che dell.com/learn/us/it/04/campaigns/dell-raid-controllers sostenga che H200 "Supporta non RAID", sebbene h18004.www1.hp.com/products/servers/proliantstorage/ ... non è del tutto chiaro se la funzionalità raid di P410 possa o meno essere disattivata.
primo

@cnst Non è possibile disabilitare la funzionalità RAID di un HP Smart Array P410.
ewwhite,

È ancora corretto? Stai dicendo che non c'è alcun pericoloso ZFS in esecuzione sul raid hardware?
rado

Corretta. Non è pericoloso
ewwhite

5

In genere non si dovrebbe mai eseguire ZFS su dischi configurati in un array RAID. Nota che ZFS non deve essere eseguito in modalità RAID. Puoi semplicemente usare i singoli dischi. Tuttavia, praticamente il 99% delle persone esegue ZFS per la parte RAID di esso. Potresti semplicemente eseguire i tuoi dischi in modalità a strisce, ma questo è un cattivo uso di ZFS. Come altri poster hanno detto, ZFS vuole sapere molto sull'hardware. ZFS deve essere collegato solo a una scheda RAID che può essere impostata in modalità JBOD o preferibilmente connessa a un HBA. Salta sul canale IRC Freenode #openindiana; qualcuno degli esperti ZFS nel canale ti dirà la stessa cosa. Chiedi al tuo provider di hosting di fornire la modalità JBOD se non ti darà un HBA.


1
Sì sono d'accordo. Ma è anche una questione di ciò che è disponibile in magazzino con la configurazione che si adatta al conto e alle specifiche. Se un server ha una grande CPU, molta RAM ECC, grande larghezza di banda e molta, ma deve venire con un RAID basato su hardware, potrebbe non essere conveniente cercare alternative, che possono essere molte volte più costose, a causa di essere in una categoria diversa o così, o mancando alcune delle funzionalità aziendali come la RAM ECC ecc.
primo

2

In breve: l'uso di RAID sotto ZFS uccide semplicemente l'idea di utilizzare ZFS. Perché? - Perché è progettato per funzionare su dischi puri, non su RAID.


1
Non necessariamente. Che cosa succede se mi preoccupo di più della flessibilità di gestione del volume che dell'ottimizzazione in giro hanno accesso non elaborato ai dispositivi fisici. ZFS funziona abbastanza bene per il mio caso d'uso.
ewwhite,

3
@ewwhite, beh, qualcuno può guidare la bicicletta camminando vicino ad essa, dicendo che gli piace camminare e ama le biciclette in generale, ma la verità è che le biciclette sono fatte per essere guidate. )
poige

2

Per tutti voi ... ZFS su qualsiasi Raid è un DOLORE totale ed è fatto solo da MAD! ... come usare ZFS con memoria non ECC.

Con i campioni capirai meglio:

  • ZFS su Raid1, un disco è un po 'cambiato quando non è stato spento ... fai tutto ciò che sai, ZFS vedrà qualche danno o non dipende dal disco letto (il controller Raid non ha visto quel bit cambiato e pensa che entrambi i dischi siano OK ) ... se l'errore è nella parte VDEV ... l'intero ZPOOL perde tutti i suoi dati per sempre.
  • ZFS su Raid0, un disco è un po 'cambiato quando non è stato spento ... fai tutto ciò che sai, (il controller Raid non ha visto quel bit cambiato e pensa che entrambi i dischi siano OK) ... ZFS vedrà quel danno ma se il il fallimento è nella parte VDEV ... l'intero ZPOOL perde tutti i suoi dati per sempre.

Il punto in cui ZFS è buono è nel rilevare bit che sono cambiati quando il disco era privo di alimentazione (i controller RAID non possono farlo), anche quando qualcosa cambia senza che sia stato richiesto, ecc.

È lo stesso problema di quando un bit in un modulo RAM cambia spontaneamente senza che sia richiesto ... se la memoria è ECC, la memoria si corregge da sola; in caso contrario, tali dati erano cambiati, in modo che i dati fossero inviati ai dischi modificati; fai leva sul fatto che il cambiamento non è nella parte UDEV, se il fallimento è nella parte VDEV ... l'intero ZPOOL perde tutti i suoi dati per sempre.

Questo è un punto debole su ZFS ... VDEV fallisce implica che tutti i dati vengano persi per sempre.

Hardware Raid e Software Raid non possono rilevare cambi di bit spontanei, non hanno checksum, peggio ancora sui livelli Raid1 (mirros), non leggono tutte le parti e le confrontano, sostengono che tutte le parti avranno sempre gli stessi dati, SEMPRE (dico ad alta voce) Raid sostiene che i dati non sono cambiati da nessun'altra cosa / modo ... ma i dischi (come memoria) sono inclini a cambiamenti di bit spontanei.

Non utilizzare mai uno ZFS su una RAM non ECC e non utilizzare mai ZFS su dischi razziati, lasciare che ZFS veda tutti i dischi, non aggiungere un livello che può rovinare VDEV e POOL.

Come simulare un tale fallimento ... spegnere il PC, estrarre un disco da quel Raid1 e modificare solo un bit ... riconnettersi e vedere come il controller Raid non può sapere che è cambiato ... ZFS può perché tutte le letture sono testate contro il checksum e, se non corrisponde, leggi da un'altra parte ... Raid non legge mai più perché un errore (tranne la lettura impossibile dell'hardware fallisce) ... se Raid riesce a leggere pensa che i dati siano OK (ma non è in questi casi ) ... Raid prova a leggere da un altro disco solo se dove dice "ehi, non riesco a leggere da lì, hardware non riesce" ... ZFS legge da un altro disco se il checksum non corrisponde come se fosse dove legge dice "ehi, non riesco a leggere da lì, l'hardware non riesce".

Spero di averlo chiarito molto ... ZFS su qualsiasi livello di Raid è un dolore totale e un rischio totale per i tuoi dati! così come ZFS su memorie non ECC.

Ma quello che nessuno dice (tranne me) è:

  • Non utilizzare i dischi con cache interna (non solo quelli SHDD, anche alcuni con cache da 8 Mb a 32 MB, ecc.) ... alcuni usano memoria non ECC per tale cache
  • Non utilizzare SATA NCQ (un modo per scrivere in queu) perché può rovinare ZFS in caso di interruzione dell'alimentazione

Quindi quali dischi usare?

  • Qualsiasi disco con batteria interna che assicura che tutto il queu venga scritto sul disco in caso di interruzione dell'alimentazione e utilizza la memoria ECC al suo interno (scusate, ce ne sono di piccoli con tutto questo e sono costosi).

Ma, ehi, la maggior parte delle persone non sa tutto questo e non ha mai avuto problemi ... dico loro: wow, quanto sei fortunato, compra alcuni biglietti della lotteria, prima che il fortunato se ne vada.

I rischi ci sono ... possono verificarsi coincidenze di tali guasti ... quindi la risposta migliore è:

  • Cerca di non mettere alcun livello tra ZFS e dove i dati sono realmente archiviati (RAM, Raid, NCQ, cache interna del disco, ecc.) ... quanto puoi permetterti.

Cosa faccio personalmente?

  • Metti qualche strato in più ... uso ogni disco SATA III da 7200 rpm da 2,5 "su un contenitore USB 3.1 Gen2 tipo C, collego alcuni contenitori a un hub USB 3.1 Gen 2 Tipo A che collego al PC; altro a un altro hub che mi collego a un'altra porta di root sul PC, ecc.
  • Per il sistema utilizzo connettori sata interni su ZFS (livello Raid0) perché utilizzo un sistema Linux immutabile (come un LiveCD), ognuno avvia contenuti identici su dischi interni ... e ho un'immagine Clone del sistema che posso ripristinare (meno del sistema 1GiB) ... anche io uso il trucco per avere il sistema contenuto in un file e uso un'unità mappata RAM dove la clonare all'avvio, quindi dopo l'avvio tutto il sistema gira nella RAM ... mettendo tale file su un DVD posso anche avviarlo allo stesso modo, quindi in caso di guasto dei dischi interni, eseguo semplicemente l'avvio con il DVD e il sistema è di nuovo online ... trucco simile a SystemRescueCD ma un file ISO un po 'più complesso può essere sul ZFS interno o semplicemente essere il vero DVD e non voglio due versioni diverse.

Spero di poter dare un po 'di luce su ZFS contro Raid, è davvero un dolore quando le cose vanno male!


Quindi stai dicendo che ZFS è così inaffidabile che se un singolo bit cambia, potresti perdere l'intero filesystem? In che modo SATA NCQ causa la perdita di dati quando l'unità notifica ancora l'host solo quando i settori sono stati scritti correttamente (anche se in un ordine forse diverso)?
Malvineous,
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.