Btrfs

Der Vergleich von Btrfs vs. Ext4-Dateisystemen

Der Vergleich von Btrfs vs. Ext4-Dateisystemen
Es gibt viele Dateisysteme für Linux. Die gängigsten sind Ext4, Btrfs, XFS, ZFS usw. Jedes der Dateisysteme hat seine Anwendungsfälle, Vor- und Nachteile. Möglicherweise fällt es Ihnen schwer zu entscheiden, welches Dateisystem Sie verwenden möchten.

In diesem Artikel vergleiche ich das Ext4- und das Btrfs-Dateisystem. Wenn Sie sich also nicht entscheiden können, ob Sie das Ext4-Dateisystem oder das Btrfs-Dateisystem verwenden möchten, dann

Einführung in die Ext4- und Btrfs-Dateisysteme:

Ext4-Dateisystem: Ext4 ist die vierte Version des Ext (Extended) Dateisystems. Es ist ein Nachfolger des Ext3-Dateisystems. Die erste Version des Ext-Dateisystems wurde 1992 für das Minix-Betriebssystem veröffentlicht. Es wurde später auf Linux-Betriebssysteme portiert. Das Ext4-Dateisystem wurde 2008 veröffentlicht. Ext4 ist ein Journaled-Dateisystem.

Btrfs-Dateisystem: Btrfs oder das B-Tree-Dateisystem ist ein modernes Copy-on-Write (CoW)-Dateisystem. Es ist neu im Vergleich zum Ext-Dateisystem. Es wurde 2007 für die Linux-Betriebssysteme der Oracle Corporation entwickelt. Im November 2013 wurde das Btrfs-Dateisystem für den Linux-Kernel als stabil erklärt.

Funktionsvergleiche der Ext4- und Btrfs-Dateisysteme:

Das Ext4- und Btrfs-Dateisystem wurde entwickelt, um verschiedene Arten von Problemen zu lösen. Das Designziel des Ext4-Dateisystems war also ein anderes als das des Btrfs-Dateisystems. Trotzdem sind es Dateisysteme. Sie haben einige Ähnlichkeiten, die wir vergleichen können.

ich. Maximale Partitionsgröße: Das Ext4-Dateisystem unterstützt Partitionsgrößen bis zu 1 EiB.

Das Btrfs-Dateisystem unterstützt Partitionsgrößen bis zu 16 EiB.

ii. Maximale Dateigröße: Das Ext4-Dateisystem unterstützt Dateigrößen bis zu 16 TiB (für Standardblockgröße von 4 KiB).

Das Btrfs-Dateisystem unterstützt Dateigrößen bis zu 16 EiB.

iii. Maximale Dateinamenlänge: Das Ext4-Dateisystem unterstützt bis zu 255 Zeichen (255 Bytes) lange Dateinamen.

Das Btrfs-Dateisystem unterstützt auch bis zu 255 Zeichen (255 Bytes) lange Dateinamen.

iv. Zulässige Zeichen in Verzeichnis- und Dateinamen: Das Ext4-Dateisystem erlaubt alle Zeichen außer dem / und NULL (\0) Zeichen in Verzeichnis- und Dateinamen.

HINWEIS: Sie können keine Datei oder kein Verzeichnis mit dem Namen erstellen. und… entweder im Ext4- oder Btrfs-Dateisystem.

v. Maximale Pfadlänge: Das Ext4-Dateisystem hat keine Begrenzung der Pfadlänge einer Datei oder eines Verzeichnisses. So können Sie sehr, sehr tiefe Verzeichnisstrukturen erstellen und Ihre Dateien dort aufbewahren.

Das gleiche gilt für das Btrfs-Dateisystem.

vi. Maximale Anzahl von Dateien: Sie können maximal 232 (= 4.294.967.296 ~= 4 Milliarden) Dateien in einem Ext4-Dateisystem erstellen.

Sie können maximal 264 (= 18.446.744.073.709.551.616 ~= 18 Trillionen) Dateien in einem Btrfs-Dateisystem erstellen.

vii. Inode-Zuordnungsmethode: Ein Inode ist eine Dateisystem-Datenstruktur, die verwendet wird, um eine Datei oder ein Verzeichnis zu beschreiben. Ein Verzeichnis oder eine Datei benötigt also 1 Inode. 2 Verzeichnisse oder 2 Dateien benötigen 2 Inodes.

Im Ext4-Dateisystem definieren Sie die Anzahl der Inodes, die das Dateisystem unterstützen kann, während Sie das Dateisystem erstellen. Sie können es nicht ändern, nachdem das Dateisystem erstellt wurde. Wenn Sie zu viele kleine Dateien erstellen, haben Sie möglicherweise noch freien Speicherplatz auf Ihrem Dateisystem, aber Sie können keine neuen Dateien/Verzeichnisse erstellen, es sei denn, Sie haben freie Inodes. Dies ist eine große Einschränkung des Ext4-Dateisystems.

