Solaris

無法銷毀 ZFS 快照:數據集已存在

  • November 12, 2019

我有一台執行 Solaris 10 8/07 的伺服器(T5220,儘管我懷疑它是否重要),並且我在內部磁碟上有一個 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:/# 

這顯然是荒謬的:它當然已經存在,這就是重點!

以前有人見過這樣的事情嗎?網路搜尋顯示沒有明顯相似之處。

如有必要,我可以提供安裝的更新檔。

升級到更新的更新檔集後,我可以成功刪除此快照。顯然是 Sun 壓制的某個地方的錯誤。

這個問題現已得到解答,由 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

引用自:https://serverfault.com/questions/66414