ZFS vs XFS

62

Wir erwägen den Bau eines Speicherservers mit ca. 16 TB. Momentan betrachten wir sowohl ZFS als auch XFS als Dateisystem. Was sind die Vor- und Nachteile? Worauf müssen wir achten? Gibt es eine dritte, bessere Option?

Tamas Czinege
quelle
7
Vergleichen Sie sie nicht einmal. ZFS ist ein modernes Dateisystem auf Unternehmensebene wie jfs2, wafl. XFS war vor 10 Jahren gut, aber heute ist es nur eine Steinzeit fs.
Disserman
In mancher Hinsicht kann man sie nicht vergleichen: XFS ist ein Dateisystem; ZFS ist ein Dateisystem und vieles mehr: Es ersetzt das Dateisystem, den Volume Manager (wie LVM) und RAID. JFS wird jedoch nicht mehr verwaltet, wenn Speicher bereitgestellt wird. XFS ist jedoch aktiv und verwaltet und robust. Wie auch immer - ZFS oder XFS - Sie können meiner Meinung nach nichts falsch machen.
Mei
1
Ich denke immer noch, dass diese Frage relevant ist, also schreibe ich unsere Erfahrung hier: XFS ist einfach, Sie installieren es, Sie führen es aus, es ist schnell, es funktioniert. (HW-Überfall unten). ZFS ist sicher, komprimiert, erfordert jedoch viel Arbeit, um so schnell wie XFS zu arbeiten. Es hängt also auch von der Situation ab, in der der Server ausgeführt werden soll. (Backend des Clusters. User Storage, Archive, ...)
SvennD
Es gibt auch Hammer2 dragonflybsd.org/hammer
skan

Antworten:

44

Ich habe festgestellt, dass XFS für extrem große Dateisysteme mit möglicherweise vielen großen Dateien besser geeignet ist. Ich habe seit über 2 Jahren ein funktionsfähiges XFS-Dateisystem mit 3,6 TB ohne Probleme. Funktioniert definitiv besser als ext3 usw. bei dieser Größe (insbesondere bei vielen großen Dateien und vielen E / A-Vorgängen).

Mit ZFS erhalten Sie Gerätepooling, Striping und andere erweiterte Funktionen, die im Dateisystem selbst integriert sind. Ich kann nicht mit Einzelheiten sprechen (ich lasse andere kommentieren), aber nach allem, was ich sagen kann, möchten Sie Solaris verwenden, um hier den größten Nutzen zu erzielen. Mir ist auch nicht klar, wie viel ZFS hilft, wenn Sie bereits Hardware-RAID verwenden (so wie ich).

Mark Renouf
quelle
33
Die Hauptfunktion von ZFS, die Sie (normalerweise) nicht an anderer Stelle finden, ist die Block-Level-CRC, die stille Datenkorruption erkennen (und hoffentlich verhindern) soll. Die meisten Dateisysteme gehen davon aus, dass die Daten bei einem erfolgreichen Schreibvorgang tatsächlich auf die Festplatte geschrieben wurden. Das ist nicht immer der Fall, besonders wenn ein Sektor anfängt, "marginal" zu werden. ZFS erkennt dies, indem es den CRC anhand des resultierenden Schreibvorgangs überprüft.
Avery Payne
3
Und ja, ich mag XFS sehr. :) Das einzige, was Sie beachten müssen, ist die Tendenz, Sektoren, die während einer Journalwiederherstellung "schlecht" waren, auf Null zu setzen. In einigen (seltenen) Fällen kann es zu Datenverlust kommen ... Dieses Dokument wurde mit dem Google-Suchbegriff "xfs löscht Sektoren nach Wiederherstellung aus" gefunden pages.cs.wisc.edu/~vshree/xfs.pdf
Avery Payne
3
Eines der Dinge, die ich an XFS mag, ist das xfs_fsr"Defragmentierungs" -Programm.
Cristian Ciupitu
1
Der Nutzen von ZFS-CRCs auf Blockebene ist fraglich. Festplatten und SSDs verwenden den Hamming-Code ECC, um Einzelbitfehler zu korrigieren und Zwei-Bit-Fehler zu melden. Wenn der ECC den physischen Lesefehler nicht transparent korrigieren kann, gehen die Daten trotzdem verloren und ein Lesefehler wird an das Betriebssystem gemeldet. CRCs korrigieren keine Fehler. Diese Funktion wird als Hauptvorteil von ZFS vorangetrieben, aber die Wahrheit ist, dass sie redundant ist und keinen Wert hat. Was den XFS-Fehler "Zero-After-Power-Fail" betrifft, der vor langer Zeit behoben wurde und heute nicht mehr relevant ist.
Jody Lee Bruchon
@JodyLeeBruchon Das, was Sie geschrieben haben, ist falsch: Auf Speichergeräten ist zwar bereits ein Paritätscode an die Daten angehängt, dies bedeutet jedoch nicht, dass sie End-to-End-Datenschutz bieten können. Um dieses Ziel ohne ein kompliziertes Dateisystem zu erreichen, benötigen Sie a) einen SAS T10 / DIF / DIX- Speicherstack oder b) den devicemapper dm-integrity .
Shodanshok
75

