Vamos supor que eu tenha um sistema de arquivos ZFS que contenha imagens de disco de máquinas virtuais, por exemplo,
/tank/examplevm/examplevm-flat.vmdk
Vamos supor ainda que tire instantâneos diários desse sistema de arquivos ZFS, por exemplo
$ zfs snapshot tank@20120716
$ zfs snapshot tank@20120717
Obviamente, no período entre cada instantâneo diário, as alterações são feitas no meu examplevm-flat.vmdk (na maioria dos casos, o tamanho da imagem permanece constante, mas os blocos no disco virtual são modificados).
Assim, o comando diff do ZFS agora relatará o arquivo como modificado entre os dois instantâneos:
$ zfs diff tank/@20120716 tank@20120717
M /tank/examplevm/examplevm-flat.vmdk
Embora seja bom saber que o arquivo foi modificado, eu estaria muito mais interessado no número de bytes / blocos que foram modificados no vmdk.
Portanto, eu estaria interessado em quaisquer dicas sobre as seguintes perguntas:
- O ZFS tem algum recurso para relatar o número de blocos alterados em um arquivo específico entre dois instantâneos?
- Existe alguma outra ferramenta que difira binário duas imagens do sistema de arquivos e relate o número de blocos ou bytes alterados? Eu percebo que
cmp –l file1 file2 | wc –l
faz isso, mas é horrivelmente lento.