← 中文资源

简体中文版本

故障域(Failure Domain)

故障域是一次故障能被限制在其中的边界,例如进程、机架、可用区或区域,它决定了哪些组件会一起失效。

阅读英文原文

故障域的含义

故障域是一次故障能够波及的范围。进程是较小的域,主机、机架、可用区、区域和云厂商依次增大。关键问题不是“有多少副本”,而是“这些副本共享什么”。三个实例运行在同一主机上就共享故障域;三个可用区依赖同一控制平面,则共享另一种故障域。

共享命运

故障域由共享命运定义,而不是图上的名字。不同可用区的两个服务,如果使用同一数据库、同一身份提供者、同一 DNS 区域或同一部署流水线,仍会一起失败。大型事故中相关性失败是常态:网络控制平面故障会让健康的计算资源不可达。要梳理依赖,包括控制平面和外部提供者,并追问单个凭证或配置错误能拖垮什么。

映射故障域

从用户旅程开始,追踪每个依赖,记录状态存放在哪里、副本如何分布、哪些组件由同一运维团队或供应商管理。测试边界:终止实例、阻断可用区、撤销凭证。注入实验能揭示理论边界在现实中是否成立。

设计与局限

把副本放在独立域中,在每个域保留足够容量,避免强制所有域同步等待的依赖,并用舱壁阻止一个域的故障消耗共享资源。与简单复制相比,有意的域设计还要考虑执行故障转移的机制本身失败。每个架构都有最大的域,超出它就没有冗余。例如,多区域设计仍可能因一个全局证书或一条部署流水线而失败。要显式接受剩余风险、记录它,并测试仍然存在的恢复路径。