存储持久化与冷备执行方案
日期:
2026-04-04
负责人:Backend / Platform
范围:本地运行态持久化 + Google Drive 异地冷备
1. 问题定义
- 本地磁盘容量有限,不适合长期保留大量历史数据。
- 运行态需要低延迟读写,容灾又需要异地可恢复。
- 目标冷备后端为 Google Drive,必须显式处理配额与 API 限制。
2. 运行原则
- 热存储与冷存储严格分离。
- 不把 Google Drive 当业务热存储挂载。
- 先打包再上传,避免小文件 API 崩塌。
- 上传前加密。
- 备份/恢复作业必须可审计、状态可确定。
3. 参考架构
- 热平面:
- 本地 SQLite/Postgres 承载运行态数据
- 备份平面:
- 快照构建(DB dump + 必需配置导出)
- 打包(
tar.zst/tar.gz) - 加密去重(
restic) - 远端同步(
rclone crypt-> Google Drive)
- 控制平面:
- 备份策略服务
- 作业调度 + 保留策略管理
- 恢复 prepare/commit
- 审计事件日志
4. 私有控制面
- 本地摘要读取
- 策略读写
- 备份作业运行 / 列表 / 详情
- 恢复 prepare / commit / cancel
精确的 admin 路由名只保留在私有运维文档。公开方案只描述能力分组与审计要求。
5. 数据模型(MVP)
storage_policiesbackup_jobsbackup_artifactsrestore_jobsstorage_audit_events
6. 默认策略
- RPO:
24h - 本地保留:最近
2~3个快照 - 远端保留:滚动
30天 - 上传带宽上限:默认开启
- 每日上传预算保护:默认开启
- 单活备份作业锁:默认开启
6.1 当前实现进展(2026-04-07)
- 存储冷备服务已落地策略归一化与关键保护:
- 远端加密要求
- 每日上传预算
- 可选带宽限制
- 单活备份作业锁
- 备份作业与恢复作业已持久化,具备确定状态转移,可通过管理员接口查询。
- 上传入口(template/profile-pack submit)已补齐幂等重放与冲突处理,减少重复提交进入备份链路前的噪声。
7. Drive 限制处理
- 每日上传硬上限保护。
- 通过 rclone 启用分块与断点续传。
- 禁止上传明文数据库/PII,强制加密路径。
- 通过“打包 + 去重”降低 API 压力。
8. SRE 护栏
- 备份作业成功率 SLI。
- 恢复准备校验成功率 SLI。
- 存储压力控制:
- 高水位阻断全量备份
- 降级为关键数据快照并发告警
- 周期性 canary restore 演练。
9. 风险与控制
- 风险:密钥管理失误导致备份不可恢复
控制:密钥托管 SOP + 恢复演练门禁。 - 风险:打包阶段冲击本地磁盘
控制:打包前配额检测 + 可流式打包。 - 风险:备份成功但不可恢复
控制:发布前必须通过 restore-prepare 校验。