无法销毁 ZFS 快照:数据集已存在

Mor*_*ven 11 solaris zfs

我有一台运行 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:/# 
Run Code Online (Sandbox Code Playgroud)

这显然是荒谬的:当然它已经存在了,这就是重点!

有没有人见过这样的事情?网络搜索显示没有明显相似之处。

如果需要,我可以提供安装的补丁。

小智 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
Run Code Online (Sandbox Code Playgroud)


Mor*_*ven 3

升级到更新的补丁集后,我可以成功删除此快照。显然,Sun 已经在某处解决了一个 bug。