Невозможно уничтожить снимок ZFS: набор данных уже существует


11

У меня есть сервер (T5220, хотя я сомневаюсь, что это имеет значение) под управлением Solaris 10 8/07, и у меня есть пул ZFS «mysql» на внутреннем диске. Внутри него у меня есть файловая система «mysql / data / 4.1.12», которую я делаю ежечасно с помощью скрипта cron.

У меня есть один снимок, созданный как один из этих ежечасных снимков, который не уничтожит. Я переименовал его из последовательности в «mysql/data/4.1.12@wibble», чтобы мой сценарий не попытался и не смог его уничтожить, но изначально он был внутри последовательности, хотя я сомневаюсь, что это имеет значение. Успешно переименовывается. Снимок можно успешно перемещать и читать из каталога .zfs / snapshots. У него нет клонов на его основе.

Попытка уничтожить это делает это:

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

что, по-видимому, бессмысленно: конечно, оно уже существует, в этом суть!

Кто-нибудь видел что-нибудь подобное раньше? Поиски в Интернете не показывают ничего подобного.

Я могу предоставить исправления, установленные при необходимости.

Ответы:


10

На этот вопрос теперь есть ответ, любезно предоставленный Синди Сверинген (cindys) здесь: http://opensolaris.org/jive/thread.jspa?messageID=484242&tstart=0

Сводка: если вы делаете инкрементный прием, это может быть CR 6860996:

Временный клон создается для дополнительного получения и в некоторых случаях не удаляется автоматически.

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

После обновления до более новых наборов патчей я мог успешно удалить этот снимок. Очевидно, где-то была ошибка, которую раздавило Солнце.


2

Я не ожидаю, что это проблема (я думаю, вы получаете другое сообщение об ошибке), но есть ли у вас клоны, основанные на этом снимке?


Нет клонов на его основе; Сначала я подозревал, что это не так.
Морвен

2

Хотя это решение, вероятно, не связано с проблемой OP, у меня также было такое же загадочное сообщение об ошибке при попытке удалить zvol.

В моем случае zvol был создан с помощью прерванного приема zfs, которое было отправлено с помощью функции возобновления "-s". Жетон резюме препятствовал его уничтожению.

Чтобы это исправить, я запустил zfs receive -A <pool/zvol> (на FreeBSD 10.3)


Полезно знать; это, конечно, возможно, так и было.
Morven

1

Я также видел эту проблему (ноябрь 2009). Опять просто один снимок не может быть уничтожен, и я получаю то же бессмысленное сообщение

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

И этот снимок не является источником для клона файловой системы. На самом деле у меня есть одна клонированная файловая система, но рекурсивный поиск показывает, что она не основана на проблемном снимке

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

Пока я не переименую его, этот снимок также испортит сценарии, которые я запускаю, чтобы контролировать распространение снимков.

Информация о версии: Это Solaris на платформе x86 (5.10 Generic_141445-09 i86pc). В настоящее время эта система работает под управлением пула ZFS 15. Все пулы отформатированы с использованием этой версии.


1

Та же проблема без какого-либо клона.

Проблемы возникают, когда версия zfs была 10. Мы пытаемся обновить до 15 без каких-либо изменений


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


1

Я столкнулся с этим давно и написал здесь: http://www.bitshop.com/Blogs/tabid/95/EntryId/101/ZFS-Destroy-dataset-does-not-exist-zdb-error-16.aspx

Однако на этот раз проблема не связана с%. Я нахожусь на Illumus / Illumian 1.0, которая является версией zpool 26.

Это очень старый сервер / снимок, который я пытаюсь удалить.


1

Попробуйте посмотреть на набор данных с помощью zdb.

zdb -e -d tank

Я пытался сделать

zfs destroy -r tank/dataset

который обнаруживается zfs listи получает эту ошибку.

Я обнаружил, что ZDB видел

tank/dataset/dataset

который не показывался на zfs list. Я был в состоянии легко

zfs destroy -r tank/dataset/dataset

а потом

zfs destroy -r tank/dataset

без ошибок.

Это похоже на ошибку в zfs list. FreeBSD 11.2-STABLE.

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.