USED=0
é um indicador razoável para um instantâneo ser uma duplicata do anterior. No entanto, certifique-se de que ele seja realmente zero e não uma versão arredondada de zero (como 0,1 KB, arredondado para o KB mais próximo). Você pode usar o sinalizador -p
("parseable") para obter o número exato medido em bytes. Observe também que pode levar alguns segundos para que os números de contabilidade de espaço sejam atualizados depois que você criar um instantâneo.
Como você sugere, você também pode usar zfs diff
para obter a mesma coisa. Isso tem o benefício adicional de dizer a você o que mudou.
O exemplo que você deu (onde os blocos são compartilhados entre os arquivos) só pode acontecer se você tiver a dedução ativada. Caso contrário, o ZFS ainda armazenaria várias cópias dos blocos e consideraria esse espaço apropriadamente. Mesmo com a dedup, ambos os métodos acima mostrarão diferenças - o instantâneo não ocuparia% zeroUSED
espaço porque você precisaria de novos metadados para os dois arquivos (dois inodes mais os blocos indiretos apontando para os blocos deduidos; talvez outros também, e zfs diff
mostrará +<filename>
para os dois novos arquivos.
EDIT: A última maneira visível para o usuário que eu posso pensar em verificar isso é executando zfs send -nv
(execução seca, detalhada) incrementalmente entre os instantâneos. Isso não gerará o fluxo de envio completo, mas poderá informar o que seria enviado, o que não deve ser nada se os dois instantâneos forem os mesmos.