云内GSLB技术及应用场景

Tianyiyun · · 693 次点击 · · 开始浏览    
这是一个创建于 的文章,其中的信息可能已经有所发展或是发生改变。

本文分享自天翼云开发者社区《云内GSLB技术及应用场景》,作者:c****n

云业务容灾建设节奏一般是同城双活—异地双活—两地三中心(同城双活+异地多活),因为要解决的问题的复杂度和难度也是在逐步上升的,不可能一蹴而就。gslb可以实现两地三中心容灾,这时应用在多数据中心的情况下,业务需要分布式部署,无论哪个数据中心都可以独立承担业务,数据中心内通过服务器负载均衡(lb)进行数据中心内的业务负载,gslb是通过dns给lb做负载均衡,配合健康检查实现业务的故障切换,数据中心切换,一些算法如静态就近性可以就近访问加速等。

一、基本概念

1.业务域名
用户访问应用服务的dns域名。

2.服务成员
域名最后返回的ip的地址,这个ip地址一般就是slb负载均衡设备的ip。

3.地址池
一组服务成员的集合,可以选择服务成员的调度算法,健康检查,ttl等设置。用于服务成员的管理。

4.健康检查

1)服务成员健康检查

检查应用服务是否正常,常用的健康检查有icmp, tcp,udp,http等。

已icmp为例,探测设备主动去ping服务成员ip,通过是否应答来判断服务成员是否有效。

2)链路健康检查

检查数据中心内的某条链路是否健康,用icmp方法,不能进行跨数据中心的探测。

5.算法

调度的规则,二级调度,一级是域名选池,二级是池选服务成员。

常用的算法有轮询,加权轮询,静态就近性,全局可用性等。

二、应用场景

基本都是多数据中心,分布式部署,每个数据中心都有所有数据中心的配置信息,保证dns请求到哪个gslb都有同样的应答。
常见的应该场景有业务容灾,多活,就近访问加速等。
以两地三中心容灾方案为例详细说明下。

业务域名:www.aaa.com

主数据中心dc1,服务成员m1(1.1.1.1 电信),服务成员m2(1.1.1.2 联通)。

同城灾备数据中心dc2,服务成员m3(2.2.2.1 电信),服务成员m4(2.2.2.2 联通)。

异地灾备数据中心dc3,服务成员m5(3.3.3.1 电信),服务成员m6(3.3..2 联通)。

每个数据中心一台gslb设备。

正常情况下dns请求到达任何一台gslb时,应答规则

1)电信的用户返回电信的服务成员,联通的用户返回联通的服务成员,其他的用户返回电信的服务成员。

2)主数据中心的成员可用时优先用主数据中心,主数据中心服务成员故障后用同城灾备数据中心,同城灾备数据中心也故障再用异地灾备数据中心。

1.业务图

2.配置逻辑图

3.核心算法

1)静态就近性算法

根据用户源ip所在物理位置进行策略匹配。

2)静态地址库

获取用户的物理位置需要全球ip地址库,需要把ip地址库加载到内存中,然后把源ip在内存中匹配下,就可以获取到相应物理位置信息,这个地址库一般每行是代表一个地理信息,例如

前面两列是起始ip和终止ip,后面是国家,省,市,组织,运营商

3)动态用户区域

除了静态地址库设备自身携带外,也需要支持用户自定义某个网段属于哪个国家,省,市,运营商等。

这部分提供用户自定义网段属于某个物理位置配置,然后在配置静态就近性策略时去选择这个用户区域。

4.探测与同步

1)探测:

做健康检查的设备,分为服务成员探测和链路探测。

链路探测只能在本数据中心进行探测。

服务成员探测根据和同步规则可以进行跨数据中心探测。

2)同步:

正常情况下,本中心的gslb设备只对自己数据中心的服务成员做健康检查,然后把本数据中心的健康检查结果同步给其他数据中心的gslb设备,最后的结果就是每个数据中心都有所有数据中心的健康检查结果,探测设备同时也是同步设备。

3)同步规则和探测的关系:

红色线:同步

黄色线:探测

①仅本地

不管gslb设备之间的同步连接情况如何,本数据中心的gslb设备只探测本数据中心的服务成员。

②优先本地

gslb设备之间的连接正常时,本数据中心的gslb设备只探测本地。

gslb设备之间的连接异常时,本数据中心的gslb设备会探测连接异常的异地的数据中心的服务成员。

③同时多数据中心

gslb设备会向所有数据中心的服务成员发送健康检查探测,这样每个服务成员会有所有数据中心的健康检查结果,最后这个健康检查的结果为配置的有效性个数决定。

例如:设置有效性为2,m1有gslb123设备三个探测结果,综合2个或者2个以上up,则m1为up。

693 次点击  
加入收藏 微博
添加一条新回复 (您需要 登录 后才能回复 没有账号 ?)
  • 请尽量让自己的回复能够对别人有帮助
  • 支持 Markdown 格式, **粗体**、~~删除线~~、`单行代码`
  • 支持 @ 本站用户;支持表情(输入 : 提示),见 Emoji cheat sheet
  • 图片支持拖拽、截图粘贴等方式上传