ZFS 克隆
与 ZFS 快照相反,ZFS 克隆是文件系统的可写副本,其初始内容与文件系统相同。
只能从快照创建克隆。
在删除从中创建的克隆之前,无法删除快照。
创建 ZFS 克隆
现在我们可以从快照所在的文件系统下的任何位置的快照创建克隆。
# zfs clone geekpool/fs1@oct2013 geekpool/fs1/clone01 # zfs list -r NAME USED AVAIL REFER MOUNTPOINT geekpool 101M 875M 32K /geekpool geekpool/fs1 100M 875M 100M /geekpool/fs1 geekpool/fs1@oct2013 19K - 31K geekpool/fs1/clone01 1K 875M 31K /geekpool/fs1/clone01
销毁 ZFS 克隆
# zfs destroy geekpool/fs1/clone01
查看更多教程 https://on itroad.com
快照占用的空间
现在,当我们第一次创建任何快照时,属性“refer”指定了快照和文件系统之间共享的空间。
当我们对文件系统进行任何更改时,引用空间会增加。
# zfs list -t all -r geekpool NAME USED AVAIL REFER MOUNTPOINT geekpool 520K 975M 32K /geekpool geekpool/fs1 50K 975M 31K /geekpool/fs1 geekpool/fs1@oct2013 19K - 31K
创建一些文件和快照
# mkfile 100m /geekpool/fs1/test1 # zfs snapshot geekpool/fs1@nov2013 # mkfile 100m /geekpool/fs1/test2 # zfs snapshot geekpool/fs1@dec2013 # zfs list -t all -r geekpool NAME USED AVAIL REFER MOUNTPOINT geekpool 201M 775M 32K /geekpool geekpool/fs1 200M 775M 200M /geekpool/fs1 geekpool/fs1@oct2013 19K - 31K geekpool/fs1@nov2013 19K - 100M geekpool/fs1@dec2013 0 - 200M
现在正如预期的那样,nov2013 快照使用了 100MB 空间,而 dec2013 使用了 200MB 空间。
ZFS 发送和接收
ZFS 可以选择备份或者移动快照。
这可以通过发送和接收命令实现。
ZFS send
可以通过重定向将send命令生成的输出流保存到文件中。
# zfs send geekpool/fs1@oct2013 > /geekpool/fs1/oct2013.bak
ZFS receive
与发送类似,我们可以从我们刚刚创建的文件中接收快照。
# zfs receive anotherpool/fs1 < /geekpool/fs1/oct2013.bak
我们也可以结合这两种操作
# zfs send geekpool/fs1@oct2013 | zfs receive anotherpool/fs1
现在我们可以一次性在 2 个不同系统之间发送和接收快照,如下所示:
node02 # zfs create testpool/testfs (create a test file-system on another system) node01 # zfs send geekpool/fs1@oct2013 | ssh node02 "zfs receive testpool/testfs"
只发送增量数据
node01# zfs send -i geekpool/fs1@oct2013| ssh node02 zfs recv testpool/testfs
ZFS 快照
zfs 快照是 zfs 文件系统或者卷的只读副本。
它们不会占用 zfs 池中的另外空间,并且可以立即创建。
它们可用于在特定时间点保存文件系统的状态,然后可以回滚到完全相同的状态。
如果需要,我们还可以从快照中提取一些文件而不进行完全回滚。
让我们来看看创建 zfs 文件系统快照所涉及的步骤。
创建和销毁快照
创建文件系统 geekpool/fs1 的新快照
# zfs snapshot geekpool/fs1@oct2013 # zfs snapshot -r geekpool/fs1@oct2013 (to take snapshot of all FS under fs1) # zfs list -t snapshot NAME USED AVAIL REFER MOUNTPOINT geekpool/fs1@oct2013 0 - 31K
销毁快照:
# zfs destroy geekpool/fs1@oct2013
重命名快照:
# zfs rename geekpool/fs1@oct2013 geekpool/fs1@sept2013
回滚到快照
现在我们可以完全回滚到旧快照,这将为我们提供拍摄快照时的时间点副本。
zfs rollback geekpool/fs1@oct2012
我们还可以通过访问快照目录 .zfs/snapshot/snapshot_name 在为其创建快照的文件系统下恢复单个文件。
在快照目录下,我们可以找到要恢复到较旧时间的文件或者目录。
# ls /geekpool/fs1/.zfs/snapshot/ oct2013
日期:2020-09-17 00:15:01 来源:oir作者:oir