Depois de atualizar para conjuntos de patches mais recentes, eu poderia excluir esse instantâneo com êxito. Claramente foi um bug em algum lugar que Sun esmagou.
Eu tenho um servidor (T5220, embora duvide que seja importante) executando o Solaris 10 8/07 e eu tenho um pool ZFS, "mysql", no disco interno. Dentro dele eu tenho um sistema de arquivos "mysql / data / 4.1.12", que faço um snapshot de hora em hora com um script do cron.
Eu tenho um instantâneo, criado como um desses snaps de hora em hora, que não irá destruir. Eu o renomei para fora da sequência para ser "mysql/data/4.1.12@wibble" para que meu script não tente e não consiga destruí-lo, mas ele estava originalmente dentro da sequência, embora eu duvide que isso importe. Ele renomeia com sucesso. O instantâneo pode ser navegado e lido com êxito através do diretório .zfs / snapshots. Não tem clones baseados nele.
Tentar destruí-lo faz isso:
(265) root@web-mysql4:/# zfs destroy mysql/data/4.1.12@wibble
cannot destroy 'mysql/data/4.1.12@wibble': dataset already exists
(266) root@web-mysql4:/#
que aparentemente é sem sentido: claro que já existe, esse é o ponto!
Alguém viu algo assim antes? Pesquisas na Web não mostram nada obviamente semelhante.
Eu posso fornecer correções instaladas, se necessário.
Esta questão foi agora respondida, cortesia de Cindy Swearingen (cindys) aqui: link
Resumo: Se você receber incremental, isso pode ser CR 6860996:
Um clone temporário é criado para um recebimento incremental e, em alguns casos, não é removido automaticamente.
1. Determine clone names:
# zdb -d <poolname> | grep %
2. Destroy identified clones:
# zfs destroy <clone-with-%-in-the-name>
It will complain that 'dataset does not exist', but you can check
again(see 1)
3. Destroy snapshot(s) that could not be destroyed previously
Eu não espero que este seja o problema (acho que você recebe uma mensagem de erro diferente), mas você tem algum clone baseado nesse instantâneo?
Embora esta solução provavelmente não esteja relacionada ao problema do OP, também tive essa mesma mensagem de erro ao tentar excluir um zvol.
No meu caso, o zvol foi criado por um zfs receive interrompido, que foi enviado usando o recurso de retorno "-s". O token de resumo estava impedindo que ele fosse destruído.
Para consertar, eu corri zfs receive -A <pool/zvol>
(no FreeBSD 10.3)
Eu também vi esse problema (nov 2009). Mais uma vez apenas um instantâneo não pode ser destruído e eu recebo o mesma mensagem sem sentido
# zfs destroy blue/viss02_backup/46home1f@200910211357
cannot destroy 'blue/viss02_backup/46home1f@200910211357': dataset already exists
E este instantâneo não é a origem e o clone do sistema de arquivos. Na verdade, eu tenho um sistema de arquivos clonado - mas uma pesquisa recursiva mostra que ele não é baseado no instantâneo problemático
# zfs get -H -o value -r origin blue | uniq
-
blue/viss02_backup/zones/puppis@200902031605
-
Até que eu o renomeie, esse snapshot também estraga os scripts que eu executo para controlar a proliferação de snapshots.
Informação da versão: Este é o Solaris no x86 (5.10 Generic_141445-09 i86pc) Este sistema está executando atualmente a versão 15 do pool do ZFS. Todos os pools são formatados usando esta versão.
O mesmo problema sem clone.
Os problemas ocorrem enquanto a versão do zfs é 10. Tentamos atualizar para 15 sem alterações
zfs destroy -rR zpool/mailboxes
cannot destroy 'zpool/mailboxes@bug': dataset already exists
Eu encontrei isso há muito tempo e escrevi aqui: link
No entanto, desta vez não é um problema relacionado com%. Estou no Illumus / Illumian 1.0, que é o zpool versão 26.
Este é um servidor / snapshot muito antigo que estou tentando excluir.