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


11

我有一台运行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:/# 

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

有人看过这样的东西吗?网络搜索显示没有明显相似之处。

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

Answers:


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

我不希望这是问题所在(我认为您会收到不同的错误消息),但是您是否有基于该快照的克隆?


没有基于它的克隆;我一开始就是这么怀疑的,但事实并非如此。
Morven

2

尽管此解决方案可能与OP的问题无关,但在尝试删除zvol时,我也有同样的错误消息。

在我的情况下,zvol是由中断的zfs接收创建的,该接收是使用“ -s”可恢复功能发送的。恢复令牌阻止了它被破坏。

为了解决这个问题,我运行了zfs receive -A <pool/zvol> (在FreeBSD 10.3上)


有用的知识;当然有可能是这种情况。
Morven'1

1

我也看到了这个问题(2009年11月)。再次,只有一个快照无法销毁,我得到了相同的荒谬信息

# 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
-

在重命名快照之前,该快照还将破坏我运行的控制快照扩散的脚本。

版本信息:这是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稳定。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.