ZFS vs XFS


62

Stiamo valutando la costruzione di un server di archiviazione di ~ 16 TB. Al momento, stiamo considerando sia ZFS che XFS come filesystem. Quali sono i vantaggi, gli svantaggi? Cosa dobbiamo cercare? C'è una terza opzione migliore?


7
Non li confrontare nemmeno. ZFS è un moderno file system a livello aziendale come jfs2, wafl. XFS era buono 10 anni fa ma oggi è solo un'età della pietra fs.
disserman il

In un certo senso, non è possibile confrontarli: XFS è un filesystem; ZFS è un filesystem e molto altro: sostituisce il filesystem, il gestore di volumi (come LVM) e RAID. Tuttavia, JFS non viene più gestito se la memoria serve: tuttavia, XFS è attivo, gestito e robusto. Ad ogni modo - ZFS o XFS - secondo me non si può sbagliare.
Mei,

1
Penso ancora che questa domanda sia pertinente, quindi Ill scrivo la nostra esperienza qui: XFS è semplice, lo installi, lo esegui, è veloce, funziona. (Incursione HW di seguito). ZFS è salva, ha la compressione, ma è molto lavoro per essere sintonizzato per funzionare velocemente come XFS. Quindi dipende anche dalla situazione in cui ti aspetti che il server venga eseguito. (backend del cluster. memoria utente, archivio, ...)
SvennD

C'è anche Hammer2 dragonflybsd.org/hammer
skan

Risposte:


44

Ho trovato XFS più adatto a filesystem estremamente grandi con forse molti file di grandi dimensioni. Ho un filesystem XFS da 3,6 TB funzionante da oltre 2 anni senza problemi. Funziona decisamente meglio di ext3, ecc. A quella dimensione (specialmente quando si ha a che fare con molti file di grandi dimensioni e molti I / O).

Quello che ottieni con ZFS è il pool di dispositivi, lo striping e altre funzionalità avanzate integrate nel filesystem stesso. Non posso parlare con dettagli specifici (lascerò che gli altri commentino), ma da quello che posso dire, vorresti usare Solaris per ottenere il massimo beneficio qui. Non è anche chiaro per me quanto ZFS aiuti se stai già utilizzando l'hardware RAID (come lo sono io).


33
La caratteristica chiave di ZFS che (di solito) non si ottiene altrove è il CRC a livello di blocco, che dovrebbe rilevare (e si spera prevenire) la corruzione silenziosa dei dati. La maggior parte dei filesystem presuppone che se una scrittura è stata completata con successo, i dati sono stati effettivamente scritti su disco. Questo non è sempre il caso, soprattutto se un settore inizia a diventare "marginale". ZFS lo rileva verificando il CRC rispetto alla scrittura risultante.
Avery Payne,

3
E sì, mi piace molto XFS. :) L'unica cosa da tenere a mente è la propensione a azzerare settori che erano "cattivi" durante il recupero di un diario. In alcuni (rari) casi, puoi finire con una perdita di dati ... Trovato questo documento con il termine di ricerca di Google "xfs zeri fuori settori al ripristino" pages.cs.wisc.edu/~vshree/xfs.pdf
Avery Payne,

3
Una delle cose che mi piace di XFS è il xfs_fsrprogramma di "deframmentazione".
Cristian Ciupitu,

1
L'utilità dei CRC a livello di blocco ZFS è discutibile. I dischi rigidi e gli SSD utilizzano il codice Hamming ECC per correggere errori a singolo bit e segnalare errori a due bit. Se l'ECC non è in grado di correggere in modo trasparente l'errore di lettura fisica, i dati vengono comunque persi e un errore di lettura verrà segnalato al sistema operativo. I CRC non correggono gli errori. Questa funzionalità è spinta come uno dei maggiori vantaggi di ZFS, ma la verità è che è ridondante e non ha alcun valore. Per quanto riguarda il bug XFS zero-after-power-fail, che è stato corretto molto tempo fa e non è rilevante oggi.
Jody Lee Bruchon,

