Welche Dateisysteme Sie zwischen EXT4, Btrfs und ZFS für Server wählen sollten

Auswahl des richtigen Dateisystems für die Verwendung auf a NAS-Server ist eine sehr wichtige Entscheidung, je nach Verwendungszweck können wir das eine oder andere Dateisystem auswählen, da es uns eine höhere Leistung, bessere Datenintegrität und andere Funktionen bieten könnte. Generell unterstützen NAS-Server-Betriebssysteme wie QNAP, Asustor oder Synology das beliebte EXT4-Dateisystem, aber auch Btrfs und sogar ZFS. Welches Dateisystem sollte ich für meinen Heim- oder Geschäfts-NAS-Server wählen?

Was ist ein Dateisystem und wozu dienen sie?

EXT4, Btrfs und ZFS für Server

Alle Betriebssysteme enthalten ein Dateisystem oder mehrere verschiedene Dateisysteme zur Steuerung wie Informationen gespeichert und von verschiedenen Medien abgerufen werden , wie Festplatten, SSD Laufwerke und auch Wechselspeicherlaufwerke wie USB-Sticks oder Speicherkarten. Erinnerung. Wenn wir kein Dateisystem hätten, wüsste das Betriebssystem nicht, wo bestimmte aufgezeichnete Daten aufhören und wo die nächsten beginnen, daher ist dies einer der wichtigsten Aspekte, den wir berücksichtigen müssen.

Die Hauptfunktionen eines jeden Dateisystems bestehen darin, den verschiedenen Dateien Speicherplatz zuzuweisen, freien Speicherplatz zu verwalten und die gespeicherten Informationen so zu strukturieren, dass sie einfach und schnell zugänglich sind. Ein weiterer sehr wichtiger Aspekt, den wir berücksichtigen müssen, sind die Sektoren, genauer gesagt ihre Größe, in denen die Informationen gespeichert werden. Andere Merkmale der Dateisysteme sind, dass sie Methoden zum Erstellen, Kopieren, Verschieben, Umbenennen und sogar Löschen der Dateien und Verzeichnisse bieten, die wir auf den Medien haben. Dateisysteme enthalten auch einige sehr wichtige Funktionen wie Access Control Lists (ACL) zur Kontrolle von Berechtigungen, Mechanismen zur Vermeidung oder Minderung von Fragmentierung, die Möglichkeit von Journaling (verbessert die Integrität des Dateisystems) und die Möglichkeit, unter anderem Festplattenkontingente zu konfigurieren Funktionalitäten.

Wir haben derzeit insgesamt drei verschiedene Dateisysteme, die in NAS-Servern unterschiedlicher Hersteller weit verbreitet sind und natürlich auch in Linux und FreeBSD-basierte Betriebssysteme für die Datenspeicherung auf Servern, diese Dateisysteme sind EXT4 , Btrfs und ZFS, die drei Dateisysteme haben unterschiedliche Eigenschaften, und einige funktionieren in verschiedenen Szenarien besser.

Ext4

EXT4 ist das Hauptdateisystem aller Linux-basierten Betriebssysteme, dieses Dateisystem ist transaktional (mit Journaling) und enthält sehr wichtige Verbesserungen im Vergleich zu seinen Vorgängern wie die Unterstützung größerer Volumes, niedriger CPU Nutzung und Verbesserungen der Lese- und Schreibgeschwindigkeit. Einige sehr wichtige Eigenschaften von EXT4 sind, dass es die Reservierung von Festplattenspeicher ermöglicht, ohne dass alles mit Nullen gefüllt werden muss, was normalerweise in anderen Dateisystemen gemacht wurde. Außerdem ist dieser reservierte Speicherplatz normalerweise zusammenhängend, um die Dateisystemfragmentierung, diese Funktion bezieht sich auf „Allocate-on-flush“ oder ist als verzögerte Speicherreservierung bekannt. Dies besteht darin, den Speicherblock gerade dann zu reservieren, wenn er auf die Festplatte geschrieben werden soll, dies verbessert die Leistung und reduziert die Fragmentierung.

EXT4 verfügt über Techniken zur Vermeidung von Fragmentierung wie die von uns erläuterte, aber es verfügt auch über ein Tool zum Defragmentieren einzelner Dateien oder des gesamten Volumes, ohne die Festplatte aushängen zu müssen, obwohl logischerweise während der Defragmentierung wir haben werden ein langsameres Dateisystem.

Dieses Dateisystem hat die folgenden Eigenschaften und Grenzen:

  • Maximale Dateigröße: 16TiB mit 4K-Blöcken.
  • Maximale Anzahl von Dateien: 4 Milliarden
  • Maximale Dateinamengröße: 255 Byte
  • Maximale Volumengröße: 1EiB
  • Transparente Datenverschlüsselung: ja
  • Beim Schreiben kopieren: nein
  • Transparente Kompression: nein
  • Transparente Deduplizierung: nein

Nachdem wir die Hauptfunktionen von EXT4 kennengelernt haben, werden wir über Btrfs sprechen, das als natürlicher Nachfolger des EXT4-Dateisystems bekannt ist.

