ZFSスナップショットを破棄できません:データセットは既に存在します


11

Solaris 10 8/07を実行しているサーバー(重要ではないと思いますが、T5220)があり、内部ディスクにZFSプール "mysql"があります。その中にファイルシステム「mysql / data / 4.1.12」があり、cronのスクリプトを使用して1時間ごとにスナップショットを作成します。

私はこれらの1時間ごとのスナップの1つとして作成された、破壊されないスナップショットを1つ持っています。私のスクリプトがそれを破壊しようとして失敗しないように、シーケンス外の名前を「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:/# 

これは明らかに無意味です。もちろん、それはすでに存在しています、それがポイントです!

誰もこのようなものを見たことがありますか?Web検索では、明らかに類似したものは何も表示されません。

必要に応じて、インストールされているパッチを提供できます。

回答:


10

この問題は、Cindy Swearingen(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

最新のパッチセットにアップグレードした後、このスナップショットを正常に削除できました。明らかに、Sunが押しつぶしたバグのどこかにありました。


2

これが問題になるとは思いませんが(別のエラーメッセージが表示されると思います)、そのスナップショットに基づいたクローンはありますか?


それに基づくクローンはありません。それは私が最初に疑ったことですが、そうではありません。
モーベン

2

この解決策はおそらくOPの問題とは無関係ですが、zvolを削除しようとしたときにも、この同じ不可解なエラーメッセージが表示されました。

私の場合、zvolは「-s」再開可能機能を使用して送信された、中断されたzfs受信によって作成されました。再開トークンは、トークンの破棄を妨げていました。

それを修正するために、私は走りましたzfs receive -A <pool/zvol> (FreeBSD 10.3で)


知っておくと便利です。確かにそうでした。
モーベン

1

私もこの問題を見ました(2009年11月)。繰り返しますが、1つのスナップショットだけを破棄することはできず、同じ無意味なメッセージが表示されます

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

そして、このスナップショットは、ファイルシステムのクローンの起源ではありません。実際、クローンファイルシステムは1つしかありませんが、再帰的な検索では、面倒なスナップショットに基づいていないことがわかります

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

名前を変更するまで、このスナップショットは、スナップショットの拡散を制御するために実行するスクリプトを台無しにします。

バージョン情報:これはx86上のSolaris(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。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.