@JodyLeeBruchon ciò che hai scritto non è corretto: mentre è vero che i dispositivi di archiviazione hanno già un codice di parità collegato ai dati, ciò non significa che siano in grado di proteggere i dati end-to-end. Per raggiungere questo obiettivo senza un filesystem con chechsumming, è necessario a) uno stack di archiviazione SAS T10 / DIF / DIX oppure b) utilizzare devicemapper dm-integral .
shodanshok,

75

ZFS offre vantaggi oltre al software RAID. La struttura dei comandi è strutturata in modo molto ponderato e intuitiva. Ha anche dispositivi di compressione, istantanee, clonazione, invio / ricezione del filesystem e cache (quei fantasiosi nuovi dischi SSD) per accelerare i metadati di indicizzazione.

Compressione:

#zfs set compression=on filesystem/home

Supporta semplici istantanee copia-su-scrittura che possono essere montate dal vivo:

# zfs snapshot filesystem/home/user@tuesday
# cd filesystem/home/user/.zfs/snapshot/tuesday

Clonazione del filesystem:

# zfs clone filesystem/home/user@tuesday filesystem/home/user2

Invio / ricezione del filesystem:

# zfs send filesystem/home/user@tuesday | ssh otherserver "zfs receive -v filesystem/home/user"

Invio / ricezione incrementale:

# zfs send -i filesystem/home/user@tuesday | ssh otherserver "zfs receive -v filesystem/home/user"

Dispositivi di memorizzazione nella cache:

# zpool add filesystem cache ssddev

Questa è solo la punta dell'iceberg, consiglio vivamente di mettere le mani su un'installazione di Open Solaris e provarlo.

http://www.opensolaris.org/os/TryOpenSolaris/

Modifica : Questo è molto vecchio, Open Solaris è stato sospeso, il modo migliore per usare ZFS è probabilmente su Linux o FreeBSD .


Divulgazione completa: ero un architetto dello storage Sun, ma non ho lavorato per loro da oltre un anno, sono solo entusiasta di questo prodotto.


Quel link non ha funzionato per me con www. Usahttp://opensolaris.org/os/TryOpenSolaris/
aggregate1166877

Direi che la scommessa migliore per zfs è ancora FreeBSD. Fa parte del sistema da alcuni anni. Quindi la mia ipotesi è che ci sia la minima possibilità di brutte sorprese. Anche se sono solo i miei $ 0,02.
Fox,

18

l'uso di lvm snapshot e xfs su filesystem live è una ricetta per il disastro soprattutto quando si usano filesystem molto grandi.

Ho eseguito esclusivamente su LVM2 e xfs negli ultimi 6 anni sui miei server (a casa anche dal momento che zfs-fuse è semplicemente troppo lento) ...

Tuttavia, non posso più contare le diverse modalità di errore che ho riscontrato durante l'utilizzo delle istantanee. Ho smesso di usarli del tutto - è semplicemente troppo pericoloso.

L'unica eccezione che farò ora è il mio backup mailserver / webserver personale, dove eseguirò backup notturni usando uno snapshot effimero, che è sempre uguale alla dimensione del file sorgente fs e viene cancellato subito dopo.