Btrfs

Das Btrfs-Dateisystem wurde als natürlicher Nachfolger von EXT4 geboren, sein Ziel ist es, es zu ersetzen, indem es so viele seiner Einschränkungen beseitigt, insbesondere in Bezug auf die maximale Größe der Dateien. Die Hauptmerkmale dieses Dateisystems sind, dass es hauptsächlich auf Server ausgerichtet ist, es hat eine dynamische Zuweisung von Inodes, es ist nicht notwendig, beim Erstellen des Dateisystems eine maximale Anzahl festzulegen, wie es bei EXT4 der Fall ist, es ermöglicht die Konfiguration von Volumes in ein sehr fortgeschrittenes, mit der Fähigkeit, Snapshots oder beschreibbare Snapshots zu konfigurieren und ermöglicht auch Snapshots von Snapshots. Andere Funktionen sind, dass es Spiegelung und Striping auf Zielebene ermöglicht, wenn wir über mehrere Festplatten verfügen, und dass es in der Lage ist, Daten- und Metadatenüberprüfungen in Echtzeit durchzuführen, um die Datenintegrität zu maximieren.

Dieses Dateisystem verwendet das Copy-on-Write aller Daten und Metadaten der Registrierung und ermöglicht auch die Inline-Komprimierung, um Speicherplatz zu sparen. Btrfs kann das Dateisystem überprüfen, ohne es aushängen zu müssen, und wenn wir es aushängen, ist die Überprüfung sehr schnell, natürlich hat es einen optimierten Modus für SSD-Laufwerke und ermöglicht es, es zu defragmentieren, ohne es auszuhängen.

Dieses Dateisystem hat die folgenden Eigenschaften und Grenzen:

  • Maximale Dateigröße: 16EiB.
  • Maximale Anzahl von Dateien: 18 Billionen.
  • Maximale Dateinamengröße: 255 Byte
  • Maximale Datenträgergröße: 16EiB.
  • Transparente Datenverschlüsselung: nein
  • Beim Schreiben kopieren: ja
  • Transparente Komprimierung: ja
  • Deduplizierung: ja

Nachdem Sie nun die Hauptfunktionen von Btrfs kennen, sprechen wir über ZFS, eines der fortschrittlichsten Dateisysteme, die für Linux- und Unix-Betriebssysteme verfügbar sind.

ZFS

Das ZFS-Dateisystem ist eines der fortschrittlichsten, das heute existiert, es zeichnet sich durch seine große Kapazität, durch seine große Sicherheit in Bezug auf die Datenintegrität und durch seine große Leistung beim Lesen und Schreiben aus. ZFS verwendet „Storage Pools“ oder auch als vdevs bekannt, im Gegensatz zu herkömmlichen Dateisystemen, die auf einem Hardwaregerät wie einer Festplatte platziert werden und daher einen separaten Volume-Manager benötigen. Dank dieser vdevs können wir verschiedene „Pools“ einfachen Typs konfigurieren, spiegeln oder das beliebte RAID-Z verwenden, um sowohl Datenredundanz als auch höhere Leistung bereitzustellen. Darüber hinaus kann das ZFS-Dateisystem mit SSD-Laufwerken ausgestattet werden, die als Cache fungieren oder auch als „ZFS Intent Log“ oder „ZIL“ bekannt sind, um die Leistung weiter zu verbessern.

Dieses Dateisystem verwendet ein Copy-on-Write-Transaktionsmodell, das bedeutet, dass die aktiven Daten niemals überschrieben werden, sondern an einen anderen Ort kopiert und die geänderten Daten dorthin geschrieben werden, mit dem Ziel, die Dateiintegrität erheblich zu verbessern der Fall eines Stromausfalls. Wir müssen auch berücksichtigen, dass die ZIL verwendet wird, um den Overhead zu reduzieren, wenn synchrone Schreibvorgänge erforderlich sind. Der negative Teil von CoW ist, dass wir eine hohe Fragmentierung haben werden und ZFS derzeit keine Methode zum Defragmentieren des Dateisystems hat, obwohl wir in den nächsten Versionen daran arbeiten, diesen Aspekt zu verbessern.

Ein weiteres Merkmal von ZFS ist, dass das Dateisystem als Datensatz bezeichnet wird, der sich in einem «Speicherpool» befindet. Dieser Datensatz kann vom Dateisystemtyp sein, der wie ein normales und aktuelles Volume ist, oder auch wie ein zvol, der ein Gerät wäre von Blöcken. Je nach Bedarf müssen wir den einen oder anderen Datensatztyp erstellen. Ein weiteres sehr wichtiges Merkmal von Datensätzen sind Snapshots oder auch Snapshots genannt. Das ZFS-Dateisystem ist in der Lage, insgesamt 281 Milliarden Snapshots aufzunehmen, außerdem werden sie aufgrund der internen Erstellung dieses Dateisystems in Echtzeit erstellt.

