2 个不稳定版本
0.2.0 | 2019年11月22日 |
---|---|
0.1.0 | 2019年7月10日 |
#1270 in 文件系统
28KB
608 行
Zoop
管理 zfs 快照传输
计划
- 选择要复制的快照,提供正则表达式或类似匹配机制
- send/recv 需要大量的缓冲,send/recv 也会重叠
- send/recv 初始时网络利用率通常为零,因为它正在检查磁盘以确定将要发送的内容
- 尽可能确保我们有 N 个 send/recvs 同时运行
- 在可以进行
recv
之前启动 N 个send
,以确保我们可以完全利用网络。
- 快照清理
- 使用时间线桶
- 使用目标中的可用空间
- 使用已知的已传输内容
- 避免“不存在”的问题
- 管理复制过程中的删除操作
zfs recv
到挂载的文件系统- 必须支持
- 能够检查只读快照是备份系统的重要功能(特别是在本地快照有限的情况下)
- 最好不在目标上自动挂载,以便
zfs allow
提供的权限对于 recv 足够。- 不清楚禁用挂载的 recv 如何与现有的挂载文件系统交互
- 可能不允许接收会影响挂载点(例如:删除它们)的接收
- 考虑文件系统被删除的情况
zfs 快照 & 同步管理工具
- sanoid
- https://github.com/jimsalterjrs/sanoid
syncoid
:zfs send,使用-I
和/或-i
。支持恢复。- 不使用 zfs 书签。
- 创建/删除策略?
- zxfer
- 如果已传输到目标的快照在源处后来被删除,则不高兴。需要在它同步之前在目标上删除它们。
- 使用
zfs send -i
,不使用-I
。命令send-nPv
send-nv
receive
,receive -F
send-nPv-i
send-i
list-t 文件系统,卷-Ho 名称-s 创建
list-Hr-o 名称-s 创建-t 快照
list-Hr-o 名称-S 创建-t 快照
list-t 文件系统,卷-Hr-o 名称
- 完全不处理书签(仅与快照一起使用)
- zrep
- 复制和故障转移
- ksh
- z3
- 将 zfs 快照发送到 s3
- ZnapZend
- zfsnap
- pyznap
- zrepl
- 语言: go
- 快照 + 复制
- 使用 TLS 或 SSH 传输
- 作为守护进程运行
- 提供 "状态" 接口
- 拉取或推送配置
- 不支持原始/加密发送
- 不支持发送恢复
- 使用书签按文件系统跟踪上次同步位置
与 zfs 书签和 send 相关的各种参考
- http://open-zfs.org/wiki/Documentation/ZfsSend
- https://www.reddit.com/r/zfs/comments/5op68q/can_anyone_here_explain_zfs_bookmarks/
- https://utcc.utoronto.ca/~cks/space/blog/solaris/ZFSBookmarksWhatFor
快照名称样式
- zfs-auto-snapshot vanilla
<前缀>_<标签>_YYYY-MM-DD-HHmm
<prefix>
通常是zfs-auto-snap
<label>
通常是以下之一frequent
、hourly
、daily
、monthly
、weekly
。
- zfs-auto-snapshot sort-mod
<前缀>_YYYY-MM-DD-HHmm_<标签>
<prefix>
通常是znap
<label>
通常是以下之一frequent
、hourly
、daily
、monthly
、weekly
。
快照策略
- zfs-auto-snapshot
- 按类别计数
- 频繁 (15m): 4
- 每小时: 24
- 每天: 31
- 每周: 8
- 每月: 12
- 按类别计数
- Mac Time Machine
- 创建
- 未指定 "本地" 快照的数量/速率
- 每小时: 24
- 每天: 31
- 每周: 如空间允许的最多
- 删除
- 从旧到新
- 创建
- snapper
- 基于时间的
- 与 zfs-auto-snapshot 和 Time Machine 使用相同的 "每周期限制"。与 zfs-auto-snapshot 不同,它动态决定快照所属的组(它们不会被明确标记为每日等)
- 基于启动的
- 之前/之后
- 基于时间的
依赖关系
~2MB
~44K SLoC