Michael Hampton 的建议很到位,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
# 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.
Michael Hampton 的建议很到位,Solaris 手册页也很好,但是对于初学者来说,这个概念并不容易掌握。我将概述我在编写脚本时所经历的要点。
本质上,你首先照常做一个快照
x
和一个完整的:send/recv
之后,您进行快照
x+1
并以增量方式发送。您可以删除源上的旧快照,但您需要保留最后一个(最近的),以便计算差异。如果您丢失/销毁源上的最后一个快照,您将不得不从完整的初始发送重新开始!一些我自己的经验的建议:
date
- 编号更容易,但如果您查看日志和/或频繁拍摄快照,日期会更好。-nv
模拟时,请注意这适用于发送,但会因接收失败而失败,因为没有什么可以接收。这在手册或错误消息中并不明显。bookmarks
功能,可以作为规避此问题的一种方法。不幸的是,它目前只支持单个快照而不是递归,所以你必须自己添加递归代码。znapzend
是其中最成熟的一个。