ZFS bietet Ihnen Vorteile, die über Software-RAID hinausgehen. Die Befehlsstruktur ist sehr durchdacht und intuitiv. Es bietet auch Komprimierung, Snapshots, Klonen, Senden / Empfangen von Dateisystemen und Cache-Geräte (solche, die sich für neue SSD-Laufwerke interessieren), um die Indizierung von Metadaten zu beschleunigen.

Kompression:

#zfs set compression=on filesystem/home

Es unterstützt das einfache Erstellen von Copy-on-Write-Snapshots, die live bereitgestellt werden können:

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

Klonen des Dateisystems:

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

Dateisystem senden / empfangen:

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

Inkrementelles Senden / Empfangen:

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

Caching-Geräte:

# zpool add filesystem cache ssddev

Dies ist alles nur die Spitze des Eisbergs. Ich kann nur empfehlen, eine Installation von Open Solaris in die Hände zu bekommen und diese auszuprobieren.

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

Bearbeiten : Dies ist sehr alt, Open Solaris wurde eingestellt, die beste Möglichkeit, ZFS zu verwenden, ist wahrscheinlich Linux oder FreeBSD .


Vollständige Offenlegung: Früher war ich Sun-Speicherarchitekt, habe aber seit über einem Jahr nicht mehr für sie gearbeitet. Ich bin nur gespannt auf dieses Produkt.

Chris
quelle
Dieser Link hat bei mir mit www nicht funktioniert. Usehttp://opensolaris.org/os/TryOpenSolaris/
aggregate1166877
Ich würde eigentlich sagen, dass die beste Wette für zfs immer noch FreeBSD ist. Es ist seit einigen Jahren ein Teil des Systems. Ich vermute also, es gibt die geringste Möglichkeit für böse Überraschungen. Obwohl es nur meine 0,02 $ sind.
Fox
18

Die Verwendung von lvm-Snapshots und xfs auf Live-Dateisystemen ist ein Rezept für eine Katastrophe, insbesondere wenn sehr große Dateisysteme verwendet werden.

Ich habe in den letzten 6 Jahren ausschließlich LVM2 und xfs auf meinen Servern ausgeführt (zu Hause, auch wenn zfs-fuse einfach zu langsam ist) ...

Ich kann jedoch nicht mehr die verschiedenen Fehlermodi zählen, auf die ich bei der Verwendung von Snapshots gestoßen bin. Ich habe aufgehört, sie zu benutzen - es ist einfach zu gefährlich.

Die einzige Ausnahme, die ich jetzt machen werde, ist mein persönliches Mailserver- / Webserver-Backup, bei dem ich über Nacht Backups mit einem kurzlebigen Snapshot mache, der immer der Größe des Quell-Fs entspricht und sofort danach gelöscht wird.

