ZFS圧縮のパラドックス:論理ブロック vs. 物理ブロック
2025-04-17
圧縮を有効にしたZFSファイルシステム上で、`dd`コマンドを使って作成した256KBのゼロファイルが、奇妙な挙動を示します。`ls -l`では256KBと表示されるのに対し、`ls -s`と`ls -slh`でははるかに小さいサイズ、ほぼゼロと表示されます。これは、ZFSの高効率な圧縮によって物理ブロック数が最小限に抑えられているためです。この記事では、ファイルサイズの測定方法として、論理サイズ(バイト数)、物理ブロック数、論理ブロック数の3つの方法を検討し、POSIXの`st_blocks`フィールドがどのサイズを報告すべきかを明確に指定していないため、ファイルシステム間でファイルを移動すると`st_blocks`の値が変化し、場合によってはファイルサイズが膨張して新しいファイルシステムに収まらなくなる可能性があることを指摘しています。
開発