Im Btrfs-Dateisystem ist die Inode-Zuordnung flexibel. Das Dateisystem kann so viele Inodes wie nötig hinzufügen. So werden Ihnen nie die Inodes ausgehen.

viii. Prüfsumme/ECC-Unterstützung: Das Ext4-Dateisystem führt keine Prüfsumme der auf dem Dateisystem gespeicherten Daten.

Das Btrfs-Dateisystem behält die crc32c-Prüfsumme der im Dateisystem gespeicherten Daten bei. Im Falle einer Datenbeschädigung kann das Btrfs-Dateisystem diese erkennen und die beschädigte Datei wiederherstellen.

ix. Unterstützung für Journal und Copy-on-Write: Das Ext4-Dateisystem ist ein Journaling-Dateisystem. Es hat keine Copy-on-Write (CoW)-Unterstützung.

Das Btrfs-Dateisystem ist ein Copy-on-Write (CoW)-Dateisystem und hat keine Journalunterstützung.

x. Dateisystem-Snapshot: Das Ext4-Dateisystem kann keine Snapshots des Dateisystems erstellen.

Das Btrfs-Dateisystem kann Snapshots erstellen. Sie können schreibgeschützte Snapshots und beschreibbare Snapshots erstellen.

HINWEIS: Dateisystem-Snapshot ist eine wichtige Funktion. Mit dieser Funktion können Sie einen Snapshot Ihres Dateisystems erstellen, bevor Sie etwas riskantes ausprobieren. Wenn die Dinge nicht wie geplant laufen, können Sie in einen frühen Zustand zurückkehren, in dem alles funktioniert hat. Dies ist eine integrierte Funktion des Btrfs-Dateisystems. Sie benötigen keine Tools/Software von Drittanbietern, um dies auf einem Btrfs-Dateisystem zu tun.

xi. Verschlüsselung auf Dateisystemebene: Das Ext4-Dateisystem bietet experimentelle Unterstützung für die Verschlüsselung auf Dateisystemebene.

Das Btrfs-Dateisystem unterstützt keine Verschlüsselung auf Dateisystemebene.

xii. Deduplizierung auf Dateisystemebene: Das Ext4-Dateisystem bietet keine Unterstützung für Deduplizierung.

Das Btrfs-Dateisystem unterstützt die Deduplizierung auf Dateisystemebene. Du benötigst dafür keine Tools/Software von Drittanbietern.

HINWEIS: Depulierung ist eine Technik, um doppelte Kopien von Daten aus dem Dateisystem zu entfernen/zu entfernen und nur eine Kopie der Daten (eindeutige Daten) auf dem Dateisystem zu behalten. Diese Technik wird verwendet, um Speicherplatz zu sparen.

xiii. Unterstützung mehrerer Geräte: Das Btrfs-Dateisystem unterstützt mehrere Geräte und verfügt über eine integrierte RAID-Unterstützung. Das Btrfs-Dateisystem verfügt über einen integrierten Logical Volume Manager (LVM), der verwendet wird, um mehrere Speichergeräte oder Partitionen zu einem einzelnen Btrfs-Dateisystem hinzuzufügen. Ein einzelnes Btrfs-Dateisystem kann sich über mehrere Festplatten und Partitionen erstrecken.

Das Ext4-Dateisystem unterstützt nicht mehrere Geräte. Sie können ein einzelnes Ext4-Dateisystem nicht über mehrere Festplatten oder Partitionen verteilen. Um mehrere Speichergeräte und Partitionen in einem Ext4-Dateisystem zu kombinieren, müssen Sie logische Volume-Manager von Drittanbietern wie z LVM 2. Um RAID einzurichten, müssen Sie Tools von Drittanbietern wie DM-RAID oder MDADM verwenden.

xiv. Komprimierung auf Dateisystemebene: Das Ext4-Dateisystem verfügt nicht über eine integrierte Komprimierungsunterstützung auf Dateisystemebene.

Das Btrfs-Dateisystem verfügt über eine integrierte Komprimierungsunterstützung auf Dateisystemebene. Es kann ein einzelnes Verzeichnis oder eine einzelne Datei oder das gesamte Dateisystem komprimieren, um Speicherplatz zu sparen.

xv. Möglichkeiten zur Größenänderung des Offline-Dateisystems: Das Ext4-Dateisystem unterstützt das Wachstum des Offline-Dateisystems (Dateisystemgröße erhöhen) und das Verkleinern (Dateisystemgröße verringern).

