(8)ZFS文件系统快照管理
ZFS文件系统快照简介
ZFS 利用写复制 (copy-on-write, COW) 机制来存储数据,并且几乎可以作为数据存储的副效应来生成快照。COW 在将新数据写入磁盘前会读入旧数据。之后,COW 会将旧数据写入某个新位置以供快照使用。此读取和复制数据的过程同时适用于用户数据和文件系统的专用数据(元数据)。任何后续写入操作都将导致通过 COW 机制分配新块,因此永远不会修改组成快照的那些块。
从本质上而言,从某个备份进行恢复的步骤与从传统备份恢复的步骤是一样的:
重建文件系统。
恢复完整备份。
恢复每个增量备份。
可以创建某个特定快照的克隆(副本)。克隆指一个其初始内容与某个快照的内容相同的文件系统。正如可以修改其他文件系统属性一样,可以修改克隆的属性和内容。
使用命令创建和删除ZFS快照
我们使用zfs snapshot命令来创建快照,这个命令只有一个变量就是快照的名字。快照名字如下所示:
filesystem@snapname
volume@snapname
创建快照
# zfs snapshot zfstest1@cjh
通过使用 -r 选项可为所有后代文件系统创建快照。
# zfs snapshot -r zfstest1@cjh
然后使用命令查看所有快照,如图6 。
▲
# zfs list -t snapshot
图6 使用命令查看所有快照
说明:快照不能被修改属性,也不能使数据集的属性应用到快照上。
请使用zfs destroy命令删除快照。
删除快照
# zfs destroy zfstest1@cjh
在快照存在的情况下,数据集不能被删除。另外,如果存在快照的克隆,也不能删除数据集。
恢复到最初的快照
使用zfs rollback命令能使快照放弃所有的改变,恢复到建立快照的最初状态。如果有些最近的快照的话,使用?-r选项能强制删除这些快照,而恢复到最初的快照。
恢复pool/home/ahrens文件系统的星期二的快照。
# zfs rollback pool/home/ahrens@tuesday