btrfs で透過圧縮ができる。
btrfs はCowで透過圧縮をサポートしている。書き込み量が少なければSSDの寿命にも優しいだろう。
lxd のストレージにbtrfs を採用したのだが、透過圧縮はオフになっている。どうせなら圧縮しておこう。
現在の設定の確認
現在の設定を確認する。ストレージ一覧をだして、設定を確認
lxc storage list lxc storage show default lxc exec my-host -- mount | grep btrfs
設定を確認したところ、圧縮はされてなかったのでデフォルトでは圧縮されないようです。
透過圧縮を有効にする
lxc storage set default btrfs.mount_options compress=zstd
圧縮するにはアルゴリズムを選べる。zlib, lzo, zstd から選べる。zstdでは互換性を失うが処理時間が速いので使い勝手が損なわれないようだ。圧縮率を優先するならlzo がいいのかな
lzo を使う場合
lxc storage set default btrfs.mount_options compress=lzo
設定が保存されたか確認する。
lxc storage get default btrfs.mount_options
lxd を再起動する。再起動したら反映された。
snap restart lxd
マウントオプションが変わったか確認する。
lxc exec docker -- mount | grep btrfs
変わっていた。
/dev/vg/lxd on / type btrfs (rw,relatime,compress=zstd:3,ssd,space_cache,subvolid=259,subvol=/containers/my-host)
これでしばらく使ってみよう。