No se puede destruir la instantánea de ZFS: el conjunto de datos ya existe

11

Tengo un servidor (T5220, aunque dudo que sea importante) que ejecuta Solaris 10 8/07 y tengo un grupo de ZFS, "mysql", en el disco interno. Dentro de él tengo un sistema de archivos "mysql / data / 4.1.12", que tomo cada hora con un script de cron.

Tengo una instantánea, creada como una de esas instantáneas por hora, que no se destruirá. Lo renombré fuera de secuencia como "mysql/data/4.1.12@wibble" para que mi script no intente y no pueda destruirlo, pero originalmente estaba dentro de la secuencia, aunque dudo que eso importe. Se renombra con éxito. La instantánea se puede navegar con éxito y leer desde el directorio .zfs / snapshots. No tiene clones basados ​​en él.

Intentar destruirlo hace esto:

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

lo cual aparentemente no tiene sentido: por supuesto que ya existe, ¡ese es el punto!

¿Alguien ha visto algo como esto antes? Las búsquedas en la web no muestran nada obviamente similar.

Puedo proporcionar parches instalados si es necesario.

Morven
fuente

Respuestas:

10

Este problema ya ha sido respondido, cortesía de Cindy Swearingen (cindys) aquí: http://opensolaris.org/jive/thread.jspa?messageID=484242&tstart=0

Resumen: si realiza recepciones incrementales, esto podría ser CR 6860996:

Se crea un clon temporal para una recepción incremental y, en algunos casos, no se elimina automáticamente.

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

fuente
3

Después de haber actualizado a conjuntos de parches más recientes, podría eliminar esta instantánea con éxito. Claramente era un error en algún lugar que Sun aplastó.

Morven
fuente
2

No espero que este sea el problema (creo que recibes un mensaje de error diferente), pero ¿tienes algún clon basado en esa instantánea?

marca
fuente
No hay clones basados ​​en él; eso es lo que sospeché al principio, pero eso no es todo.
Morven
2

Si bien esta solución probablemente no esté relacionada con el problema del OP, también tuve este mismo mensaje de error críptico al intentar eliminar un zvol.

En mi caso, el zvol había sido creado por una recepción zfs interrumpida, que se envió utilizando la función reanudable "-s". La ficha de currículum impedía que fuera destruida.

Para solucionarlo, ejecuté zfs receive -A <pool/zvol> (en FreeBSD 10.3)

Acíclico
fuente
Útil para saber; Ciertamente es posible que este fuera el caso.
Morven
1

También he visto este problema (noviembre de 2009). De nuevo, solo UNA instantánea no puede ser destruida y recibo el mismo mensaje sin sentido

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

Y esta instantánea no es el origen y el clon del sistema de archivos. De hecho, tengo un sistema de archivos clonado, pero una búsqueda recursiva muestra que no se basa en la instantánea problemática

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

Hasta que cambie el nombre, esta instantánea también arruinará los scripts que ejecuto para controlar la proliferación de instantáneas.

Información sobre la versión: Esto es Solaris en x86 (5.10 Generic_141445-09 i86pc). Este sistema está ejecutando actualmente la versión 15. del conjunto de ZFS. Todos los conjuntos están formateados con esta versión.


fuente
1

Mismo problema sin ningún clon.

El problema ocurre mientras la versión zfs era 10. Intentamos actualizar a 15 sin ningún cambio.


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


fuente
1

Intenta mirar el conjunto de datos con zdb.

zdb -e -d tank

Estaba tratando de hacer

zfs destroy -r tank/dataset

que aparece zfs listy recibía este error.

Lo que encontré fue que vio zdb

tank/dataset/dataset

que no se muestren en zfs list. Pude fácilmente

zfs destroy -r tank/dataset/dataset

y entonces

zfs destroy -r tank/dataset

sin errores

Esto parece tal vez un error en zfs list. FreeBSD 11.2-ESTABLE.

Bill McGonigle
fuente