Ext4 vs. XFS vs. Btrfs vs. ZFS für NAS

Ext4 vs. XFS vs. Btrfs vs. ZFS für NAS

Mein Anwendungsfall: Ich habe Ubuntu Server 18.04 auf einer M.2-SSD installiert. Ich habe eine 4-TB-Festplatte, die ich als Speicher hinzufügen möchte. Da sie hauptsächlich für große Mediendateien und Backups gedacht ist, wird sie nicht sehr oft beschrieben.

Welches Dateisystem ist Ihrer Meinung nach für diesen Anwendungsfall am besten geeignet?

Meine führenden Kandidaten sind Ext3/4, XFS, Btrfs und ZFS (Sie können gerne für einen anderen argumentieren).

Ich frage nicht: „Was ist das beste Dateisystem?“ – So etwas wie „das beste“ gibt es nicht. Ich frage die Leute nur, welches Dateisystem für diesen Anwendungsfall am besten geeignet sein könnte. Bitte versuchen Sie Folgendes einzuschließen:

  • Gibt es irgendwelche Nachteile oder Risiken? Ich habe gehört, dass XFS bei einem Stromausfall Daten beschädigen kann. Dasselbe gilt für ZFS ohne ECC-RAM.
  • Ist es möglich, RAID-1 später hinzuzufügen, ohne Daten zu verlieren? Ich habe im Moment nicht genug Geld für eine weitere Festplatte (ich habe sie für ein externes Laufwerk verwendet; RAID ersetzt keine Backups), aber ich werde vielleicht später eine hinzufügen. Das ist keine Voraussetzung, nur etwas, das nett sein könnte.
  • Wie hoch ist die Lese-/Schreibleistung? Btrfs würde wahrscheinlich die meisten meiner Anforderungen erfüllen, ist aber in den Phoronix-Benchmarks sehr langsam. XFS hat eine beeindruckende Leistung, aber ich habe gehört, dass es zu Datenverlust führen kann.

Danke für deinen Rat.

Antwort1

Ich verwende im Allgemeinen eines der folgenden beiden Dateisysteme:

  • XFS für alles, was nicht gut mit CoW funktioniert (oder für virtuelle Maschinen, deren Datenspeicher sich bereits auf einem CoW-Dateisystem befindet) oder wenn extrem schnelle direkte E/A erforderlich ist;

  • ZFS für alles andere.

Für Ihren Anwendungsfall würde ich ZFS verwenden, insbesondere wenn man bedenkt, dass Ubuntu 18.04 es bereits ausliefert. Da Sie problemlos ein weiteres Mirror-Bein an ein bereits vorhandenes Gerät anschließen können, ist ZFS hierfür sehr gut geeignet. Nennen wir Ihre Festplatte beispielsweise nvme0p1:

  • zpool create tank /dev/nvme0p1Erstellen Sie Ihren einzelnen vdev-Pool namens „Tank“.
  • zpool attach tank <newdev> /dev/nvme0p1ermöglicht die Spiegelung.

