华为云 OBS 跨区域备份实战:一次误删事故后的 RPO/RTO 复盘

举报
yd_264409687 发表于 2026/11/03 08:29:00 2026/11/03
【摘要】 上个月团队出了个事故:运维同学在清理测试环境时,误删了生产环境 OBS 桶里的一批业务附件(约 200GB)。虽然最后通过华为云的桶版本控制 + 跨区域复制找回来了,但恢复过程暴露了我们备份策略里的几个盲区。今天把这次事故的复盘和最终的备份方案写出来,给用 OBS 存业务数据的兄弟提个醒。一、事故经过与损失误删发生在周五下午,业务方周一早上才发现附件 404。桶开启了版本控制,删除操作产生的...

上个月团队出了个事故:运维同学在清理测试环境时,误删了生产环境 OBS 桶里的一批业务附件(约 200GB)。虽然最后通过华为云的桶版本控制 + 跨区域复制找回来了,但恢复过程暴露了我们备份策略里的几个盲区。今天把这次事故的复盘和最终的备份方案写出来,给用 OBS 存业务数据的兄弟提个醒。

一、事故经过与损失

误删发生在周五下午,业务方周一早上才发现附件 404。

桶开启了版本控制,删除操作产生的是 Delete Marker,历史对象还在;

但桶没有开启跨区域复制,数据只在单区域,且没有定期导出对象清单(Inventory)。

恢复时的问题是:知道对象被删了,但不知道“哪些对象在哪个时间点被删”。最后是靠 OBS 的事件通知 + 函数工作流(FunctionGraph)日志,反查出删除时间窗口,再用版本控制批量恢复历史版本。整个过程耗时约 6 小时,RTO 远超预期。

二、暴露的三个问题

单区域 = 单点风险。虽然 OBS 本身是多副本存储,但区域级故障或误操作(如整个桶的 ACL 被改)没有第二份副本兜底。

版本控制不是万能药。版本控制能防误删,但生命周期规则如果配错(比如 30 天自动删除旧版本),历史版本会被清理掉。我们检查后发现,幸好没配非当前版本过期规则。

没有对象清单,恢复靠猜。200GB 的桶里有几十万个小文件,没法靠人工比对“哪些该在、哪些不在”。

三、改进后的备份方案

1. 开启跨区域复制(CRR)
把生产桶复制到一个异地桶,跨区域选择不同 Region。华为云 OBS 的 CRR 支持近实时复制(通常秒级到分钟级),RPO 可以控制在分钟级。

json
// 跨区域复制规则示意
{
  "rules": [{
    "id": "backup-rule",
    "status": "Enabled",
    "destination": {
      "bucket": "prod-backup-bucket",
      "storageClass": "STANDARD"
    },
    "deleteMarkerReplication": "Enabled"
  }]
}
注意 deleteMarkerReplication 要开启,这样源桶的删除操作也会同步到备份桶,避免两边状态不一致——但这也意味着备份桶不能防误删,所以还要配合下面的版本控制。

2. 备份桶独立开启版本控制 + 对象锁(WORM)
备份桶开启版本控制,并对关键前缀配置对象锁(合规模式),防止备份桶本身被误删或篡改。这是最后一道防线。

3. 每日生成对象清单(Inventory)
OBS 支持按天/周生成桶内对象的 CSV/ORC 清单,落到另一个桶里。恢复时用清单做比对,能快速定位缺失对象。

bash
# 通过 obsutil 拉取最新 Inventory 清单做比对
obsutil ls obs://prod-inventory/ -limit=1
4. 定期恢复演练
每季度做一次“删 10 个对象 → 从备份桶恢复”的演练,验证 RTO。我们这次定的目标是:200GB 以内、10 万对象,RTO ≤ 2 小时。

四、复盘结论

OBS 的版本控制和跨区域复制是两块基石,但“能恢复”和“快速恢复”是两回事。真正的备份体系要能回答三个问题:数据在哪、丢了什么、多快能拿回来。这次事故最大的教训是:别把版本控制当备份,别把单区域当高可用,更别在没有清单的情况下做恢复。

希望这篇复盘能给用华为云 OBS 的团队一点参考,尤其是存业务附件的,早点把跨区域复制和对象清单配起来,真出事的时候能省下好几个小时。

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0)

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。