Datenkomprimierung in JFS

JFS unterstützt fragmentierte und komprimierte Dateisysteme, die Plattenspeicherplatz einsparen, indem zugelassen wird, dass ein logischer Block in Einheiten oder "Fragmenten", die kleiner sind als die vollständige Blockgröße von 4096 Bytes, auf der Platte gespeichert werden.

Die Datenverdichtung wird für JFS2 nicht unterstützt.

In einem fragmentierten Dateisystem wird nur der letzte logische Block von Dateien, die kleiner sind als 32 KB, auf diese Weise gespeichert. Die Fragmentunterstützung ist also nur für Dateisysteme von Vorteil, die viele kleine Dateien enthalten. Die Datenverdichtung ermöglicht jedoch, dass alle logischen Blöcke von Dateien beliebiger Größe in einem oder mehreren zusammenhängenden Fragmenten gespeichert werden. Durchschnittlich kann durch Datenkomprimierung eine Einsparung beim Plattenspeicherplatz um den Faktor 2 erzielt werden.

Die Verwendung von Fragmenten und Datenkomprimierung erhöht jedoch das Risiko, dass freier Speicherplatz auf der Platte fragmentiert wird. Fragmente, die einem logischen Block zugeordnet werden, müssen auf der Platte zusammenhängend sein. In einem Dateisystem, in dem freier Speicherplatz fragmentiert wird, kann es schwierig sein, genügend zusammenhängende Fragmente für die Zuordnung eines logischen Blocks zu finden, selbst wenn die Gesamtanzahl freier Fragmente höher ist als der Bedarf für den logischen Block. Das JFS entschärft die Fragmentierung freien Speicherplatzes durch die Bereitstellung des Programms defragfs, das ein Dateisystem "defragmentiert", indem es die Menge zusammenhängenden freien Speicherplatzes erhöht. Dieses Dienstprogramm kann für fragmentierte und komprimierte Dateisysteme verwendet werden. Die durch Fragmente und Datenkomprimierung erzielten Einsparungen an Plattenspeicherplatz können beträchtlich sein, wobei das Problem der Fragmentierung freien Speicherplatzes kontrollierbar bleibt.

Die Datenkomprimierung im aktuellen JFS ist mit früheren Versionen dieses Betriebssystems kompatibel. Die API, die alle Systemaufrufe enthält, ist in beiden JFS-Versionen dieselbe.