Nehmen wir an, ich habe ein ZFS-Dateisystem, das Disk-Images von virtuellen Maschinen enthält, z
/tank/examplevm/examplevm-flat.vmdk
Nehmen wir weiter an, ich mache täglich Schnappschüsse dieses ZFS-Dateisystems, z
$ zfs snapshot tank@20120716
$ zfs snapshot tank@20120717
Offensichtlich werden in der Zeit zwischen jedem täglichen Snapshot Änderungen an meiner examplevm-flat.vmdk vorgenommen (in den meisten Fällen bleibt die Größe des Bildes konstant, aber die Blöcke auf der virtuellen Festplatte werden geändert).
Dementsprechend meldet der ZFS diff-Befehl die Datei nun als zwischen den beiden Snapshots geändert:
$ zfs diff tank/@20120716 tank@20120717
M /tank/examplevm/examplevm-flat.vmdk
Es ist zwar gut zu wissen, dass die Datei geändert wurde, aber ich würde mich viel mehr für die Anzahl der Bytes / Blöcke interessieren, die im vmdk geändert wurden.
Daher würde mich jeder Hinweis zu folgenden Fragen interessieren:
- Verfügt ZFS über eine Funktion zum Melden der Anzahl geänderter Blöcke in einer bestimmten Datei zwischen zwei Snapshots?
- Gibt es ein anderes Tool, das zwei Dateisystem-Images binär unterscheidet und die Anzahl der geänderten Blöcke oder Bytes meldet? Mir ist klar, dass
cmp –l file1 file2 | wc –l
das das tut, aber es ist schrecklich, schrecklich langsam.