Wichtigste Aspekte, die Sie berücksichtigen sollten:

  1. Wenn Sie ein großes (ish) Dateisystem haben, das einen Schnappschuss enthält, ist die Schreibleistung fürchterlich beeinträchtigt
  2. Wenn Sie ein großes (ish) Dateisystem haben, das über einen Snapshot verfügt, wird die Startzeit buchstäblich um zehn Minuten verzögert, während die Festplatte während des Imports der Datenträgergruppe gewechselt wird. Es werden keine Nachrichten angezeigt. Dieser Effekt ist besonders schrecklich, wenn root auf lvm2 ist (weil das Warten auf das Root-Gerät eine Zeitüberschreitung verursacht und das System nicht startet).
  3. Wenn Sie einen Schnappschuss haben, ist es sehr einfach, keinen Platz mehr zu haben. Sobald Sie keinen Speicherplatz mehr haben, ist der Snapshot beschädigt und kann nicht repariert werden.
  4. Momentan können Snapshots nicht zurückgesetzt / zusammengeführt werden (siehe http://kerneltrap.org/Linux/LVM_Snapshot_Merging ). Dies bedeutet, dass die einzige Möglichkeit, Daten aus einem Snapshot wiederherzustellen, darin besteht, sie tatsächlich zu kopieren (rsync?). GEFAHR GEFAHR: Sie möchten dies nicht tun, wenn die Schnappschusskapazität nicht mindestens der Größe der Quelle fs entspricht. Wenn Sie dies nicht tun, werden Sie bald gegen die Mauer stoßen und am Ende sind sowohl die Quell-Fs als auch der Schnappschuss beschädigt. (Ich war dort!)
sehe
quelle
1
Wie es passiert, hat gerade heute jemand bestätigt, dass die vg mit snapshot - nicht bootbar unter
sehe
Bei erneutem Besuch dieses Fehlers denken sie immer noch, dass die abgründigen Startprobleme mit Snaphots "normales Verhalten für lvm" sind: bugs.launchpad.net/lvm2/+bug/360237/comments/7 (am 2012-01-07)
sehe
1
Update: Gleicher Zustand. Nur jetzt sind es noch 7 Jahre.
sehe
14

Ein paar zusätzliche Dinge zum Nachdenken.

  • Wenn ein Laufwerk in einem Hardware-RAID-Array unabhängig vom Dateisystem, auf dem es sich befindet, ausfällt, müssen alle Blöcke auf dem Gerät neu erstellt werden. Sogar diejenigen, die keine Daten enthielten. ZFS hingegen ist der Volume-Manager, das Dateisystem, und verwaltet Datenredundanz und Striping. Auf diese Weise können nur die Blöcke, die Daten enthalten, intelligent wiederhergestellt werden. Dies führt zu kürzeren Wiederherstellungszeiten, als wenn das Volume zu 100% voll ist.

  • ZFS verfügt über eine Hintergrundbereinigung, mit der sichergestellt wird, dass Ihre Daten auf der Festplatte konsistent bleiben und alle Probleme behoben werden, bevor sie zu Datenverlusten führen.

  • ZFS-Dateisysteme befinden sich immer in einem konsistenten Zustand, sodass kein fsck erforderlich ist.

  • ZFS bietet mit seinen Snapshots und Klonen mehr Flexibilität und Funktionen als die von LVM angebotenen Snapshots.

Sie haben große Speicherpools für die Videoproduktion im Großformat auf einem Linux-, LVM- oder XFS-Stack ausgeführt. Ich habe die Erfahrung gemacht, dass es einfach ist, in die Mikroverwaltung Ihres Speichers einzusteigen. Dies kann zu großen Mengen an nicht verwendetem Speicherplatz und Zeit / Problemen bei der Verwaltung Ihrer logischen Volumes führen. Dies ist möglicherweise keine große Sache, wenn Sie einen Vollzeit-Speicheradministrator haben, der den Speicher mikroverwaltet. Ich habe jedoch festgestellt, dass der Poolspeicherungsansatz von ZFS diese Verwaltungsprobleme beseitigt.

3deinfluss
quelle
8

ZFS ist absolut erstaunlich. Ich verwende es als Heimdateiserver für einen HD-Dateiserver mit 5 x 1 TB und verwende es auch in der Produktion mit fast 32 TB Festplattenspeicher. Es ist schnell, einfach zu bedienen und bietet einen der besten Schutz vor Datenkorruption.

Wir verwenden OpenSolaris auf diesem Server insbesondere, weil wir Zugang zu neueren Funktionen haben wollten und weil es das neue Paketverwaltungssystem und die Möglichkeit zur Aktualisierung bot.

X-Istence
quelle
7

Welches Betriebssystem möchten Sie ausführen? Oder ist das ein weiterer Teil der Überlegung? Wenn Sie mit Solaris arbeiten, ist XFS meines Wissens nicht einmal eine Option. Wie planen Sie die Verwendung von ZFS, wenn Sie nicht mit Solaris arbeiten? Auf anderen Plattformen ist der Support begrenzt.

Wenn es sich um einen Linux-Server handelt, würde ich mich persönlich an Ext3 halten, schon allein deshalb, weil dort die meisten Tests durchgeführt werden. zfs-fuse ist noch sehr jung. Außerdem hatte ich einmal Probleme mit XFS, als ein Fehler nach einem Kernel-Update zu einer Datenbeschädigung führte. Die Vorteile von XFS gegenüber Ext3 überwogen definitiv nicht die Kosten für die Wiederherstellung der Maschine, die sich in einem entfernten Rechenzentrum befand.

Kjetil Limkjær
quelle
6
FreeBSD hat eine ausgereifte native Portierung von ZFS
Brian Gianforcaro
7
wiki.freebsd.org/ZFSKnownProblems Ich denke, Ihre Definition von reif unterscheidet sich möglicherweise von meiner :-) Vielleicht würde ich es in Betracht ziehen, nachdem 8.0 veröffentlicht wurde.
Kjetil Limkjær
9
ext3 mit 16TB? Nein nein Nein. TU es nicht. Du wirst weinen. ZFS oder XFS sind meiner Meinung nach die besten Dateisysteme. Verwenden Sie ZFS, wenn Sie können (führen Sie es nicht unter Linux aus). Ich sage dies mit viel Erfahrung auf großen Volumes unter Linux und Solaris über 5 Jahre.
Thomas
3
FreeBSD 7.2 nach 20090601 hat die meisten Probleme mit ZFSKnownProblems beseitigt. Wenn Sie die AMD64-Version des Betriebssystems ausführen, ist sie jetzt stabil. In 8.0 hat FreeBSD ZFS als stabil genug für die Produktion markiert.
Walter
3
ZFS unter Linux ist ab sofort verfügbar ( zfsonlinux.org )
James Moore
7

