私はいくつかの非常に大きなパケットキャプチャファイル(30ファイルで最大150GB)を使用していますが、パケットキャプチャの冗長性が非常に高いため、これらは.Zipファイルを使用して元のファイルサイズの約7%(14.29x)に圧縮されます。
「compression = gzip-9」設定でZFSパーティションを作成することにより、これらのファイルを「ネイティブに」操作できるかどうか疑問に思いました。パーティションを作成し、パケットキャプチャをコピーしたところ、圧縮率は20.83%(4.80x)でした。
なぜこんなに大きな食い違いがあるのだろうか。
これは、各レコード(ファイルブロック)が個別に圧縮されるためです(大きなファイルの場合はファイルの中央から読み取ることができます)。大きなレコードサイズを設定します。
zfs set recordsize=128k zpool/fsname
または、レコードサイズが大きい新しいファイルシステムを作成します。
zfs create -o recordsize=128k zpool/fsname
この設定は、ファイルシステムfsname
で作成された新しいファイルにのみ影響します。