Предположим, у меня есть файловая система ZFS, которая содержит образы дисков виртуальной машины, например
/tank/examplevm/examplevm-flat.vmdk
Предположим также, что я делаю ежедневные снимки этой файловой системы ZFS, например:
$ zfs snapshot tank@20120716
$ zfs snapshot tank@20120717
Очевидно, что в период между каждым ежедневным снимком вносятся изменения в мой examplevm-flat.vmdk (в большинстве случаев размер изображения остается постоянным, но блоки на виртуальном диске изменяются).
Соответственно, команда diff ZFS теперь сообщит о файле, который был изменен между двумя снимками:
$ zfs diff tank/@20120716 tank@20120717
M /tank/examplevm/examplevm-flat.vmdk
Хотелось бы знать, что файл был изменен, меня гораздо больше интересует количество байтов / блоков, которые были изменены в vmdk.
Поэтому меня будут интересовать любые подсказки по следующим вопросам:
- Есть ли в ZFS возможность сообщать о количестве измененных блоков в конкретном файле между двумя снимками?
- Есть ли другой инструмент, который будет двоично различать два образа файловой системы и сообщать о количестве измененных блоков или байтов? Я понимаю, что это
cmp –l file1 file2 | wc –l
делает, но это ужасно, ужасно медленно.