克隆只能从快照创建。克隆快照时,会在克隆和快照之间建立隐式相关性。即使克隆是在数据集分层结构中的某个其他位置创建的,但只要克隆存在,就无法销毁原始快照。origin 属性显示此相关性,而 zfs destroy 命令会列出任何此类相关性(如果存在)。
克隆不继承从其中创建它的数据集的属性。使用 zfs get 和 zfs set 命令,可以查看和更改克隆数据集的属性。
由于克隆最初与原始快照共享其所有磁盘空间,因此其 used 属性最初为零。随着不断对克隆进行更改,它使用的空间将越来越多。原始快照的 used 属性不考虑克隆所占用的磁盘空间。
创建 ZFS 克隆
要创建克隆,请使用 zfs clone 命令,指定从中创建克隆的快照以及新文件系统或卷的名称。新文件系统或卷可以位于 ZFS 分层结构中的任意位置。新数据集的类型(例如,文件系统或卷)与从中创建克隆的快照的类型相同。不能在原始文件系统快照所在池以外的池中创建该文件系统的克隆。
在以下示例中,将创建一个名为 tank/home/ahrens/bug123 的新克隆,其初始内容与快照 tank/ws/gate@yesterday 的内容相同。
# zfs snapshot tank/ws/gate@yesterday
# zfs clone tank/ws/gate@yesterday tank/home/ahrens/bug123
在以下示例中,将从 projects/newproject@today 快照为临时用户创建克隆工作区 projects/teamA/tempuser。然后,在克隆工作区上设置属性。
# zfs snapshot projects/newproject@today
# zfs clone projects/newproject@today projects/teamA/tempuser
# zfs set sharenfs=on projects/teamA/tempuser
# zfs set quota=5G projects/teamA/tempuser
销毁 ZFS 克隆
使用 zfs destroy 命令可以销毁 ZFS 克隆。例如:
标签: