ZFS-Komprimierungsparadoxon: Logische vs. physikalische Blöcke

2025-04-17

Eine mit `dd` erstellte Nulldatei mit 256 KB auf einem ZFS-Dateisystem mit aktivierter Komprimierung zeigt ein rätselhaftes Verhalten: `ls -l` zeigt die Größe als 256 KB an, aber `ls -s` und `ls -slh` zeigen eine viel kleinere Größe, fast Null. Dies liegt an der effizienten Komprimierung von ZFS, die zu einer minimalen Anzahl physikalischer Blöcke führt. Der Artikel untersucht drei Methoden zur Messung der Dateigröße: logische Größe (in Bytes), Anzahl der physikalischen Blöcke und Anzahl der logischen Blöcke. Er weist darauf hin, dass das POSIX-Feld `st_blocks` nicht angibt, welche Größe gemeldet werden soll, was zu potenziellen Änderungen des `st_blocks`-Werts beim Verschieben von Dateien zwischen Dateisystemen und sogar zu einer potenziellen Größenzunahme der Datei führen kann, die die Kapazität des neuen Dateisystems übersteigt.

Entwicklung