Existe uma maneira de saber se dois instantâneos ZFS com nomes idênticos são realmente idênticos?

Existe uma maneira de saber se dois instantâneos ZFS com nomes idênticos são realmente idênticos?

Como você pode saber se dois instantâneos do ZFS são idênticos ou simplesmente têm o mesmo nome?

Digamos que eu tenha dois computadores chamados host-ae host-b. Suponha também que host-ahaja um conjunto de dados ZFS chamado /tank/mydataset.

No host-a, eu poderia:zfs snapshot tank/mydataset@mysnapshot' and then I could 'zfs send tank/mydataset@mysnapshot | ssh host-b zfs receive tank/mydataset

Isso significaria @mysnapshotque seria idêntico em ambos host-ae host-b.

Por outro lado, host-aeu poderia: zfs snapshot tank/mydataset@mysnapshotseguido por ssh host-b zfs snapshot tank/mydataset@mysnapshot.

Neste segundo caso, os dois instantâneos têm nomes idênticos, mas o conjunto de dados pode ser totalmente diferente.

Observar as propriedades de tank/mydataset@mysnapshotnão lista nenhuma maneira aparente de identificar se os instantâneos são idênticos - ou seja, um GUID ou hash.

Além de tentar tirar outro instantâneo host-a tank/mydataset@mysnapshot2e enviar para host-bvia, zfs send -i @mysnapshot tank/mydataset@mysnapshot2 | ssh host-b zfs receive tank/mydatasetexiste uma maneira de determinar se os instantâneos são idênticos não apenas no nome, mas também nos blocos?

Responder1

Há uma propriedadeespecificamentepara este caso de uso.

zfs get guid pool/fs@snapfornecerá um GUID (Globally Unique ID) para um instantâneo. Se o GUID não corresponder entre dois instantâneos, um não será replicado do outro e não funcionará como base para replicação incremental adicional.

É assim tambémsinóideidentifica instantâneos comuns para determinar comandos de replicação.

(Isenção de responsabilidade: sou o desenvolvedor inicial e mantenedor-chefe do projeto Sanoid, ao qual pertence a ferramenta de replicação Syncoid.)

informação relacionada