由于克隆最初与原始快照共享其所有磁盘空间,因此其 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 克隆 。例如:
# zfs destroy tank/home/ahrens/bug123
必须先销毁克隆,才能销毁父快照 。
使用 ZFS 克隆替换 ZFS 文件系统借助 zfs promote 命令可以用活动的 ZFS 文件系统的克隆来替换该文件系统 。此功能简化了克隆并替换文件系统以使“源文件系统变为指定文件系统之克隆的功能 。此外,通过此功能还可以销毁最初创建克隆所基于的文件系统 。如果没有克隆提升 (clone promotion) 功能,就无法销毁活动克隆的“源文件系统 。
在以下示例中,对 tank/test/productA 文件系统进行了克隆,然后克隆文件系统 tank/test/productAbeta 成为了 tank/test/productA 文件系统 。
# zfs create tank/test
# zfs create tank/test/productA
# zfs snapshot tank/test/productA@today
# zfs clone tank/test/productA@today tank/test/productAbeta
# zfs list -r tank/test
NAMEUSED AVAIL REFER MOUNTPOINT
tank/test 314K 8.24G 25.5K /tank/test
tank/test/productA 288K 8.24G288K /tank/test/productA
tank/test/productA@today 0 -288K -
tank/test/productAbeta 0 8.24G288K /tank/test/productAbeta
# zfs promote tank/test/productAbeta
# zfs list -r tank/test
NAMEUSED AVAIL REFER MOUNTPOINT
tank/test 316K 8.24G 27.5K /tank/test
tank/test/productA0 8.24G288K /tank/test/productA
tank/test/productAbeta288K 8.24G288K /tank/test/productAbeta
tank/test/productAbeta@today 0 -288K -
在上面的 zfs -list 输出中,可以看到原始 productA 文件系统的空间记帐已替换为 productAbeta 文件系统 。
通过重命名文件系统完成克隆替换过程 。例如:
# zfs rename tank/test/productA tank/test/productAlegacy
# zfs rename tank/test/productAbeta tank/test/productA
# zfs list -r tank/test
NAMEUSED AVAIL REFER MOUNTPOINT
tank/test 316K 8.24G 27.5K /tank/test
tank/test/productA 288K 8.24G288K /tank/test/productA
tank/test/productA@today 0 -288K -
tank/test/productAlegacy 0 8.24G288K /tank/test/productAlegacy
或者,也可以删除传统的文件系统 。例如:
# zfs destroy tank/test/productAlegacy
保存和恢复 ZFS 数据zfs send 命令创建写入标准输出的快照流表示 。缺省情况下,生成完整的流 。可以将输出重定向到文件或其他系统 。zfs receive 命令创建其内容在标准输入提供的流中指定的快照 。如果接收了完整的流,那么同时会创建一个新文件系统 。可通过这些命令来保存 ZFS 快照数据并恢复 ZFS 快照数据和文件系统 。请参见下一节中的示例 。
推荐阅读
- 管理 ZFS 存储池
- 小米门禁卡怎么使用
- 拍大师视频制作软件怎么使用?拍大师视频制作软件使用教程
- 使用libscf.so实现SMF服务refresh方法
- 使用农药不能光顾眼前管用
- 地震速报怎么使用?地震速报使用方法
- 包衣种子的使用和保存
- 谈小2使用一周的各方面性能的一些看法
- 一 D600使用小结
- 支付宝运动怎么使用?占据运动封面还能赚钱!