Ich denke nicht, dass Sie sich auf Leistung konzentrieren sollten. Sind Ihre Daten mit XFS, ext4 usw. sicher? Nein. Lesen Sie diese Doktorarbeit und Forschungsarbeiten:

XFS ist nicht sicher gegen Datenkorruption: pages.cs.wisc.edu/~vshree/xfs.pdf

Und ext3, JFS, ReiserFS usw. sind es auch nicht. "Ich bin auf die faszinierende Doktorarbeit gestoßen von Vijayan Prabhakaran, IRON File Systems, das analysiert, wie fünf Standard-Journal-Dateisysteme - NTFS, ext3, ReiserFS, JFS und XFS - mit Speicherproblemen umgehen.

Kurz gesagt stellte er fest, dass alle Dateisysteme vorhanden sind

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

Aber ZFS schützt Ihre Daten erfolgreich. Hier ist ein Forschungsbericht dazu: zdnet.com/blog/storage/zfs-data-integrity-tested/811


quelle
5

Keine FS-orientierte Antwort, aber beachten Sie, dass eine Reihe von Festplattencontrollern nicht mit mehr als 2 TB LUNS / logischen Festplatten zurechtkommt - dies kann die Art und Weise, wie Sie Ihren Speicher organisieren, erheblich einschränken. Ich wollte nur, dass Sie sich dessen bewusst sind, damit Sie Ihr System Ende-zu-Ende überprüfen können, um sicherzustellen, dass es durchgehend mit 16 TB auskommt.

Chopper3
quelle
1

Es hängt davon ab, welche Funktionen Sie möchten ..., die beiden sinnvollen Optionen sind xfs und zfs, wie Sie sagten, der xfs-Code ist ziemlich gut getestet. Ich habe ihn vor 8 Jahren zum ersten Mal unter IRIX verwendet

Es ist möglich, Snapshots von xfs zu erhalten (mit lvm und xfs_freeze)

Es ist möglich, ein separates Protokollierungsgerät zu haben, z. B. eine SSD

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

Große xfs benötigen traditionell viel Speicher zum Überprüfen

Das Problem, dass Nullen auftauchten, war ein "Sicherheits" -Feature, von dem ich glaube, dass es vor einiger Zeit verschwunden ist.

James
quelle
1

Abgesehen von dem, was bereits erwähnt wurde, ist xfs auf MD-Basis-RAID unter Performance-Gesichtspunkten besser als zfs auf Streaming-Medien. Ich habe genau die gleiche Hardware für ein halbes Jahrzehnt mit xfs und ungefähr die gleiche Zeit mit zfs auf meinem Medienserver verwendet. Auf dem Intel Atom 330 mit xfs erlebe ich nie stuter, auf zfs bei komplexen Szenen kann die gleiche Hardware nicht mithalten und fängt an, Frames abzulegen.

user718960
quelle
0

Anstatt Ihre eigene zu bauen, ist die Sun 7410 alias Toro eine Alternative. Es hat einige sehr nützliche Software, die mit der Lösung gebündelt wird.

Jauder Ho
quelle
0

Leute, vergessen wir nicht die neueste Ergänzung zu zfs: Deduplizierung. Und lassen Sie uns on the fly über iscsi, nfs oder smb sharing sprechen. Wie bereits erwähnt, blockieren Exporte von zfs-Dateisystemen, Snapshots, raidz (= raid5) -Prüfsumme, dynamische Streifenbreite, Cache-Verwaltung und viele andere. Ich stimme für zfs.

PiL
quelle