2. 故障域基础概念:什么是故障域、故障域的类型与隔离意义

2.1 故障域定义

故障域(Fault Domain) 是指系统中一组共享同一故障风险边界的资源集合。当该边界内的某个组件(电源、网络、存储、计算节点)发生故障时,域内所有资源均可能受到影响。故障域的本质是 故障传播的物理或逻辑边界。

核心公式: 故障域半径 = 单点故障影响范围。半径越小,爆炸半径越小,系统韧性越高。

2.2 故障域的类型

根据资源组织方式与故障传播机制,故障域可分为以下三大类:

类型 定义 典型示例 故障传播特征
物理故障域 基于硬件物理边界划分,共享同一电源、散热、机架或网络交换机的资源集合。 同一机架(Rack)、同一电源分配单元(PDU)、同一网络 ToR 交换机。 物理设备故障(断电、网卡失效、硬盘损坏)直接导致域内所有服务中断。
逻辑故障域 基于软件配置、服务依赖或数据分区划分的逻辑边界,不依赖物理位置。 同一 Kubernetes 集群的 Node、同一微服务实例组、同一数据库分片。 软件缺陷、配置错误、流量洪峰在逻辑边界内级联扩散。
云可用区故障域 云服务商提供的独立物理区域,每个可用区拥有独立的电力、冷却和网络设施。 AWS 可用区(us-east-1a)、Azure 可用区(Zone 1)、GCP 可用区。 可用区级故障(区域性断电、光缆中断)导致该区内所有云资源不可用。

2.3 故障域隔离的意义

故障域隔离是平台工程中实现 高可用(HA) 与 容错(Fault Tolerance) 的基础手段。其核心价值体现在以下四个维度:

  1. 限制爆炸半径: 将故障影响范围控制在单一故障域内,避免级联故障扩散至整个系统。
  2. 保障业务连续性: 通过跨故障域部署冗余实例,确保单个域失效时流量自动切换至健康域。
  3. 满足合规审计要求: 金融、医疗等监管行业要求关键系统必须实现物理或逻辑故障域隔离,并通过演练记录证明隔离有效性。
  4. 降低运维复杂度: 明确的故障域边界使变更、升级、演练的审批复核有据可依,减少“未知依赖”导致的意外故障。
平台工程实践要点: IDP(内部开发者平台)在编排资源时,应强制要求每个工作负载声明其故障域约束(如:topologySpreadConstraints、podAntiAffinity),并在审批记录中核验是否满足至少跨 2 个故障域部署。

2.4 故障域隔离层次结构(SVG)

下图展示了从物理机架到云可用区的故障域隔离层次,以及各层次之间的包含关系:

故障域隔离层次结构 故障域隔离层次结构 物理故障域 共享同一机架、电源、网络交换机的资源集合 示例:机架 A(Rack-A)、PDU-01、ToR-01 逻辑故障域 基于软件配置、服务依赖或数据分区划分的逻辑边界 示例:K8s Node 组、微服务实例组、数据库分片 云可用区故障域 云服务商提供的独立物理区域,拥有独立电力、冷却和网络 示例:AWS us-east-1a、Azure Zone 1、GCP us-central1-a 隔离意义 限制爆炸半径 保障业务连续性 满足合规审计 降低运维复杂度 跨域冗余部署 流量自动切换 审批记录核验

2.5 故障域隔离策略对比

不同故障域类型对应不同的隔离策略与实现方式,下表总结了常见场景下的推荐做法:

故障域类型 隔离策略 实现方式 审批记录复核要点
物理故障域 跨机架/跨电源域部署 机架感知调度、PDU 分组 确认 Pod 分布在 ≥2 个机架
逻辑故障域 反亲和性规则、拓扑分布约束 K8s podAntiAffinity、topologySpreadConstraints 验证 YAML 中 topologyKey 配置正确
云可用区故障域 跨可用区部署、多区域容灾 云负载均衡跨可用区分发、RDS 多可用区部署 检查云资源标签是否覆盖 ≥2 个可用区
常见误区: 仅依赖逻辑故障域(如 K8s 反亲和性)而忽略物理故障域,可能导致所有 Pod 被调度到同一机架的不同 Node 上,一旦机架断电,所有实例同时失效。平台工程中必须同时考虑物理与逻辑故障域的叠加隔离。

2.6 故障域隔离在 IDP 演练中的落地

在平台工程 IDP 故障域隔离演练中,审批记录复核需重点关注以下检查项:

  • 资源分布检查: 确认工作负载的实例是否均匀分布在至少 2 个故障域(物理/逻辑/云可用区)。
  • 依赖链路检查: 确认数据库、缓存、消息队列等有状态服务是否也实现了跨故障域部署。
  • 流量切换验证: 确认负载均衡器是否配置了跨故障域的健康检查与流量分发策略。
  • 演练记录完整性: 确认每次演练的故障注入目标、影响范围、恢复时间均记录在案,且与故障域边界一致。
审计红线: 若审批记录中发现某工作负载的所有实例位于同一故障域,必须标记为“高风险”,并要求重新部署后方可进行演练。