
このクエリをデータセットに対して実行すると
zfs list -d 1 -t all -o name,used,refer,written,compressratio sfg-backup/mx
次の統計が表示されます:
zfs list -d 1 -t all -o name,used,refer,written,compressratio sfg-backup/mx
NAME USED REFER WRITTEN RATIO
sfg-backup/mx 300G 276G 0 1.80x
sfg-backup/mx@madcow_2023-04-15_23:15:00_UTC 4.04G 275G 275G 1.28x
...
sfg-backup/mx@madcow_2023-04-21_01:15:00_UTC 0B 276G 0 1.28x
sfg-backup/mx@madcow_2023-04-21_02:15:00_UTC 0B 276G 4.26G 1.28x
sfg-backup/mx@madcow_2023-04-21_03:15:00_UTC 0B 276G 0 1.28x
しかし、バックアップを実行すると、madcow_2023-04-21_01:15:00_UTC
バックアップのサイズが4.26GBではなく31.4GBであるため、最後のスナップショットがあります。
syncoid --no-sync-snap 10.0.1.2:sfg-backup/mx work/sfg/mx
NEWEST SNAPSHOT: madcow_2023-04-21_03:15:00_UTC
Sending incremental sfg-backup/mx@madcow_2023-04-21_01:15:00_UTC ... madcow_2023-04-21_03:15:00_UTC (~ 31.4 GB):
31.5GiB 0:03:16 [ 163MiB/s] [==================================================================================================>] 100%
圧縮のために追加すると-c
、サイズは 4.3G になります (これらはわずかに異なるスナップショットですが、内容はほぼ同じです)。
zfs send -nv -c -I sfg-backup/mx@madcow\_2023-04-24\_00:15:00\_UTC sfg-backup/mx@madcow\_2023-04-24\_03:15:00\_UTC
send from @madcow_2023-04-24_00:15:00_UTC to sfg-backup/mx@madcow_2023-04-24_01:15:00_UTC estimated size is 215M
send from @madcow_2023-04-24_01:15:00_UTC to sfg-backup/mx@madcow_2023-04-24_02:15:00_UTC estimated size is 4.09G
send from @madcow_2023-04-24_02:15:00_UTC to sfg-backup/mx@madcow_2023-04-24_03:15:00_UTC estimated size is 624B
total estimated size is 4.30G
# without -c flag:
zfs send -nv -I sfg-backup/mx@madcow\_2023-04-24\_00:15:00\_UTC sfg-backup/mx@madcow\_2023-04-24\_03:15:00\_UTC
send from @madcow_2023-04-24_00:15:00_UTC to sfg-backup/mx@madcow_2023-04-24_01:15:00_UTC estimated size is 216M
send from @madcow_2023-04-24_01:15:00_UTC to sfg-backup/mx@madcow_2023-04-24_02:15:00_UTC estimated size is 31.3G
send from @madcow_2023-04-24_02:15:00_UTC to sfg-backup/mx@madcow_2023-04-24_03:15:00_UTC estimated size is 624B
total estimated size is 31.5G
このサイズの大きな相違の原因は何なのか教えていただけますか? ZFS 圧縮が 1.28 で転送圧縮が 31.5/4.3=7.3 と報告されるのはなぜですか?
答え1
WRITTEN
ショー圧縮されたデータセット/スナップショットに実際に書き込まれたデータ。 と の間ではsfg-backup/mx@madcow_2023-04-21_01:15:00_UTC
、madcow_2023-04-21_03:15:00_UTC
ファイル全体を逆参照せずに、以前の圧縮不可能なデータの上に高度に圧縮可能なデータを書き込みました。
ランダムに上書きされる可能性のある大きなファイル (仮想ディスク イメージ ファイル、データベースなど) があり、32G の生データを書き込んだ結果、4G の圧縮データになったとします。
zfs send -c
圧縮されたレコードをそのまま送信し、圧縮された 4G デルタのみを転送します。一方、zfs send
( なし-c
) はディスク上のデータを解凍し、32G のフルサイズに拡張します。