Journaled File System

aus Wikipedia, der freien Enzyklopädie
(Weitergeleitet von JFS (Dateisystem))
Wechseln zu: Navigation, Suche
JFS
Hersteller IBM
Vollständige Bezeichnung Journaled File System
Erstveröffentlichung 1990 (AIX)
Technische Umsetzung
Verzeichnisse JFS: Linear, JFS2: B+-Baum
Dateien JFS: Bitmap (2 Kachelgrößen auf Fragments), JFS2: B⁺-Baum aus Extents(Adresse, Länge)
Maximalwerte
Größe einer Datei 1 PB
Anzahl aller Dateien 263
Länge des Dateinamens 255 Bytes
Größe des Dateisystems 4 PB
Erlaubte Zeichen im Dateinamen Alle Unicode Zeichen außer NUL
Eigenschaften
Datumsangaben einer Datei geändert (modification, mtime)
Metadaten geändert (ctime)
letzter Zugriff (atime)
Forks ja
Dateiattribute noatime
Dateirechte-Verwaltung Unix-Dateirechte, ACLs und JFS Security Labels
Transparente Komprimierung nur JFS
Transparente Verschlüsselung nein
Unterstützende Betriebssysteme AIX, OS/2, Linux

Das Journaled File System (JFS) wurde im Jahr 1990 von IBM für ihr eigenes Betriebssystem AIX veröffentlicht. Hintergrund war eine weitgehende Virtualisierung der Hardwareschicht in dieser damals neu vorgestellten Version 3 von AIX: Ein ebenso neu vorgestellter Logical Volume Manager (LVM) löste die starren Zugriffsschemata auf Datenträgern ab, ein neuer Speichermanager brachte die Virtualisierung des Speicherraumes, also die Auslagerung von Hauptspeicher auf eine (virtuelle) Festplatte, und die PowerPC-CPU Familie, die noch heute das Herzstück unter anderem der pSeries ist, wurde eingeführt. JFS für AIX sollte nicht mit dem Veritas File System verwechselt werden, das unter HP-UX ebenfalls als JFS bezeichnet wird.

Das primäre Designziel von JFS war die stetige Konsistenz des Dateisystems: Änderungen am Dateisystem werden transaktionsorientiert geschrieben sowie in einem Journal protokolliert. Bei einem Absturz kann somit – ausgehend von einem Konsistenzpunkt der Transaktionen – über das Journal sehr effizient ein konsistenter Status des Dateisystems hergestellt werden. Ein voller Zugriff auf das Dateisystem ist also sehr schnell wieder erreicht. Im Fokus steht damit die Verfügbarkeit der Resource Dateisystem, nicht die Performance oder die Integrität der Dateiinhalte (das Journaling bezieht sich nur auf Änderungen im Dateisystem, also beispielsweise Dateieinträge in Verzeichnissen, und nicht auf den eigentlichen Dateiinhalt).

Der LVM ist für die Skalierbarkeit des Dateisystems nützlich: im laufenden Betrieb und unter Last können einfach Festplatten in der Konfiguration ergänzt und in die Volume Group mit aufgenommen werden um das Dateisystem zu erweitern.

Für das ebenfalls von IBM veröffentlichte Betriebssystem OS/2 wurde eine neue Generation des JFS entwickelt und im Jahr 2000 vorgestellt. Dieses JFS stellt eine Neu-Implementation des JFS dar, da der „historische“ JFS-Code stark an die pSeries-Architektur angelehnt ist (OS/2 läuft auf x86-Computern). Dieser neue JFS-Code wurde in AIX 5.1 als JFS2 importiert und 2002 von IBM unter der GNU General Public License freigegeben.

Die wichtigsten Größenunterschiede:

Merkmal JFS2 JFS
Maximale Dateisystemgröße 4 Petabyte (Empfohlen 32 Terabyte) 1 Terabyte
Maximale Dateigröße 1 Petabyte (Empfohlen 16 Terabyte) 64 GB
Anzahl der i-nodes Dynamisch, begrenzt durch Plattenplatz Statisch, bei Erstellung des Dateisystems festgelegt
Verzeichnisorganisation B+-Baum Linear

Darüber hinaus wurden Optimierungen für aktuelle Server-Hardware vorgenommen; so ist die Leistung von JFS2 etwas besser als die von JFS.

Es wird zwar Linux unterstützt, aber die Defragmentierung wurde bislang noch nicht auf Linux portiert. Dies kann dazu führen, dass durch das Anlegen und Löschen vieler kleiner Dateien (einige kByte) das Dateisystem fragmentiert und vor allem die Schreibzugriffe sich etwas verlangsamen und eine höhere CPU-Last erzeugen. Aufgrund der Extent (engl. Ausdehnung, bestehend aus einem Adresse-Länge-Paar)-basierten Allokation von Dateiblöcken und einer intelligenten Allokationsstrategie, d.h. benachbarte Extents derselben Datei werden während des Änderns von Dateien verschmolzen (dies wird wahrscheinlicher, je fragmentierter das Dateisystem wird), bleibt der Fragmentierungsgrad aber unter einem bestimmten Verhältnis. Viele andere Datei- und Datenbank-Systeme verwenden eine ähnliche Extent-basierte Dateiblock-Allokation.

Weblinks[Bearbeiten]