Impossibile distruggere lo snapshot ZFS: il set di dati esiste già


11

Ho un server (T5220, anche se dubito sia importante) che esegue Solaris 10 8/07 e ho un pool ZFS, "mysql", sul disco interno. Al suo interno ho un filesystem "mysql / data / 4.1.12", che faccio istantaneamente ogni ora con uno script da cron.

Ho uno snapshot, creato come uno di quegli snapshot orari, che non distruggerà. L'ho rinominato fuori sequenza in "mysql/data/4.1.12@wibble" in modo che il mio script non tenterà di distruggerlo, ma era originariamente all'interno della sequenza, anche se dubito che sia importante. Rinomina correttamente. Lo snapshot può essere esplorato e letto correttamente dalla directory .zfs / snapshot. Non ha cloni basati su di esso.

Cercare di distruggerlo fa questo:

(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:/# 

il che è apparentemente privo di senso: ovviamente già esiste, questo è il punto!

Qualcuno ha visto qualcosa di simile prima? Le ricerche sul web non mostrano nulla ovviamente simile.

Posso fornire le patch installate se necessario.

Risposte:


10

Questo problema è stato risolto, per gentile concessione di Cindy Swearingen (cindys) qui: http://opensolaris.org/jive/thread.jspa?messageID=484242&tstart=0

Riepilogo: se si ricevono incrementali, questo potrebbe essere CR 6860996:

Viene creato un clone temporaneo per una ricezione incrementale e in alcuni casi non viene rimosso 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

3

Dopo aver eseguito l'aggiornamento a set di patch più recenti, ho potuto eliminare correttamente questa istantanea. Chiaramente era un bug da qualche parte che Sun ha schiacciato.


2

Non mi aspetto che questo sia il problema (penso che ricevi un messaggio di errore diverso), ma hai dei cloni basati su quella istantanea?


Nessun clone basato su di esso; questo è quello che all'inizio sospettavo, ma non è così.
Morven,

2

Sebbene questa soluzione non sia probabilmente correlata al problema del PO, ho anche avuto lo stesso messaggio di errore criptico quando provavo a eliminare uno zvol.

Nel mio caso, zvol era stato creato da una ricezione interrotta di zfs, che era stata inviata usando la funzione di ripristino "-s". Il token di ripristino stava impedendo che venisse distrutto.

Per risolvere il problema, ho eseguito zfs receive -A <pool/zvol> (su FreeBSD 10.3)


Utile da sapere; è certamente possibile che fosse così.
Morven,

1

Ho visto anche questo problema (nov 2009). Ancora una volta solo UN'istantanea non può essere distrutta e ricevo lo stesso messaggio senza senso

# zfs destroy blue/viss02_backup/46home1f@200910211357
cannot destroy 'blue/viss02_backup/46home1f@200910211357': dataset already exists

E questa istantanea non è l'origine e il clone del filesystem. In effetti ho un filesystem clonato, ma una ricerca ricorsiva mostra che non si basa sull'istantanea fastidiosa

# zfs get -H -o value -r origin blue | uniq
-
blue/viss02_backup/zones/puppis@200902031605
-

Fino a quando non lo rinominerò, questa istantanea rovinerà anche gli script che eseguo per controllare la proliferazione di istantanee.

Informazioni sulla versione: Questo è Solaris su x86 (5.10 Generic_141445-09 i86pc) Questo sistema attualmente sta eseguendo la versione del pool ZFS 15. Tutti i pool sono formattati usando questa versione.


1

Stesso problema senza cloni.

Il problema si verifica mentre la versione di zfs era 10. Proviamo ad aggiornare a 15 senza alcuna modifica


 zfs destroy -rR zpool/mailboxes
 cannot destroy 'zpool/mailboxes@bug': dataset already exists



1

Prova a guardare il set di dati con zdb.

zdb -e -d tank

Stavo cercando di fare

zfs destroy -r tank/dataset

che si presenta zfs liste ha visualizzato questo errore.

Quello che ho trovato è stato visto da zdb

tank/dataset/dataset

che non si stava facendo vedere zfs list. Sono stato in grado di farlo facilmente

zfs destroy -r tank/dataset/dataset

e poi

zfs destroy -r tank/dataset

senza errori.

Sembra forse un bug zfs list. FreeBSD 11.2-STABLE.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.