zfs 的增量备份

小编辑 发布于 2010/04/25 16:42
阅读 1K+
收藏 0

【DevOps必读】产品经理与程序员之间如何破局?>>>

增量备份指的是zfs send|receive之间的传输,snapshot仅仅是当时文件的一个
快照而已。snapshot本身不会占用较大 的空间,它是共享zpool的空间的。

snapshot的恢复数据
快照是记录当时文件的存在情况。例如在p1/f1下面建立一个 文件file1,创建
snapshot1,然后建立文件file2,创建快照 snapshot2,然后建立文件file3,创建
快照 snapshot3.
这个时候,snapshot1含有file1,snapshot2含有file1、file2,snapshot3含有
file1、 file2、 file3.
如果直接使用命令zfs send p1/f1@snapshot2 | ssh host2 zfs recv p2/f1的
话,这是一个全数据备份,你会在host2上面看到file1和file2.
如果你使用命令zfs send -i p1/f1@snapshot2 p1/f1@snapshot3 | ssh
10.13.31.32 zfs recv p2/f1,这是一个数据的增量备份(-i),这次只会把
file3传过去而不会再次传file1和file2.
如果出现错误,例 如,cannot receive incremental stream: destination p2/f1 has been modified,你需要在host2上运行rollback把snapshot2给恢复一下,或
者是直接使用
zfs send -i snapshot2 p1/f1@snapshot3 | ssh 10.13.31.32 zfs recv -F p2/f1来忽略快照的恢复即可。

因 此,增量备份指的是zfs send|receive之间的传输,snapshot仅仅是当时文件的一个
快照而已

例如:
host1
bash-3.00# cd /p1/f1/.zfs/snapshot
bash-3.00# ls -l snap1
total 2
-rw-r--r-- 1 root root 14 Sep 9 11:05 f1
bash-3.00# ls -l snapshot2
total 4
-rw-r--r-- 1 root root 14 Sep 9 11:05 f1
-rw-r--r-- 1 root root 31 Sep 9 11:07 file2
bash-3.00# ls -l snapshot3
total 6
-rw-r--r-- 1 root root 14 Sep 9 11:05 f1
-rw-r--r-- 1 root root 31 Sep 9 11:07 file2
-rw-r--r-- 1 root root 29 Sep 9 11:34 file3

host2:
bash-3.00# zfs list
NAME USED AVAIL REFER MOUNTPOINT
p2 172K 66.9G 24K /p2
p2/f1 42.5K 66.9G 23.5K /p2/f1
p2/f1@snapshot2 19K - 23K -
p2/f1@snapshot3 0 - 23.5K -
bash-3.00# cd /p2/f1
bash-3.00# ls -l
total 6
-rw-r--r-- 1 root root 14 Sep 9 11:05 f1
-rw-r--r-- 1 root root 31 Sep 9 11:07 file2
-rw-r--r-- 1 root root 29 Sep 9 11:34 file3

加载中
返回顶部
顶部