zfs快照概述:
快照是文件系统或卷的只读副本。快照几乎可以即时创建,而且最初不占用池中的其他磁盘空间。但是,当活动数据集中的数据发生更改时,快照通过继续引用旧数据占用磁盘空间,从而阻止释放该空间。
ZFS 快照具有以下特征:
■ 可在系统重新引导后存留下来。
■ 理论最大快照数是264。
■ 不使用单独的后备存储。快照直接占用存储池(从中创建这些快照的文件系统所在的存储池)中的磁盘空间。
■ 递归快照可作为一个原子操作快速创建。要么一起创建快照(一次创建所有快照),要么不创建任何快照。原子快照操作的优点是始终在一个一致的时间捕获快照数据,即使跨后代文件系统也是如此。
无法直接访问卷的快照,但是可以对它们执行克隆、备份、回滚等操作。
创建快照:
这里系统默认使用的文件系统是ZFS而不是UFS:
创建一个文件系统:
向/u01下面写入一些数据:
以上将/platform下的所有文件复制到/u01下。
创建u01的快照:
快照创建成功。
使用快照进行恢复:
下面将/u01下的所有内容删除,然后使用快照恢复:
恢复成功。
创建ZFS克隆:
要创建克隆,请使用zfs clone 命令,指定从中创建克隆的快照以及新文件系统或卷的名称。新文件系统或卷可以位于ZFS 分层结构中的任意位置。新数据集的类型(例如,文件系统或卷)与从中创建克隆的快照的类型相同。不能在原始文件系统快照所在池以外的池中创建该文件系统的克隆。
创建u01的克隆:
迁移ZFS快照至其他主机:
这里要用到zfs send和zfs receive命令。
zfs send 命令创建写入标准输出的快照流表示。缺省情况下,生成完整的流。可以将输出重定向到文件或其他系统。zfs receive 命令创建其内容在标准输入提供的流中指定的快照。如果接收了完整的流,那么同时会创建一个新文件系统。可通过这些命令来发送ZFS 快照数据并接收ZFS 快照数据和文件系统。
接收文件系统快照时,请牢记以下要点:
■ 将接收快照和文件系统。
■ 将取消挂载文件系统和所有后代文件系统。
■ 文件系统在接收期间不可访问。
■ 要接收的原始文件系统在传输期间必须不存在。
■ 如果文件系统名称存在冲突,可以使用zfs rename 重命名文件系统。
发送和接受都成功。
删除快照以及zfs文件系统:
删除u01的快照时,系统提示rpool/u02是其快照的克隆版,所以加-R参数连同u02一起删除。