以前見たことのない奇妙な問題があります。約1.7Gbのサイズを報告するZFSボリュームがあり、スナップショットも同じです。その後、zfsがバックアップを送信しようとすると、大きなファイルが得られます。自動バックアップgzipは12Gbファイルを生成し、テストしたばかり(gzipなし)でファイルが次のサイズに大きくなるとファイルサイズが大きくなります。 66Gbを中断した後 - 重複したデータが多いことを意味します。ここで何が起こっているのでしょうか?分裂?では、どうすればよいですか?
# zpool list
NAME SIZE ALLOC FREE EXPANDSZ FRAG CAP DEDUP HEALTH ALTROOT
lxd 476G 64.8G 411G - 60% 13% 1.00x ONLINE -
容量:
# zfs list
NAME USED AVAIL REFER MOUNTPOINT
lxd 64.8G 396G 24K none
...
lxd/containers/cdinspector 993M 1.32G 1.68G /var/snap/lxd/common/lxd/storage-pools/lxd/containers/cdinspector
スナップ写真:
# zfs list -t snapshot
NAME USED AVAIL REFER MOUNTPOINT
lxd/containers/cdinspector@test 1.39M - 1.68G -
リスト-r
# zfs list -r lxd/containers/cdinspector
NAME USED AVAIL REFER MOUNTPOINT
lxd/containers/cdinspector 1.05G 1.31G 1.69G /var/snap/lxd/common/lxd/storage-pools/lxd/containers/cdinspector
ストリーミングボリュームコマンド:
# zfs send lxd/containers/cdinspector@test | /usr/bin/mbuffer -m 500M > /backup/test
答え1
問題の根本的な原因はZFS圧縮であることがわかりました。関連クライアントのコンテナにはゾンビvimプロセスが実行されており、このプロセスはswpファイルに冗長データを継続的に記録します。
ZFS圧縮は実際に動作します!消費された論理空間は約2.4 Tb、圧縮率は最大1700倍、ZFSはこれを物理空間の約1.7 Gbに減らします。
問題を正確に説明する記事については、次を参照してください。
https://utcc.utoronto.ca/~cks/space/blog/solaris/ZFSCompressionAndQuotas
また、zfs圧縮を無効にすることを検討しています。なぜなら、私たちが設計した方法でこれが私たちに対する潜在的なDOS攻撃の通路になるからです(これは私たちが気づかないようにする非常に遅く、やや曖昧な攻撃ですが)。