Das Btrfs-Dateisystem unterstützt auch das Wachsen und Verkleinern des Offline-Dateisystems.

xvi. Möglichkeiten zur Online-Größenänderung des Dateisystems: Das Ext4-Dateisystem unterstützt das Online-Wachstum (Dateisystemgröße beim Einhängen erhöhen). Aber es hat keine Unterstützung für die Online-Dateisystemverkleinerung (Dateisystemgröße beim Einhängen verringern).

Sie können Btrfs-Dateisysteme online vergrößern (Dateisystemgröße erhöhen) und verkleinern (Dateisystemgröße verringern).

xvii. Sparse-Dateien: Sparse-File-Funktion spart Speicherplatz, wenn kleine Dateien (kleiner als die Blockgröße) im Dateisystem gespeichert werden. Das Ext4- und das Btrfs-Dateisystem unterstützen Sparse-Dateien.

xviii. Unterzuordnung blockieren: Das Ext4-Dateisystem unterstützt keine Blockunterzuweisung.

Das Btrfs-Dateisystem unterstützt die Blockunterzuweisung.

HINWEIS: Wenn ein Dateisystem große Dateien in einem Dateisystem speichert, wird die große Datei in Blöcke aufgeteilt und die Blöcke werden im Dateisystem gespeichert. Der letzte Block der Datei belegt nicht den gesamten Block. Dieser letzte Block wird Schwanzblock genannt called. Auch wenn viele kleine Dateien gespeichert werden, belegen sie nicht den gesamten Block. Es wird also viel Speicherplatz verschwendet. Die Unterzuweisung von Blöcken ist eine Methode, um Teile eines anderen Dateiblocks im Endblock (dem letzten Block einer anderen Datei, der nicht den gesamten Block belegte) zu speichern und Speicherplatz zu sparen.

xix. Schwanz verpackung: Das Ext4-Dateisystem unterstützt kein Tail-Packing.

Das Btrfs-Dateisystem unterstützt Tail-Packing tail.

HINWEIS: Tailpacking ist ein Teil der Blockunterzuweisung. Wie ich bereits besprochen habe, belegen kleine Dateien keinen ganzen Dateiblock. Um kleine Dateien effizient zu speichern (i.e. Programmquellcodes) im Dateisystem wird der Schwanzblock einer kleinen Datei verwendet, um andere kleine Dateien zu speichern. Tail Packing verbessert die Leistung des Dateisystems und spart viel Speicherplatz in einem Dateisystem, in dem viele kleine Dateien (i.e. Programmquellcodes) gespeichert.

xx. Erweiterungsbasiertes Dateisystem: Sowohl das Ext4- als auch das Btrfs-Dateisystem sind Extent-basierte Dateisysteme.

HINWEIS: Ein Extent ist ein zusammenhängender Bereich des Speichergeräts, der für eine Datei in einem Dateisystem reserviert ist. Extent-basierte Dateisysteme speichern große Dateien in einem zusammenhängenden Speicherbereich. Dies verbessert die Dateisystemleistung und erhöht die Speichereffizienz.

xxi. Variable Dateiblockgröße: Das Ext4-Dateisystem unterstützt feste Blockgrößen. Die Blockgröße wird eingestellt, bevor das Dateisystem erstellt wird. Sobald das Dateisystem erstellt wurde, können Sie die Blockgröße nicht mehr ändern.

Das Btrfs-Dateisystem unterstützt variable Blockgrößen. Das Dateisystem kann die bestmögliche Blockgröße zum Speichern einer Datei auf dem Dateisystem basierend auf der Größe der Datei bestimmen. Diese Funktion kann viel Speicherplatz sparen.

xxii. Zuordnen beim Spülen: Sowohl das Ext4- als auch das Btrfs-Dateisystem unterstützen allocate-on-flush.

HINWEIS: Das Dateisystem weist im Arbeitsspeicher des Computers etwas Pufferplatz zu. Bei Festplatten-Schreibanforderungen schreibt das Dateisystem die Datenblöcke nicht direkt auf das Speichergerät. Stattdessen speichert das Dateisystem die Datenblöcke im Pufferspeicher. Wenn der Pufferspeicher voll ist, schreibt das Dateisystem alle anstehenden Datenblöcke auf einmal auf das Speichergerät. Dies reduziert die CPU-Auslastung, beschleunigt das Schreiben von Festplatten und reduziert die Festplattenfragmentierung.

xxiii. TRIM-Unterstützung: Sowohl das Ext4- als auch das Btrfs-Dateisystem unterstützen TRIM. Dies ist eine sehr wichtige Funktion für SSD-Speichergeräte.

