私人离岸基础设施
存储与恢复应用 · 4 分钟阅读

快照与备份:选择你需要承受的故障

比较恢复点、故障边界和应用程序一致性,而不是假设快照和独立备份提供相同的保护。

作者 SwissOctet 编辑部
直接答案

快照是某一时间点的表示,其保护能力取决于实现方式。备份策略增加了有意的保留、访问隔离和经过测试的恢复。有些快照就是备份;另一些则依赖原始存储。要问清楚:在删除、入侵或主环境丢失时,什么能够幸存。

01

先描述副本,再命名它

“快照”一词告诉你某个时间点已被表示,但没有说明可恢复数据保存在哪里,或谁可以删除它。原始存储上的文件系统快照和提供商管理的块快照可能具有不同的故障边界。从实现方式入手,而不是把标签当作普遍承诺。

AWS 文档将 EBS 快照描述为其卷的增量时间点备份。这是一种具体实现,并不能证明每个快照选项的行为都相同。对于任何服务,都要问恢复是否依赖原始卷、副本是否离开主故障域,以及源被移除时会发生什么。

02

比较你预期要承受的故障

更新后的快速回滚和账户丢失后的恢复是不同的问题。本地快照可能便于处理第一种情况,但对第二种情况提供的隔离很少。独立副本可以增加保护,但前提是其存储、访问和删除路径与你准备应对的事件充分分离。

写下故障和所需结果。这个说明性比较是一种决策辅助,不是 SwissOctet 的功能列表。它鼓励提出关于副本和控制权的问题,而不是声称某种技术总是更优。实际结果取决于配置和运营商记录的恢复流程。

场景针对快照的问题针对备份的问题
应用更新出错我能回到预期的时间点吗?可用恢复需要多长时间?
主磁盘丢失副本是否依赖该磁盘?我能恢复到全新存储上吗?
管理账户被入侵这个账户能删除所有副本吗?删除权限是否分离?
数周后才发现错误那个时间点是否仍然保留?保留期是否覆盖发现延迟?
03

检查应用一致性

磁盘可以在应用仍在更改文件时捕获文件。根据软件和快照过程的不同,结果可能表示崩溃一致性状态,而不是协调的应用状态。不要假设文件可读就意味着数据库及其相关上传内容一致。使用应用或数据库文档所述的备份方法。

PostgreSQL 的持续归档设计说明了这种差异:恢复需要合适的基础备份和所需预写日志文件的连续序列。在数据库运行时随意复制的目录不是等效流程。如果应用还在数据库之外存储文件,请规划如何将这两个数据集一起恢复。

04

将保留期视为恢复窗口

保留期应考虑错误可能多久未被发现。十天窗口无法帮助处理一个月后才发现的意外删除。无限期保留每个副本会带来另一个问题:成本、敏感数据暴露不断增加以及删除策略不明确。根据具体的运营和数据处理要求选择保留期。

用有用的上下文标记恢复点,例如应用版本和已完成作业时间,但不要嵌入机密信息。保留足够历史记录,以区分良好状态和损坏状态。在清理之前,确认所选系统如何处理共享或增量数据;删除一个带标签的时间点可能并不等同于删除一个简单的独立文件。

05

将成功作业与已验证数据分开

备份工具报告成功,只能证明其流程在其规则下完成。它不会自动证明所有重要应用数据都被选中、每个存储字节仍然完整,或新服务器可以使用该结果。这些是不同的检查。将仓库健康、选择审查和有代表性的恢复纳入运营计划。

Restic 文档区分了默认仓库检查和读取已存储 pack 数据的验证。完整的数据读取检查可能消耗更多时间和带宽。这个例子把规划要点具体化:决定验证实际读取什么,并为这项工作做预算。使用工具文档,而不是假设每个名为 check 的命令都有相同的覆盖范围。

06

测试一次小型完整恢复

设想一个包含数据库、上传图片和配置的出版物。将这三者全部恢复到私有测试环境,然后打开一篇文章并验证其附件。演练期间保持计划邮件、支付和发布集成禁用。只测试一个随机文本文件会遗漏使应用有用的那些关系。

测量所需时间,并记录缺少哪些凭据、软件包版本或外部依赖。检查恢复文件的权限,而不仅是其内容。恢复演练常常会发现数据存在,但使用它所需的说明或访问权限从未与运营计划一起保存。

07

将可选备份视为一项具体服务

配置 SwissOctet 时,查看该系列的确切备份选项和保留期。询问它覆盖哪些卷和应用数据、恢复是否自助,以及主配置更改时会发生什么。仅凭选项标签并不能确立独立副本、不可变仓库或数据库一致性恢复点。

在适合工作负载的地方使用快照,并针对它们无法覆盖的故障保留更广泛的备份策略。为重要数据记录一条独立恢复路径,保护能够擦除副本的凭据,并测试该流程。最强的选择是能在你定义的场景中幸存的选择,而不是名称最令人安心的选择。

将其转化为行动

您的实用清单。

  • 确定可恢复数据所在的位置。
  • 列出副本必须承受的故障。
  • 使用应用支持的一致性方法。
  • 根据发现窗口选择保留期。
  • 单独保护删除权限。
  • 在隔离环境中恢复完整应用。
常见问题

重要细节。

快照永远不是备份吗?+

有些快照实现就是备份。有用的区别在于其存储依赖、保留期、访问模型和经过测试的恢复,而不只是标签。

成功的完整性检查能证明应用可以工作吗?+

它只能证明该检查覆盖的内容。请单独测试应用恢复、配置、权限和数据关系。

我应该把备份保留在同一台服务器上吗?+

同服务器副本可能有助于处理有限错误,但会共享重要故障。重要数据需要一条位于你打算承受的故障边界之外的恢复路径。

主要参考资料

前往来源。

这些参考资料支持本指南中的技术概念。在更改生产系统之前,请遵循当前文档。

  1. Amazon EBS:快照 docs.aws.amazon.com
  2. PostgreSQL:持续归档和时间点恢复 www.postgresql.org
  3. Restic:使用仓库和完整性检查 restic.readthedocs.io

由 SwissOctet 提供编辑指导。示例仅作说明。服务规格、可用选项和合同条件必须单独核实。

连接知识

相关基础设施。

保持联系

您的下一份现场笔记。

探索所有指南