SH

Soloharness

概念 · 辨析 · Agent

← 返回概念辨析

Concept Contrast Fable

恢复时间目标和恢复点目标

RTO 问的是「出故障之后多久恢复正常」,RPO 问的是「允许丢多少时间的数据」。RTO 决定你要备几台机器、要不要热备,RPO 决定你要多久做一次备份、能做增量还是必须实时同步。客户把两个目标当成同一个「恢复要求」提给你,你的架构成本可能差五倍。

寓言

救火队和档案馆

市政厅下面有两个部门:救火队和档案馆。救火队的指标是「接警后几分钟到场」,档案馆的指标是「每次备份覆盖多少天的文件」。两个部门各自运转,井水不犯河水,直到市政府统一招标了一套「灾备系统」,把两件事揉进了一份标书里。

中标的供应商给了两个数字:系统故障后四小时内恢复,数据每天凌晨备份一次。市政信息中心主任老贾看了数字,觉得还行,签了合同。系统上线后六个月,市政内网被勒索病毒加密了。

老贾下令启动灾备恢复。供应商说系统可以恢复,但最近一次备份是今天凌晨两点。病毒是下午四点发的,两点到四点之间处理的审批工单、签发的许可证、录入的缴费记录,全部丢掉了。老贾急得跳脚:你跟我说四小时恢复,没说会丢两小时的数据。供应商摊手:你标书里写的 RTO 四小时,没写 RPO 多久。

老贾把这次事故掰开来看。四小时恢复指的是「救火队什么时候把火灭了」,两小时数据丢失指的是「档案馆上次归档之后到火灾之间写了多少没存档的东西」。这两个数字衡量的是完全不同的两件事:一个衡量响应速度,一个衡量数据损失。把两件事写进同一个技术要求里,等于根本没提数据损失的要求。

老贾重新写了灾备标书。RTO 从四小时压到一小时——需要加一台热备服务器。RPO 从二十四小时压到五分钟——需要换用准实时同步方案。两个数字改完,预算翻了四倍。老贾拿着新标书找领导要钱。

领导问:为什么之前四小时够用,现在一小时不够?老贾把上次事故的时间线贴在领导桌上:四小时恢复是够——但那次丢了两小时数据,市民排队补办工单的投诉电话打爆了热线。恢复得快不代表丢得少。高速恢复搭配大段数据丢失,跟没恢复差不多。

老贾后来给各科室做培训,画了两个钟。第一个钟指着从故障到恢复的时长,叫「能等的极限」。第二个钟画了一段被涂黑的区间,标注「这段时间里的所有动作全丢」,叫「能丢的极限」。他问各科室负责人:你们的业务,能等多久?能丢多久?两个答案不一样,灾备方案就不一样。

年底老贾收到一封供应商的感谢信,说这套标书格式被他们内部当成了客户需求沟通模板。老贾回信说:不是我写得周全,是被病毒教训了之后才想明白的。灾备不是一道题,是两道题。两道题分开问,答案才能对得上方案。

恢复时间目标

系统或服务从中断状态恢复到正常运行状态所能接受的最大时长。它定义的是「能等多久」,决定了灾备架构中是选择冷备、温备还是热备。

恢复点目标

系统在故障后所能接受的最大数据丢失窗口,通常以时间为单位。它定义的是「能丢多少」,决定了备份频率——每小时备份、实时同步还是每日备份。

故事对应

  • 救火队赶到现场的时间:RTO——衡量故障响应速度。
  • 档案馆备份覆盖的间隔:RPO——衡量数据丢失的上限。
  • 四小时恢复但丢了两小时数据:RTO 达标但 RPO 未被定义,灾备效果大打折扣。
  • 加热备服务器把 RTO 压到一小时:缩短恢复时间需要的技术投入。
  • 换准实时同步把 RPO 压到五分钟:缩短数据丢失窗口需要的技术投入。

落到项目里

接到灾备需求时,把 RTO 和 RPO 拆成两个独立参数问客户。同一个系统里不同模块可以有不同的 RTO/RPO——支付模块的 RPO 可能要求零丢失,报表模块的 RPO 可以接受一天。拆开之后架构师才能做差异化设计,避免用一个最严苛的数字覆盖所有模块、导致整体成本失控。