Aus LinuxUser 05/2016

Stationen des Ext-Dateisystems im Überblick (Seite 4)

Das Feature wurde ursprünglich schon für Ext2 entwickelt, schaffte es aber damals noch nicht in den offiziellen Quellcode. Während es unter Ext4 standardmäßig aktiviert ist, setzt Ext3 noch voraus, dass Sie das Directory-Indexing manuell anschalten. Außerdem erlaubt es Ext3, die Größe des Dateisystems zu ändern, während es noch eingehängt ist.

Darüber hinaus dürfen Sie definieren, wie sich der Kernel verhält, wenn er einige Metadaten des Dateisystems nicht versteht – zum Beispiel bei Schäden. Je nach Konfiguration kann der Kernel trotzdem das Dateisystem einhängen, wobei ein Schreibzugriff nur eingeschränkt möglich ist (und aus Gründen der Datensicherheit besser nicht geschehen sollte).

Ähnlich wie Windows-Dateisysteme zeigt sich Ext3 bei längerem Einsatz anfällig für Fragmentierung. Je nachdem, wie sich die freien Blöcke über das Dateisystem verteilen, kann das System vermutlich nicht immer zusammenhängende Daten auch hintereinanderschreiben. Abhilfe schafft die sogenannte Block-Preallokierung, mit der Ext3 Blöcke reserviert, bevor es sie wirklich benötigt. So gelingt es dem Dateisystem, die Daten möglichst nahe beieinander zu lagern.

Ein Online-Tool zur Defragmentierung gibt es für Ext3 übrigens nicht. Allerdings haben verschiedene Entwickler Werkzeuge veröffentlicht, die die Verteilung der Daten zumindest etwas optimieren. Durch das Hinzufügen eines Journals verwandeln Sie ein Ext2-Dateisystem in ein Ext3-Dateisystem, umgekehrt wird ebenfalls ein Schuh daraus.

Die Nähe zu seinem Vorgänger stellt übrigens den größten Nachteil von Ext3 dar: Da sich viele Strukturen ähneln, fehlten Ext3 anfangs einige Features, die konkurrierende Dateisysteme schon zu bieten hatten. Ein Ext3-Dateisystem mit einer Blockgröße von 4 KByte darf maximal 2 TByte große Dateien beherbergen und kann lediglich auf bis zu 16 TByte wachsen.

Einige Jahre nach Veröffentlichung von Ext3 galt das Dateisystem zwar als stabil, mehrere Firmen und Entwickler arbeiteten jedoch nach wie vor an Erweiterungen und Verbesserungen (besonders in Hinblick auf Performance und Stabilität). Auf der Kernel-Mailingliste entwickelte sich jedoch eine lebhafte Diskussion um die Frage, ob weitere Änderungen wirklich Verbesserungen an den fundamentalen Problemen bringen könnten oder den bisherigen Anwendern nicht sogar mehr Nachteile bescheren würden.

Schließlich einigten sich die Entwickler 2006 darauf, die Arbeit an Ext3 weitgehend einzustellen. Stattdessen entschieden sie sich, den Code des Dateisystems einmalig in einen neuen Zweig namens ext4 zu kopieren und neue Features sowie substanzielle Änderungen nur noch dort einzuspielen. Mehr als zwei Jahre später schaffte es Ext4 in Kernel 2.6.28, wodurch es nach und nach zum Standard für viele Distributionen avancierte.

Ext4

Ext4 unterstützt 64-Bit-Prozessoren, was es ermöglicht, bei einer Blockgröße von 4 KByte erstmals 16 TByte große Dateien zu erstellen. Das Dateisystem selbst darf auf 1 Exabyte (entspricht etwa 1 Million TByte) wachsen, wobei dieser Wert für die meisten Systeme eher theoretischer Natur ist. Für die meisten Fälle empfiehlt es sich, das Dateisystem auf rund 16 TByte zu beschränken und gegebenenfalls mehrere Dateisysteme nebeneinander anzulegen.

Ext2 und Ext3 organisieren die Ablage der Daten über Block-Bitmaps, die den physikalischen Speicherplatz abbilden. Unter Ext4 übernehmen „Extents“ diese Funktion, die zusammenhängenden Blöcke auf dem Speichermedium zusammenzufügen. Ein einzelner Extent umfasst unter Ext4 bis zu 128 MByte an zusammenhängenden Speicherplatz, wobei ein Inode bis zu vier Extents enthält. Umfasst eine Datei mehr als vier Extents, indexiert das Dateisystem die übrigen Extents in einer Baumstruktur. Durch den Einsatz von Extents bietet das Ext-Dateisystem in einigen Fällen eine stark verbesserte Performance für große Dateien und eine bessere Defragmentierung.

