如何找到 zfs 克隆的父快照?

如何找到 zfs 克隆的父快照?

我克隆了 zfs 文件系统,其中包含许多快照。我还有该文件系统的多个复制副本。

我如何才能找到克隆附加到哪个文件系统/快照?

(似乎应该在 docs/googleable 中但我没有找到任何东西)

答案1

有一个特殊属性,称为origin,它保存您需要的内容。假设我们有一个 zpooltank和一个文件系统tank/f1,并且我们创建了一个快照和一个克隆:

 zfs snapshot tank/f1@s1
 zfs clone tank/f1@s1 tank/f2

让我们检查一下该克隆的来源:

zfs get origin tank/f2

输出:

NAME     PROPERTY  VALUE       SOURCE
tank/f2  origin    tank/f1@s1  -

答案2

取决于您的 zfs 列表输出...但您也可以查看输出:zpool history查看命令序列和操作(手动和自动) 在池上执行。这可能有助于刷新您的记忆。clone如果输出太多,请过滤命令。

[root@GreenLeaf ~]# zpool history
History for 'vol0':
2013-09-14.16:57:19 zpool create -o ashift=12 vol0 fioa
2013-09-14.16:57:26 zfs create vol0/ppro2
2013-09-14.16:57:32 zfs set recordsize=32K vol0/ppro2
2013-09-15.14:52:08 zfs create -s -V 750G vol0/pprovol
2013-09-15.14:55:23 zfs destroy vol0/pprovol
2013-09-15.14:58:06 zfs create -o volblocksize=64K -s -V 750G vol0/pprovol

History for 'vol1':
2012-12-31.16:13:01 zpool create -f vol1 /dev/sdb
2012-12-31.16:13:22 zfs create vol1/ppro
2012-12-31.16:13:47 zfs set atime=off vol1/ppro
2012-12-31.16:13:55 zfs set compress=on vol1/ppro
2012-12-31.16:15:05 zfs set mountpoint=/ppro vol1/ppro
2012-12-31.21:07:37 zfs create vol1/pproold
2012-12-31.21:08:17 zfs set compress=gzip-9 vol1/pproold
2012-12-31.21:08:53 zfs set mountpoint=/ppro/pproold vol1/pproold
2012-12-31.22:20:56 zfs create vol1/ppro1
2012-12-31.22:21:12 zfs set compress=gzip-9 vol1/ppro1
2012-12-31.22:21:32 zfs set mountpoint=/ppro/ppro1 vol1/ppro1
2013-01-01.11:15:07 zpool set autoexpand=on vol1

答案3

另一个简单的方法:

zfs list -o name,origin | egrep ".@."

并且没有 rpool:

zfs list -o name,origin | egrep -v "^rpool" | egrep ".@."

相关内容