本文档介绍多机房多运营商场景下,基于火山引擎云调度(GTM)的流量调度和容灾方案。
概述
在互联网环境下,通常使用基于 DNS 的方式实现多个机房的流量管理和容灾。机房可以是自建的数据中心,也可以是公有云的地域(Region)或可用区(AZ)。机房的流量接入涉及 线路带宽 和 负载均衡 等资源。
调度容灾方案
多运营商、多机房场景下,调度容灾方案需要解决以下问题:
- 分运营商接入
- 保证中国移动、中国联通、中国电信的流量不会跨运营商传输
- 所有流量都有对应的机房作为目标地址,防止空解析
- 负载均衡
- 多个机房的容量不同,需要进行负载均衡,负载均衡的结果符合机房容量的限制
- 故障转移
- 某个机房单个 IP 故障或机房整体故障
- 某个运营商故障
针对上面的问题,调度容灾方案需要达到以下目标:
- 中国移动、中国联通、中国电信的流量相互隔离。同时,配置默认线路确保所有其他流量,例如二级运营商的流量,都有对应的机房作为目标地址
- 每个运营商线路内,每个机房的负载均衡权重与容量相匹配,实现机房之间的负载均衡
- 能同时应对机房的单个 IP 故障、机房整体故障或某个运营商故障
根据目标要求,多机房多运营商调度容灾的方案如下图所示。下图为了便于理解,仅展示了 路由规则:电信 的容灾配置。其中:
- 地址池集合 B 作为备地址池集合,分别指向相同 IDC 中的相同运营商的目标地址和相同 IDC 中的不同运营商的目标地址。
- 地址池集合 C 作为备地址池集合,指向不同 IDC 中的相同运营商的目标地址。
该配置可以实现以下容灾效果:
- 某个地址故障时,该地址的流量被转移到相同 IDC 和运营商的其他可用地址。
- IDC 的某个运营商故障时,有以下两种预案可供选择:
- 切换到地址池集合 B:流量被转移到不同 IDC、同运营商的线路。如果 IDC 之间距离较近,且 IDC 容量支持多活时,不会有明显的性能损耗。
- 切换到地址池集合 C:流量被转移到相同 IDC、不同运营商的线路。会有部分性能损耗,但可以避免因 IDC 容量不足或 IDC 距离太远造成的状态异常。
- 整个 IDC 故障时:对 IDC 涉及的所有路由规则进行手动或自动调换
参见 文档 了解如何在云调度 GTM 中实现该方案。