Неможливо знищити знімок 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

Незважаючи на те, що це рішення, ймовірно, не пов'язане з проблемою ОП, у мене теж було таке саме криптовалютне повідомлення про помилку при спробі видалити zvol.

У моєму випадку zvol був створений переривним zfs-отриманням, яке було надіслано за допомогою функції "-s" для відновлення. Значок резюме не дозволяв знищити його.

Щоб виправити це, я побіг zfs receive -A <pool/zvol> (на FreeBSD 10.3)


Корисно знати; напевно можливо, що це було так.
Ранок

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

Спробуйте переглянути набір даних з 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.