Vamos supor que eu tenho um sistema de arquivos ZFS que contém imagens de disco da máquina virtual, por exemplo
/tank/examplevm/examplevm-flat.vmdk
Vamos supor ainda que eu 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, são feitas alterações no meu examplevm-flat.vmdk (na maioria dos casos, o tamanho da imagem permanece constante, mas os blocos no disco virtual são modificados).
Portanto, o comando diff do ZFS agora reportará 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 alguma dica sobre as seguintes perguntas:
- O ZFS possui algum recurso para relatar o número de blocos alterados em um arquivo específico entre dois instantâneos?
- Existe alguma outra ferramenta que binará duas imagens do sistema de arquivos e relate o número de blocos ou bytes alterados? Sei que
cmp –l file1 file2 | wc –l
isso é verdade, mas é terrivelmente, terrivelmente lento.