我的服务器将增量备份保存在zfs卷上。 由于数据非常相似,我可以显着减less增长 – 每天大约有500GB的“新数据”,但是池的增长量只有5-10GB /天,其余的则存储在重复数据删除/压缩中。
我想将备份复制到encryption的usb磁盘,因为这个原因,我也将其设置为zfs卷。 当我使用rsync或zfs同步备份发送/接收时,似乎所有数据都被再次传输(只是作为在USB驱动器上的重复数据)。 由于这个原因,目前的备份时间超过了24小时,这使得日常备份成为不可能。
有没有办法更快地备份?
迈克尔·汉普顿(Michael Hampton)的build议非常明确,Solaris手册页非常好,但对于初学者来说,这个概念并不容易掌握。 我将概述我编写脚本时遇到的问题。
本质上,你像往常一样做一个快照x和一个完整的send/recv :
# Initial send, destroy all filesystems on the destination # pool which are not present on the source pool. zfs snapshot pool0@snap0 zfs send -R pool0@snap0 | zfs recv -Fdu pool1
之后,你做快照x+1并递增发送。 您可以删除源上的旧捕捉,但需要保留最后一个(最近一个),以便计算差异。 如果您丢失/销毁源代码上的最后一个快照,您将不得不重新开始一个完整的初始发送!
# incremental send, destroy all filesystems on the destination # pool which are not present on the source pool. Afterwards, old # snapshots can be destroyed. zfs snapshot pool0@snap1 zfs send -R -I pool0@snap0 pool0@snap1 | zfs recv -Fdu pool1 zfs destroy pool0@snap0 # Afterwards, repeat and replace snap1 with snap2 and snap0 with snap1 etc.
一些来自我自己的经验的build议:
date – 编号更容易,但如果您查看日志和/或频繁执行快照,date会更好。 -nv模拟时,请注意这适用于发送,但是会因recv而失败,因为没有任何东西可以接收。 这从手册或错误消息中不明显。 bookmarksfunction,这可以解决这个问题。 不幸的是,它目前只支持单个快照而不是recursion,所以你必须自己添加recursion代码。 znapzend是其中最成熟的一个。