You need to enable JavaScript to run this app.
导航

互联网服务的同城容灾

最近更新时间2023.09.06 20:10:24

首次发布时间2023.09.06 20:10:24

本文档介绍基于火山引擎云调度(GTM)的同城容灾方案。

概述

位于同一地域(Region)的 IDC 机房之间的距离较近,流量切换对用户网络延迟造成的影响较小,因此可以通过 IDC 机房之间基于 DNS 的流量切换实现容灾。这就是同城容灾。例如:

  • 公有云服务中,一个地域内部的多个可用区(AZ)之间容灾;
  • 多个地理位置相邻的自建机房通过机房间流量切换实现容灾。

假设您的服务部署在公有云服务中一个地域的多个可用区。当某个可用区的服务发生故障时,您可以根据容灾预案进行自动或手动的故障转移,把用户流量切换到其他可用区,以确保服务不中断或快速恢复。

alt

云调度 GTM 支持健康检查、故障转移、就近接入、负载均衡等功能,可以以低成本、便捷部署、无入侵的方式实现基于 DNS 的多种同城容灾模式,以确保服务在故障期间不中断或快速恢复。您可以通过云调度 GTM 实现以下同城容灾模式:

  • 冷备模式
  • 热备模式
  • 双活模式

冷备模式

在同一个地域内的两个可用区采用主备模式,其中主可用区负责承载正常流量,备可用区不承载流量。当主可用区发生故障时,流量会切换到备可用区。

这种模式部署简单,但存在以下缺点:

  • 常态下的资源浪费。
  • 因为平时没有流量,无法得知备可用区在主故障时是否准备就绪(包括后端配置、容量和各系统状态)。
  • 需要关注备可用区的容量。

alt

实现步骤

参见以下步骤在云调度 GTM 中实现上图展示的冷备模式。

  1. 创建一个 GTM 实例

  2. 创建两个地址池。每个地址池所包含的目标地址如下:

    地址池目标地址
    华东11.1.1.1
    1.1.1.2
    华东22.2.2.1
    2.2.2.2
  3. 配置您创建的 GTM 实例。您需要:

    • 开启健康检查
    • 根据您的需求选择是否开启就近接入和负载均衡
  4. 在您创建的 GTM 实例中,添加一条路由规则。在路由规则中添加两个地址池集合,其中:

    • 地址池集合 A 包含 华东1 地址池。
    • 地址池集合 B 包含 华东2 地址池。
    • 确保地址池集合 A 的优先级高于地址池集合 B,即 A 的顺序在 B 之前。
  5. 启动自动流量路由。启动成功后,您就实现了上图描述的冷备模式。

热备模式

在同一个地域内的两个可用区采用主备模式。主可用区负责承载主要流量,备可用区承载次要流量,以验证备可用区的大部分功能是否可用。

热备模式解决了无法确定备可用区在主可用区故障时是否准备就绪的问题,但仍无法解决常态下的资源浪费问题。另外,在故障切换时,备可用区也可能出现容量不足的问题。

alt

实现步骤

参见以下步骤在云调度 GTM 中实现上图展示的热备模式。

  1. 创建一个 GTM 实例

  2. 创建两个地址池。每个地址池所包含的目标地址如下:

    地址池目标地址
    华东11.1.1.1
    1.1.1.2
    华东22.2.2.1
    2.2.2.2
  3. 配置您创建的 GTM 实例。您需要:

    • 开启健康检查
    • 根据您的需求选择是否开启就近接入和负载均衡
  4. 在您创建的 GTM 实例中,添加一条路由规则。在路由规则中添加一个地址池集合,包含 华东1华东2 地址池。华东1 的全部目标地址的权重的和为 90;华东2 的全部目标地址的权重的和为 10。

  5. 启动自动流量路由。启动成功后,您就实现了上图描述的热备模式。

双活模式

在同一个地域内的两个可用区同时工作。当一个可用区发生故障时,流量会切换到未发生故障的可用区。由于多个可用区在常态下同时工作,因此不存在备可用区是否准备就绪的问题。您只需要关注流量所切换到的可用区的剩余容量。

一个区域内也可以有两个以上的可用区,这样就会降低每个可用区需要预留的剩余容量。但是,多个可用区也会增加数据和配置同步的负担。

alt

常态下,华东1 和华东2 的机房处于双活模式。华东1 和华东2 的机房分别承载 50% 的流量。同时,该方案包含以下预案:

  • 切换到地址池集合 B:华东2 的机房故障时,华东2 机房的流量全部切换到华东1 的机房。
  • 切换到地址池集合 C:华东1 的机房故障时,华东1 机房的流量全部切换到华东2 的机房。

实现步骤

参见以下步骤在云调度 GTM 中实现上图展示的双活模式。

  1. 创建一个 GTM 实例

  2. 创建两个地址池。每个地址池所包含的目标地址如下:

    地址池目标地址
    华东11.1.1.1
    1.1.1.2
    华东22.2.2.1
    2.2.2.2
  3. 配置您创建的 GTM 实例。您需要:

    • 选择 IP 地址作为地址类型
    • 开启健康检查
    • 根据您的需求选择是否开启就近接入和负载均衡
  4. 在您创建的 GTM 实例中,添加一条路由规则。在路由规则中添加三个地址池集合,其中:

    • 地址池集合 A 包含 华东1华东2 地址池。华东1 的全部目标地址的权重的和为 80;华东2 的全部目标地址的权重的和为 20。地址池集合 A 的优先级最高。
    • 地址池集合 B 包含 华东1 地址池。
    • 地址池集合 C 包含 华东2 地址池。
  5. 启动自动流量路由。启动成功后,您就实现了上图描述的双活模式。