tva
← Insights

自托管服务的灾难恢复:我们的备份策略

威胁模型

灾难恢复规划从威胁建模开始:你实际上在防范什么?对于自托管基础设施,主要风险是:服务器硬件故障、数据库损坏、意外删除,以及托管提供商故障。

这个优先级顺序很重要:硬件故障的概率远高于提供商级别的中断,而意外删除的概率高于任何一种。备份策略应该反映这一点。

备份架构

我们的备份架构基于 3-2-1 规则:至少三份数据拷贝,存储在两种不同媒介上,其中一份异地保存。

在实践中:本地卷快照(快速,用于意外删除恢复)、同区域对象存储(便宜,用于硬件故障恢复),以及跨区域对象存储(用于提供商级别故障)。

数据库备份

PostgreSQL 备份使用 pg_dump 和连续 WAL 归档的组合。pg_dump 处理每日快照(可以在不停机的情况下恢复到特定时间点),WAL 归档通过 Barman 处理,提供时间点恢复能力,最大潜在数据丢失为 5 分钟。

恢复演练

从未测试过的备份算不上备份。我们每季度进行一次完整的恢复演练:从备份恢复数据库到暂存服务器,验证数据完整性,并记录实际恢复时间(RTO)。

最近一次演练的 RTO:数据库恢复 23 分钟,应用层恢复 47 分钟(包括重新配置和验证),完整服务恢复 94 分钟。这符合我们的 SLA。

监控备份健康状况

备份失败是无声的,除非你明确监控它们。我们监控每次备份运行的成功状态,验证备份文件大小在正常范围内(意外的小备份可能表示截断),以及每日检查对象存储中最新备份的时间戳。

相关洞见

相关文章