SmashByte Servers / 服务器

跨两个数据中心构建冗余基础设施

比较主备(active-passive)与双活(active-active)设计,以及各自所需的实际决策。

单一数据中心就是单点故障。电力事件、制冷故障、光纤被挖断或提供商故障都可能让整个设施离线。跨两个数据中心建设可以消除这种单一依赖,但也会引入围绕数据一致性、故障转移自动化和网络设计的复杂性。

本文比较主备与双活设计,并阐述每种设计所需的实际决策。

主备(Active-Passive):更简单但更慢

在主备设计中,一个数据中心承载生产流量,另一个保持待命状态。如果主站点发生故障,流量将被重定向到备用站点。

优势

  • 应用和数据库架构更简单
  • 正常运行期间没有脑裂(split-brain)风险
  • 备用站点在需要之前可以按较小规模配置
  • 数据一致性更容易保证

劣势

  • 故障转移需要检测、决策和流量重定向
  • 恢复点目标(RPO)取决于复制延迟
  • 备用容量可能不足以应对突发切换
  • 正常运行期间一半的基础设施处于闲置状态

当以分钟计的停机时间可以接受、闲置容量的成本可以容忍时,主备设计是一个不错的选择。

双活(Active-Active):更快但更难

在双活设计中,两个数据中心同时承载流量。用户可以被路由到最近的站点,也可以在两个站点之间做负载均衡。

优势

  • 更高的总容量,以及为分布式用户提供更低的延迟
  • 没有大量闲置备用资源
  • 单个站点故障只会降低容量,而不会造成全面停机
  • 可以为维护逐步排空流量

劣势

  • 需要实时数据同步或应用层分区
  • 并发写入的冲突解决
  • 更复杂的网络路由和健康检查
  • 对运维成熟度要求更高

当持续可用性和地理分布是核心需求时,双活是正确的选择。

主备与双活的对比

因素 主备 双活
复杂性较低较高
故障转移速度数分钟到数十分钟数秒到数分钟
资源利用率一个站点基本闲置两个站点都在产出
数据一致性更容易保持需要冲突处理
最佳适用场景以灾难恢复(DR)为重点的工作负载全球化、对延迟敏感的服务

网络与数据方面的考量

无论采用哪种模式,两个数据中心都需要可靠的互联链路和清晰的数据策略。关键决策包括:

  • 用于站点间复制的专用暗光纤、波长或 MPLS 链路
  • 用于用户流量调度的 DNS 或任播(anycast)路由
  • 根据距离和延迟选择同步复制还是异步复制
  • 在网络分区期间避免脑裂的仲裁(quorum)机制

站点之间的距离会影响延迟,进而决定同步复制是否可行。超过几十毫秒之后,大多数组织会选择异步复制,并接受一个较小的恢复点目标。

正在规划多站点基础设施?

SmashByte Servers 为兼顾韧性与性能的双数据中心服务器、存储和网络架构提供设计服务。

申请冗余架构设计