たとえば、仮想マシンのディスクイメージを含むZFSファイルシステムがあるとします。
/tank/examplevm/examplevm-flat.vmdk
さらに、私がそのZFSファイルシステムの毎日のスナップショットを取ると仮定しましょう。
$ zfs snapshot tank@20120716
$ zfs snapshot tank@20120717
明らかに、毎日のスナップショットの間の期間に、私のexamplevm-flat.vmdkに変更が加えられます(ほとんどの場合、イメージのサイズは一定のままですが、仮想ディスクのブロックは変更されます)。
したがって、ZFS diffコマンドは、2つのスナップショット間で変更されたファイルを報告します。
$ zfs diff tank/@20120716 tank@20120717
M /tank/examplevm/examplevm-flat.vmdk
ファイルが変更されたことを知るのは良いことですが、vmdkで変更されたバイト/ブロックの数にもっと興味があります。
したがって、次の質問に関するヒントに興味があります。
- ZFSには、2つのスナップショット間の特定のファイルで変更されたブロックの数を報告する機能がありますか?
- 2つのファイルシステムイメージをバイナリで比較し、変更されたブロックまたはバイトの数を報告する他のツールはありますか?私
cmp –l file1 file2 | wc –l
はそれがそれを実現していることを理解していますが、それは恐ろしく、恐ろしく遅いです。