Назад | Перейти на главную страницу

Определение количества измененных байтов между двумя снимками ZFS одного и того же файла

Предположим, у меня есть файловая система 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 не имеет возможности сообщить, что, однако, недокументированные zdb Инструмент, безусловно, можно использовать для получения блоков, используемых файлом в определенном наборе данных (файловая система или моментальный снимок), поэтому достижение того, что вы ищете, с небольшим количеством сценариев выполнимо, хотя, вероятно, потребуется очень много времени для обработки вывода zdb .

Вот - это блог, в котором показано, как использовать zdb для извлечения блоков файла.