Wenn Sie aus irgendwelchen Gründen ZFS nicht verwenden möchten/können, sind MDRAID und XFS Ihre Freunde:

  • mdadm --create /dev/md200 -l raid1 -n 2 /dev/nvme0p1 missingerstellt ein RAID1-Array mit einem fehlenden Bein (siehe Nr. 1);
  • mdadm --manage /dev/md200 --add <newdev>fügt ein neues Spiegelbein hinzu (bildet ein komplettes RAID1, siehe #2)

Nachdem Sie das Array erstellt haben, können Sie es mit XFS formatieren übermkfs.xfs

Ich tuenichtempfehlen die Verwendung von BTRFS, da sowohl die Leistung als auch die Belastbarkeit unterdurchschnittlich sind. Zum Beispiel aus demDebian-Wiki:

Derzeit (07.07.2019, Linux ≤ 5.1.16) gibt es einen Fehler, der dazu führt, dass ein RAID-1-Profil mit zwei Festplatten für immer schreibgeschützt wird, wenn es zum zweiten Mal in einem herabgesetzten Zustand gemountet wird – beispielsweise aufgrund einer fehlenden/defekten/SATA-Link-Reset-Festplatte.

Bitte beachten Sie auch, dass kommerzielle NAS-Anbieter, die BTRFS verwenden (sprich: Synology), keine eigene, integrierte RAID-Funktion verwenden. Stattdessen nutzen sie die bewährte Linux MDRAID-Schicht.

BEARBEITEN:Während manche behaupten, dass XFS anfällig für Datenverlust ist, ist das einfach nicht richtig. Im Vergleich zu ext3 können bei XFS (und anderen Dateisystemen, die verzögerte Zuordnung unterstützen) im Falle eines unkontrollierten Ausschaltens mehr nicht synchronisierte Daten verloren gehen. Aber synchronisierte Daten (d. h. wichtige Schreibvorgänge) sind 100 % sicher. Darüber hinaus verschlimmert ein bestimmter Fehler den Datenverlust bei XFSwurde vor über 10 Jahren korrigiert. Abgesehen von diesem Fehler,beliebigDateisystem mit verzögerter Zuweisung (einschließlich ext4 und btrfs)WilleIm Falle einer unkontrollierten Stromabschaltung gehen eine erhebliche Anzahl nicht synchronisierter Daten verloren.

Im Vergleich zu ext4 verfügt XFS über unbegrenzte Inode-Zuweisung, erweiterte Zuweisungshinweise (falls Sie diese benötigen) und in der neuesten Version über Reflink-Unterstützung (diese müssen jedoch in Ubuntu 18.04 explizit aktiviert werden, sieheManpage für mkfs.xfsfür weitere Informationen)


1: Beispieldatei /proc/mdstatmit fehlendem Gerät:

Personalities : [raid1]
md200 : active raid1 loop0[0]
      65408 blocks super 1.2 [2/1] [U_]

unused devices: <none>

2: /proc/mdstatDatei nach dem Hinzufügen eines zweiten Geräts

Personalities : [raid1]
md200 : active raid1 loop1[2] loop0[0]
      65408 blocks super 1.2 [2/2] [UU]

unused devices: <none>

Antwort2

Das sieht eher aus wie eine Frage fürSuperuserals für Serverfault, aber einige der Ideen gelten auch für diese Site, daher werde ich versuchen, einige der Fragen zu beantworten:

  • XFS hat den Ruf, Stromausfälle nicht zu mögen. Seitdem ist viel passiert und RedHat, Oracle und andere verwenden es heute als Standarddateisystem. Es würde mich also nicht überraschen, wenn dies heute ein deutlich kleineres Problem darstellt als früher. Insbesondere wenn Sie eine anständige Sicherungsrichtlinie haben und Ihr Anwendungsfall von der Art ist, bei der dieses Dateisystem Geschwindigkeitsvorteile mit sich bringt, kann es das mögliche Risiko wert sein.
  • ZFS ohne ECC-RAM hat immer noch sehr schöne Funktionen, aber Sie laufen Gefahr, einige Fälle von fehlerhaften Daten zu übersehen. Ich habe ZFS mehrere Jahre lang ohne ECC-Speicher in einer ähnlichen Heimumgebung wie der von Ihnen beschriebenen ausgeführt und nie einen offensichtlichen Datenverlust erlebt, aber andererseits habe ich auf diesem Datenträger nicht gerade kritische Daten gespeichert. Ich bin seitdem auf richtige Serverhardware umgestiegen und fühle mich jetzt viel wohler dabei, meinen Speicher tatsächlich für wichtige Dinge zu verwenden.
  • Mit ZFS sollten Sie einfach in der Lage sein, eine Festplatte zu einem Single-Disk-Pool hinzuzufügen, um einen Spiegel zu erstellen. Ich habe es in der Praxis nicht ausprobiert, aber ich erhalte mehrere Suchergebnisse, die Erfolg melden, wenn ichAbonnieren. Bei anderen Systemen bin ich mir nicht sicher, aber solange Sie eine Art Volume-Manager unter Ihrem Dateisystem haben, sollte der Wechsel von einer einzelnen Festplatte zu RAID1 ein Kinderspiel sein.
  • Die CoW-basierten Dateisysteme (zfs, btrfs) sind langsamer als Systeme mit weniger Funktionen und sind stärker von ausreichend leistungsfähiger Hardware abhängig.

Wie in einem Unternehmensumfeld würde ich mir auf jeden Fall die Zeit nehmen, Benchmarks mit der von mir erwarteten Last auszuführen, um aus erster Hand Erfahrungen mit der Leistung im Vergleich zu den Funktionen zu sammeln.

Antwort3

Ich würde das Journaling-Dateisystem verwenden, das das betreffende Betriebssystem als Standard vorschlägt, es sei denn, ich hätte triftige Gründe, dies nicht zu tun. Bei Ubuntu war es das letzte Mal, als ich nachgesehen habe, ext4.

Der Grund ist einfach: Die Standardeinstellung wird wahrscheinlich am häufigsten verwendet, daher ist die Wahrscheinlichkeit am größten, dass Fehler gefunden und behoben wurden. Die Unterschiede zwischen den von Ihnen genannten Dateisystemen sind bei der alltäglichen Verwendung wahrscheinlich nicht von großer Bedeutung. Wenn die Leistung sehr wichtig ist, sollten Sie stattdessen mehr Speicher anschaffen, damit Ihr Betriebssystem mehr Platz für die Zwischenspeicherung hat.

Wenn Sie das Laufwerk allerdings „auf mehreren“ Betriebssystemen verwenden möchten, empfehle ich Ihnen, sich zwei zu besorgen oder zumindest das vorhandene Laufwerk in zwei physische Partitionen aufzuteilen und dann entweder NTFS oder exFAT auf der Festplatte zu verwenden, auf der Sie Medien speichern.

Antwort4

Sie können ein XFS-formatiertes Dateisystem auf etwas erstellen, das ein per Mdadm erstellter Spiegel ist, ohne einen echten Spiegel zu haben.

Erstellen Sie die Partition als Spiegel mit drei Spiegeln, wobei zwei fehlen. Zu einem späteren Zeitpunkt können Sie die beiden fehlenden hinzufügen.

verwandte Informationen