Dieses Dateisystem ermöglicht es uns, die Komprimierung online zu konfigurieren, indem wir verschiedene Komprimierungsalgorithmen verwenden, um die Lese- und Schreibgeschwindigkeit zu verbessern oder die Komprimierung zu verbessern und mehr Speicherplatz zu sparen. Wir können auch die Deduplizierungsfunktion konfigurieren, eine Funktion, mit der wir viel Speicherplatz sparen können. Der negative Teil ist, dass sie eine große Menge an Speicherplatz verbraucht RAM, sodass Sie möglicherweise nicht allzu daran interessiert sind, diese Funktion zu aktivieren.

Dieses Dateisystem hat die folgenden Eigenschaften und Grenzen:

  • Maximale Dateigröße: 16EiB.
  • Maximale Anzahl von Dateien: 281 Milliarden.
  • Maximale Dateinamengröße: 255 Byte
  • Maximale Datenträgergröße: 16EiB.
  • Datenverschlüsselung: ja
  • Beim Schreiben kopieren: ja
  • Transparent transparente Komprimierung: ja
  • Transparente Deduplizierung: ja

In diesem Artikel haben wir dieses ZFS-Dateisystem ausführlich erklärt, sowohl seine Eigenschaften als auch seine Konfiguration in verschiedenen Betriebssystemen, die sich an NAS-Servern orientieren. Nachdem wir nun wissen, welche die drei am häufigsten verwendeten Dateisysteme für NAS-Server sind, werfen wir einen Blick auf ihre Stärken und Schwächen.

Welches Dateisystem soll ich für mein NAS wählen?

Nachdem wir die Hauptmerkmale der verschiedenen Dateisysteme gesehen haben, die wir in einem Heim- und / oder professionellen NAS-Server verwenden können, werden wir die Vor- und Nachteile jedes einzelnen sehen.

Das EXT4-Dateisystem ist das älteste von allen und mehr als bewährt, daher ist dieses Dateisystem sehr stabil, tatsächlich ist es immer noch das Standarddateisystem für die überwiegende Mehrheit der Linux-Distributionen wie Debian, Ubuntu oder die Betriebssysteme von QNAP, Synology und Asustor. Wenn Sie große Datenmengen speichern, RAID und alles, was dazu gehört, erstellen und die beste Lese-/Schreibleistung bei geringstmöglichem Ressourcenverbrauch erzielen müssen, erfüllt EXT4 mit Sicherheit alle Ihre Anforderungen. Dieses Dateisystem beinhaltet Journaling, so dass Sie bei einem Stromausfall keinen Datenverlust haben sollten, jedoch sind Btrfs und ZFS in dieser Hinsicht deutlich besser.

Btrfs verbessert viele negative Aspekte von EXT4, wie z. B. Dateigrößenbeschränkungen und mehr. Dieses Dateisystem verwendet Copy-on-Write und wurde für sehr große Server entwickelt, auf denen wir viele Informationen speichern werden, daher haben wir viele erweiterte Funktionen die EXT4 nicht enthält, wie transparente Datenverschlüsselung, Komprimierung und Deduplizierung. Wir müssen auch berücksichtigen, dass es integrierte Snapshots enthält, was EXT4 nicht hat, es unterstützt RAID und eine flexible Zuweisung der Inodes. Es wurde jedoch bestätigt, dass dieses Btrfs-Dateisystem mehr Systemressourcen verbraucht als EXT4, außerdem erreichen wir unter den gleichen Bedingungen (gleiche Hardware und gleiche Art von zu übertragenden Dateien) eine geringere Lese- und Schreibgeschwindigkeit.

Das ZFS-Dateisystem ist eines der fortschrittlichsten, das derzeit existiert. Dieses Dateisystem ähnelt Btrfs, enthält jedoch wirklich interessante Funktionen wie die Möglichkeit, dem aktuellen Speicher neue Geräte hinzuzufügen und sofort neuen Speicherplatz hinzuzufügen, wodurch das „RAID“ entsteht hatten wir in den anderen Dateisystemen. ZFS steht für Skalierbarkeit, große Datenspeicherkapazität, Schutz vor Datenkorruption (Integrität) sowie effiziente Datenkomprimierung, Deduplizierung und schnelle Snapshot-Funktionen. Weitere Merkmale sind, dass Sie die Integrität kontinuierlich überprüfen und eine automatische Reparatur auf völlig transparente Weise durchführen können. Der negative Teil von ZFS ist, dass es viele Ressourcen verbraucht, insbesondere RAM-Speicher. Wenn Sie die Deduplizierung aktivieren, haben Sie außerdem einen erheblichen zusätzlichen RAM-Verbrauch.

Wenn Sie einen Low-Mid-Range-NAS-Server haben, ist es klar, dass Sie das Dateisystem EXT4 verwenden sollten, im Falle eines Mid-High- oder High-End-NAS können Sie Btrfs oder ZFS wählen, je nachdem, ob Ihr Systembetrieb unterstützt dies. Wenn Sie ZFS verwenden möchten, müssen Sie bedenken, dass die Deduplizierung viel RAM verbraucht. Dies ist ein Handicap, das wir bezahlen müssen, um viel Speicherplatz zu sparen.