Não é possível destruir o instantâneo do ZFS: o conjunto de dados já existe

11

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.

    
por Morven 17.09.2009 / 22:23

7 respostas

3

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.

    
por 21.05.2010 / 00:58
10

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
    
por 03.06.2010 / 14:48
2

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?

    
por 17.09.2009 / 23:26
2

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)

    
por 16.09.2016 / 02:22
1

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.

    
por 23.11.2009 / 13:12
1

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

    
por 23.11.2009 / 15:54
1

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.

    
por 04.07.2012 / 01:38

Tags