Aspetti più importanti da tenere a mente:

  1. se hai un filesystem grande (ish) con un'istantanea, le prestazioni di scrittura sono orribilmente degradate
  2. se si dispone di un grande filesystem (ish) con un'istantanea, il tempo di avvio verrà ritardato di letteralmente decine di minuti mentre il disco sarà sfocato e sfocato durante l'importazione del gruppo di volumi. Nessun messaggio verrà visualizzato. Questo effetto è particolarmente orribile se root è su lvm2 (perché in attesa del timeout del dispositivo root e il sistema non si avvia)
  3. se hai un'istantanea è molto facile rimanere senza spazio. Una volta esaurito lo spazio, l'istantanea è corrotta e non può essere riparata.
  4. Le istantanee non possono essere ripristinate / unite al momento (vedere http://kerneltrap.org/Linux/LVM_Snapshot_Merging ). Ciò significa che l'unico modo per ripristinare i dati da un'istantanea è effettivamente copiarli (rsync?). PERICOLO PERICOLO: non si desidera farlo se la capacità dell'istantanea non è almeno la dimensione della sorgente fs; In caso contrario, colpirai presto il muro di mattoni e finirai con sia la fonte fs che l'istantanea corrotte. (Ci sono stato!)

1
Come succede, proprio oggi qualcuno ha confermato che il vg con snapshot - impossibile-avviare-linux è ancora attuale: bugs.launchpad.net/lvm2/+bug/360237
visto il

Rivisitando questo bug, pensano ancora che i problemi di avvio abissali con gli snapshot siano "comportamento normale per lvm": bugs.launchpad.net/lvm2/+bug/360237/comments/7 (il
07-01-2012

1
Aggiornamento: stesso stato. Solo ora sono passati altri 7 anni.
visto il

14

Un paio di cose in più a cui pensare.

  • Se un'unità muore in un array RAID hardware indipendentemente dal filesystem che si trova sopra di esso, tutti i blocchi sul dispositivo devono essere ricostruiti. Anche quelli che non contenevano alcun dato. ZFS invece è il gestore del volume, il filesystem e gestisce la ridondanza e lo striping dei dati. Quindi può ricostruire in modo intelligente solo i blocchi che contenevano dati. Ciò si traduce in tempi di ricostruzione più rapidi rispetto a quando il volume è pieno al 100%.

  • ZFS ha una pulizia di fondo che assicura che i dati rimangano coerenti sul disco e ripari tutti i problemi rilevati prima che si traduca in una perdita di dati.

  • I file system ZFS sono sempre in uno stato coerente, quindi non è necessario fsck.

  • ZFS offre anche maggiore flessibilità e funzionalità con le sue istantanee e cloni rispetto alle istantanee offerte da LVM.

Avere eseguito grandi pool di archiviazione per la produzione di video di grande formato su uno stack Linux, LVM, XFS. La mia esperienza è stata che è facile cadere nella micro-gestione della memoria. Ciò può comportare grandi quantità di spazio allocato inutilizzato e tempo / problemi con la gestione dei volumi logici. Questo potrebbe non essere un grosso problema se si dispone di un amministratore di archiviazione a tempo pieno che ha il compito di micro-gestire l'archiviazione. Ma ho scoperto che l'approccio di archiviazione del pool di ZFS elimina questi problemi di gestione.


8

ZFS è assolutamente sorprendente. Lo sto usando come il mio file server di casa per un file server HD da 5 x 1 TB e lo sto usando anche in produzione con quasi 32 TB di spazio sul disco rigido. È veloce, facile da usare e contiene alcune delle migliori protezioni contro la corruzione dei dati.

Stiamo utilizzando OpenSolaris su questo server in particolare perché volevamo avere accesso a funzionalità più recenti e perché forniva il nuovo sistema di gestione dei pacchetti e le modalità di aggiornamento.


7

Quale sistema operativo stai pianificando di eseguire? O è un'altra parte della considerazione? Se usi Solaris, XFS non è nemmeno un'opzione per quanto ne so. Se non si esegue Solaris, come si prevede di utilizzare ZFS? Il supporto è limitato su altre piattaforme.

Se stai parlando di un server Linux, rimarrei personalmente con Ext3, anche solo perché riceve il maggior numero di test. zfs-fuse è ancora molto giovane. Inoltre, ho avuto problemi con XFS una volta, quando un bug ha causato il danneggiamento dei dati dopo un aggiornamento del kernel. I vantaggi di XFS su Ext3 non hanno sicuramente superato i costi associati al ripristino della macchina, che si trovava in un datacenter remoto.


6
FreeBSD ha un port nativo maturo di ZFS
Brian Gianforcaro,

7
wiki.freebsd.org/ZFSKnownProblems Penso che la tua definizione di maturo potrebbe essere diversa dalla mia :-) Forse lo prenderei in considerazione dopo il rilascio di 8.0.
Kjetil Limkjær,

9
ext3 con 16 TB? No no no Non farlo. Tu piangerai A mio avviso, ZFS o XFS sono i migliori filesystem là fuori. Usa ZFS se puoi (non eseguirlo su Linux). Lo dico con molta esperienza su grandi volumi su Linux e Solaris in 5 anni.
Thomas,

3
FreeBSD 7.2 dopo il 20090601 ha reso la maggior parte del moot di ZFSKnownProblems. Se stai eseguendo la versione AMD64 del sistema operativo, ora è stabile. In 8.0, FreeBSD ha contrassegnato ZFS come abbastanza stabile per la produzione.
Walter,

3
ZFS su Linux è ora disponibile ( zfsonlinux.org )
James Moore,

7

Non credo che dovresti concentrarti sulle prestazioni. I tuoi dati sono al sicuro con XFS, ext4, ecc? No. Leggi queste tesi di dottorato e documenti di ricerca:

XFS non è sicuro contro la corruzione dei dati: pages.cs.wisc.edu/~vshree/xfs.pdf

E neanche ext3, JFS, ReiserFS, ecc.: Zdnet.com/blog/storage/how-microsoft-puts-your-data-at-risk/169?p=169&tag=mantle_skin%3bcontent "Mi sono imbattuto nell'affascinante tesi di dottorato di Vijayan Prabhakaran, IRON File Systems che analizza il modo in cui cinque file system di journaling delle materie prime - NTFS, ext3, ReiserFS, JFS e XFS - gestiscono i problemi di archiviazione.

In breve, ha scoperto che tutti i file system hanno

. . . failure policies that are often inconsistent, sometimes buggy, and generally inadequate in their ability to recover from partial disk failures. "

Ma ZFS protegge con successo i tuoi dati. Ecco un documento di ricerca su questo: zdnet.com/blog/storage/zfs-data-integrity-tested/811


5

Non è una risposta orientata a FS, mi dispiace, ma tieni presente che un certo numero di controller del disco non gestirà LUNS / dischi logici da 2 TB: questo può limitare il modo in cui organizzi il tuo spazio di archiviazione. Volevo solo che tu fossi consapevole in modo da poter controllare il tuo sistema end-to-end per assicurarti che gestirà 16 TB in tutto.


1

Dipende dalle funzionalità che vuoi ..., le due scelte ragionevoli sono xfs e zfs come hai detto, il codice xfs è abbastanza ben testato L'ho usato per la prima volta 8 anni fa sotto IRIX

È possibile ottenere istantanee da xfs (usando lvm e xfs_freeze)

È possibile avere un dispositivo di registro separato, ad esempio SSD

mkfs.xfs -l logdev=/dev/sdb1,size=10000b /dev/sda1

I grandi xfs hanno tradizionalmente bisogno di molta memoria per controllare

Il problema con la comparsa degli zeri era una funzione di "sicurezza", che credo sia scomparsa qualche tempo fa.


1

A parte ciò che è già stato menzionato, dal punto di vista delle prestazioni xfs su raid di base MD ha prestazioni migliori di zfs su streaming media. Ho usato lo stesso hardware esatto per mezzo decennio con xfs e circa la stessa quantità di tempo con zfs sul mio media server. Sull'Intel Atom 330 con xfs non ho mai avuto problemi, su zfs su scene complesse lo stesso hardware non riesce a tenere il passo e inizia a far cadere i frame.


0

Invece di costruirne uno tuo, un'alternativa è il Sun 7410 aka Toro. Ha alcuni software molto utili forniti in bundle con la soluzione.


0

Bene ragazzi, non dimentichiamoci dell'ultima aggiunta a zfs: la deduplicazione. E parliamo al volo della condivisione iscsi, nfs o smb. Come altri hanno già detto, esportazioni di file system zfs, snapshot, raidz (= raid5) bloccano checksum, larghezza di banda dinamica, gestione della cache e molti altri. Io voto per zfs.

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.