Project 三渠道备份策略
版本:v1.0
日期:2026-08-30
状态:策略已确认,尚未实施
1. 权威源与目标
101 /root/project 是唯一源目录和代码权威。三条渠道均为单向接收,不得反向覆盖 101。
| 渠道 | 目标 | 保留策略 | 频率 |
|---|---|---|---|
101 /srv/codex-hub-backup |
本机灾难恢复与回滚 | 3 份每日、2 份每周、3 份每月;重大变更前快照保留 7 天 | 每日 + 变更前触发 |
Cloudreve Project WebDAV |
跨设备取得当前项目状态 | 只保留当前镜像,不额外维护历史版本 | 每 5 分钟轮询变化 |
DD /root/project |
异地主机恢复 | 1 份当前完整副本 + 2 份历史副本 | 每日一次,重大变更后可自动触发 |
2. 实现选型
| 方案 | 可维护性 | 部署复杂度 | 性能 | 学习成本 | 决策 |
|---|---|---|---|---|---|
| WebDAV 直接挂载作为工作区 | 低;缓存、锁和 Unix 语义不稳定 | 低 | 受缓存和网络影响 | 低 | 禁止用于活动工作区 |
| rclone 单向同步/复制 | 高;支持过滤、清单、重试和 dry-run | 中 | 适合周期性扫描 | 低 | Cloudreve 候选,先完成行为烟测 |
| rsync/SSH 直接复制到 DD | 中;目录语义好但数据面受 SSH 路由约束 | 中 | 高 | 低 | 不经 Tailnet 传输前不得启用 |
| 自研实时同步守护进程 | 低;需自行处理冲突、锁、删除和恢复 | 高 | 未知 | 高 | 不采用 |
Cloudreve 使用单向轮询镜像,不宣称事件级实时。DD 使用保留目录结构的单向副本。Tailnet 只用于控制,不作为文件传输通道。
3. 删除与异常处理
- 101 源目录允许正常新增、修改和删除。
- Cloudreve 对应删除使用其原生回收站;不另建第二套 Cloudreve 回收机制。
- Cloudreve 覆盖是否进入原生回收站必须在实施前用临时对象实测;若不会保留旧对象,按“当前镜像不保留历史版本”处理。
- DD 的目标异常少文件不得自动确认删除;通过清单校验后从 101 修复,明确源端删除后才传播删除。
- 单个目标失败只暂停该目标并退避重试,不停止 101 工作区或其他目标。
- 同一目标禁止并发运行多个同步任务。
4. 本机快照与空间保护
本机快照按以下层级保留:
- 每日:最近 3 份;
- 每周:最近 2 份;
- 每月:最近 3 份;
- 重大变更前:临时快照保留 7 天。
备份盘 /srv/codex-hub-backup 必须确认来源为 /dev/sda1。空间阈值:
- 目标:至少保留 220G 可用空间;
- 警告:可用空间低于 250G;
- 暂停新快照或新同步写入:低于 220G;
- 紧急保护:低于 200G,仅允许恢复和清理过期回收对象。
空间不足时不得静默改写 /backup 或系统盘。
5. 实施前验收门
- 使用 101 Project 凭据完成 Cloudreve 临时目录读取、上传、下载、SHA-256 回读和删除烟测。
- 实测 Cloudreve 覆盖行为与原生回收站行为。
- 对
AgentMeshOS执行 Cloudreve 5 分钟轮询 dry-run,只生成差异清单,不执行删除。 - 验证 DD 的
/root/project目录结构、权限边界和非 Tailnet 数据传输路径。 - 验证清单、哈希、失败退避、单目标锁和空间阈值。
- 完成一次恢复演练后,才允许扩大到全部 Project。
Cloudreve 写入故障记录(2026-08-30)
首次 PUT/DELETE 烟测返回 500,但根目录 PROPFIND 和文件 GET 正常。现场核对 DD Cloudreve 容器后确认:默认存储策略原指向容器数据库卷 /cloudreve/data/uploads/{uid}/{path},实际业务上传目录挂载在 /cloudreve/uploads,因此所有写入操作均失败。已先备份 cloudreve.db,再将策略修正为 /cloudreve/uploads/{uid}/{path} 并重启 Cloudreve。修复后临时文件 PUT 返回 201、GET 返回 200 且内容一致、DELETE 返回 204;AgentMeshOS dry-run 通过。后续验收固定分离检查 PROPFIND、PUT、GET/哈希回读和 DELETE 四项,不再以单一 HTTP 可达性判断写入健康。
当前结论:Cloudreve 写入链路已通过最小烟测;同步服务、Cloudreve 写入和 DD 副本仍未启用。