Ein unter Ext3 schmerzlich vermisstes Feature hielt unter Ext4 ebenfalls Einzug: Eine neue Kernel-Funktion bringt Ext4 dazu, vorab schon Speicherplatz für eine Datei zu reservieren („pre-allocation“). Ext4 füllt den fraglichen Bereich schon einmal mit Nullen und versucht zu garantieren, dass der Speicherplatz wirklich nicht bereitsteht und möglichst zusammenhängt.

Durch weitere Umbauten unterstützt Ext4 nun mehr als 32?000 Unterverzeichnisse pro Ordner – theoretisch nahezu unendlich viele, da der HTree-Mechanismus nun grundsätzlich greift. Benötigen Sie mehr als die standardmäßig 64?000 erlaubten Unterverzeichnisse, aktivieren Sie das Feature dir_nlink.

Das mit Ext3 hinzugekommene Journal erhielt eine sinnvolle Verbesserung: Mithilfe von Prüfsummen für Metadaten beugt es nun möglichen Risiken für defekte Metadaten vor, die im schlimmsten Fall das Dateisystem schreddern könnten. Der unbeliebte Dateisystem-Check läuft unter Ext4 deutlich schneller ab, da unbenutzte Speicherbereiche im Dateisystem als solche markiert sind. Beim Überprüfen überspringt die Software diese, wovon besonders fast leere Dateisysteme profitieren. Fans von möglichst genauen Zeitstempeln kommen nun ebenfalls auf ihre Kosten, da Ext4 auf Nanosekunden genaue Zeitstempel ermöglicht. Ext4 beherbergt nun zudem Optionen, mit denen das System SSD-Speicher optimaler nutzt.

Mit Kernel 4.1 hielt Mitte 2015 übrigens experimentell eine transparente Verschlüsselung Einzug ins Ext4-Dateisystem [4], wobei die Benutzer Daten mit jeweils verschiedenen Schlüsseln absichern können. Seit Kernel 4.4 erfüllt dieses Feature alle Voraussetzungen für einen künftigen Einsatz. Als treibende Kraft hinter der Ext4-Verschlüsselung agiert übrigens Google. Vermutlich will der Konzern damit bessere Sicherheits-Features für Android und ChromeOS anbieten. Experimentieren Sie derzeit mit einem aktuellen Kernel und neueren Userspace-Tools (wie Tune2fs), dann lohnt es sich, einen Blick auf einen entsprechenden Blog-Post [5] zu werfen.

Ext4 bietet Rückwärtskompatibilität zu Ext3 und Ext2, was es ermöglicht, die Vorläufer als Ext4 zu mounten. Ein Ext4-Dateisystem hingegen können Sie nicht direkt als Ext3-Dateisysteme einhängen. Dazu müssten Sie erst einige Features beim Erstellen des Dateisystems deaktivieren, zum Beispiel die Limits für das Dateisystem denen von Ext3 anpassen.

Ext4 beherrscht seit Kernel 3.6 Quota, mit denen Sie bei Bedarf den Speicherplatz der Benutzer und Benutzergruppen begrenzen. Mit der jüngst veröffentlichten Kernel-Version 4.5 hielten zudem Projekt-Quota Einzug. Damit limitieren Sie den Speicher entweder für Verzeichnishierarchien oder über mehrere Ordner hinweg verstreute Dateien. Die Patches dafür wurden bereits Ende 2014 eingereicht und in einem Post auf der Ext4-Mailingliste beschrieben [6].

DIESEN ARTIKEL ALS PDF KAUFEN
EXPRESS-KAUF ALS PDFUmfang: 7 HeftseitenPreis €0,99
(inkl. 19% MwSt.)
KAUFEN
LinuxUser 05/2016 KAUFEN
EINZELNE AUSGABE Print-Ausgaben Digitale Ausgaben
ABONNEMENTS Print-Abos Digitales Abo
TABLET & SMARTPHONE APPS
Deutschland

Hinterlasse einen Kommentar

  E-Mail Benachrichtigung  
Benachrichtige mich zu: