Identificando o número de bytes alterados entre duas capturas instantâneas ZFS do mesmo arquivo

10

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.
por nlx-ck 17.07.2012 / 18:24

1 resposta

7

O ZFS não tem recursos para informar que, no entanto, o zdb A ferramenta pode certamente ser usada para obter os blocos usados por um arquivo em um determinado conjunto de dados (sistema de arquivos ou instantâneo) para conseguir o que você procura com um pouco de script, embora provavelmente levaria muito tempo para processar zdb saída.

Aqui é um blog mostrando como usar o zdb para extrair os blocos de um arquivo.

    
por 17.07.2012 / 23:33

Tags