HINWEIS: Wenn Sie eine Datei von einer SSD entfernen, benachrichtigt der TRIM-Befehl das SSD-Speichergerät über die Seiten (Dateiblöcke), die nicht mehr benötigt werden. Die SSD löscht die nicht benötigten Seiten (Dateiblöcke) aus dem Flash-Speicher und bereitet die Seiten (Dateiblöcke) zum Speichern neuer Daten vor. Ohne TRIM-Unterstützung würde die SSD-Schreibgeschwindigkeit langsamer, wenn die SSD mit neuen Daten gefüllt wird.

Vorteile von Ext4 gegenüber Btrfs:

Das Ext4-Dateisystem ist ein sehr altes Dateisystem. Es wird seit langer, langer Zeit auf dem Linux-Betriebssystem verwendet. Aus diesem Grund ist das Ext4-Dateisystem sehr stabil. Das Ext4-Dateisystem ist immer noch das Standard-Dateisystem in vielen gängigen Linux-Distributionen (i.e. Ubuntu/Debian). Wenn Sie als normaler Linux-Benutzer einige Daten speichern müssen, können Sie die Augen geschlossen halten und das Ext4-Dateisystem verwenden. Das Ext4-Dateisystem unterstützt Journaling. Ihre Dateien sollten also auch bei einem Stromausfall sicher sein. Es ist ein gutes Dateisystem für den täglichen Gebrauch.

Vorteile von Btrfs gegenüber Ext4:

Das Btrfs-Dateisystem ist ein modernes Copy-on-Write (CoW)-Dateisystem, das für Speicherserver mit hoher Kapazität und Leistung entwickelt wurde. Es hat also viele erweiterte Funktionen, die das Ext4-Dateisystem nicht hat. Das Ext4-Dateisystem wurde als einfaches lokales Dateisystem konzipiert.

Die Hauptmerkmale des Btrfs-Dateisystems, die für alltägliche Linux-Benutzer nützlich sind, sind:

  1. Integrierte Snapshots auf Dateisystemebene.
  2. Unterstützung für mehrere Geräte.
  3. Integrierte RAID-Unterstützung.
  4. Flexible Inode-Zuordnung.
  5. Optimierungen zum Speichern kleinerer Dateien (Sparse-Dateien, Blockunterzuordnung, Tailpacking, variable Blockgröße).
  6. Integrierte Unterstützung für die Komprimierung auf Dateisystemebene.

Dies sind die Dateisystemfunktionen, für die Sie das Btrfs-Dateisystem anstelle des Ext4-Dateisystems verwenden können.

Fazit:

In diesem Artikel habe ich die Btrfs- und die Ext4-Dateisysteme verglichen. Ich habe die Hauptfunktionen des Btrfs- und Ext4-Dateisystems verglichen. Dieser Artikel soll Ihnen bei der Entscheidung zwischen dem Btrfs- und dem Ext4-Dateisystem helfen.

Verweise:

  1. ext4 - Wikipedia - https://de.Wikipedia.org/wiki/Ext4
  2. Btrfs - Wikipedia - https://de.Wikipedia.org/wiki/Btrfs
  3. Kernel/git/torvalds/linux.git - Linux-Kernel-Quellbaum - https://git.Kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=4204617d142c0887e45fda2562cb5c58097b918e
  4. Vergleich von Dateisystemen - Wikipedia - https://de.Wikipedia.org/wiki/Comparison_of_file_systems
  5. Datendeduplizierung - Wikipedia - https://de.Wikipedia.org/wiki/Data_deduplication
  6. Sparse-Datei - Wikipedia - https://de.Wikipedia.org/wiki/Sparse_file
  7. Unterzuweisung blockieren - Wikipedia - https://de.Wikipedia.org/wiki/Block_suballocation
  8. Umfang (Dateisysteme) - Wikipedia - https://de.Wikipedia.org/wiki/Extent_(Dateisysteme)
  9. Allocate-on-flush - Wikipedia - https://de.Wikipedia.org/wiki/Allocate-on-flush
  10. Trimmen (Computer) - Wikipedia - https://de.Wikipedia.org/wiki/Trim_(Computing)
So entwickeln Sie ein Spiel unter Linux
Vor einem Jahrzehnt hätten nicht viele Linux-Benutzer vorhergesagt, dass ihr Lieblingsbetriebssystem eines Tages eine beliebte Spieleplattform für kom...
Open-Source-Ports kommerzieller Spiele-Engines
Kostenlose, quelloffene und plattformübergreifende Spiel-Engine-Nachbildungen können verwendet werden, um sowohl alte als auch einige der relativ neue...
Beste Befehlszeilenspiele für Linux
Die Befehlszeile ist nicht nur Ihr größter Verbündeter bei der Verwendung von Linux – sie kann auch eine Quelle der Unterhaltung sein, da Sie damit vi...