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