instantâneos recursivos incompletos no zfs

7

Eu tenho um monte de novos discos em um de nossos sistemas e queria transferir um pool existente para eles, então o que eu fiz foi este:

zfs snapshot -r old-pool@replicaton
zfs send -R old-pool@replication | mbuffer -m 1G  | zfs receive -F -d  new-pool

mas depois, na metade da operação, recebi um aviso de zfs send , reclamando que o instantâneo old-pool/some/fileset@replication não existiria ...

quando fui investigar, achei que zfs snapshot -r tinha negligenciada para criar um instantâneo em old-pool/some/fileset . Então eu correu

zfs list -r -o name old-pool | \
xargs -n1 perl -e 'system "zfs","list",$ARGV[0]."\@replication"'

e descobriu que havia cerca de 10% dos conjuntos de arquivos que eram faltando esse instantâneo ...

Eu então comecei a criar o snapshot ausente individualmente e funcionou bem.

Eu já repeti o experimento e encontrei o mesmo problema de novo ...

Alguma ideia de como isso pode ser?

Isso está acontecendo no omnios r151010

    
por Tobi Oetiker 13.03.2015 / 08:20

1 resposta

7

OH MY! Que vergonha ... achei a razão ...

O pool (pool antigo) que estou tentando replicar é, por si só, um repositório de backup, recebendo atualizações regulares por meio de zfs receive -F

Então, enquanto o meu instantâneo recursivo estava inicialmente completo, ele foi "limpo" à medida que novos instantâneos foram sendo integrados em conjuntos de arquivos individuais.

Depois que interrompi o script de backup que enviava instantâneos para old-pool , o mundo estava funcionando como esperado novamente.

    
por 13.03.2015 / 09:20