详解数据中心灾备切换技术

架构师技术联盟

共 5288字,需浏览 11分钟

 ·

2020-11-15 03:50



数据中心灾备切换是一系列操作的组合,无论是生产中心还是灾备中心,彼此的业务之间都有逻辑的联系,服务的启动顺序也有严格的要求。


故障的类型多种多样,灾备中心每一次的启用,都需要耗费大量的人力和物力,所以不是每一种灾难都需要启用灾备中心。在发生灾难时,首先需要快速判断灾难的类型、可恢复性和后果,然后根据灾备预案来决定是否启用灾备中心。


比如,通过本地备份只需要半小时就能恢复本地的业务,就完全不需要启用灾备中心。此外,应用级灾备的对象往往是关键的业务,越关键的业务,切换就越需要慎重,因此启动切换决策需要集体的决策,而不是根据单一的个人意愿。


1、网络切换技术

 目前,网络切换技术主要有三种:基于IP地址的切换、基于DNS服务器的切换、基于负载均衡设备的切换。



(1)基于IP地址的切换

主备应用服务器的IP地址空间同,客户端通过唯一的IP地址访问应用服务器。在正常情况下,只有生产中心应用服务器的IP地址处于可用状态,灾备中心的备用服务器IP地址处于禁用状态。灾难一旦发生,管理员手动或通过脚本将灾备中心服务器的IP地址设置为可用,实现网络访问路径切换。


(2)基于DNS服务器的切换

DNS域名解析是B/S应用架构的一项重要服务,C/S架构应用一般是通过IP地址直接访问服务的。在云计算时代,业务主要通过B/S、分布式、多活的架构提供。然而对于网站运营和服务提供商来说,DNS域名解析的稳定可靠,意味着更好的业务体验,更好更大的访问流量。


DNS服务器的切换模式下,所有应用都需要根据主机名来访问,而不是直接根据主机的IP地址来访问,从而通过域名实现网络切换。组织对外提供服务的业务,可通过向运营商申请应的DNS服务器,对主生产中心和备用生产中心各申请应的DNS服务,通过运营商DNS切换机制实现对外服务的切换。


 对于内部提供的业务,生产中心和灾备中心各自部署一台DNS服务器,负责所有主机的域名解析。生产中心为主DNS服务器,灾备中心为备份DNS服务器,两台DNS服务器的内容自动保持完全同步。


DNS是互联网上作为域名和IP地址相互映射的一个分布式数据库。DNS能够使用户更方便的访问网络和应用,而不用去记忆杂乱、繁琐的IP数串。通过域名,最终得到该域名对应的IP地址的过程叫做域名解析。下面这张图,详细说明了一个DNS域名解析的全过程。

 

  • 1、通常,在电脑打开浏览器,输入一个域名。比如输入www.163.com,这时电脑会发出一个DNS请求到本地DNS服务器。本地DNS服务器一般是网络接入服务器商提供,比如中国电信,中国移动。
  • 2、查询www.163.com的DNS请求到达本地DNS服务器之后,本地DNS服务器会首先查询它的缓存记录,如果缓存中有此条记录,就可以直接返回结果。如果没有,本地DNS服务器还要向DNS根服务器进行查询。
  • 3、根DNS服务器没有记录具体的域名和IP地址的对应关系,而是告诉本地DNS服务器,你可以到域服务器上去继续查询,并给出域服务器的地址。
  • 4、本地DNS服务器继续向域服务器发出请求,在这个例子中,请求的对象是.com域服务器。.com域服务器收到请求之后,也不会直接返回域名和IP地址的对应关系,而是告诉本地DNS服务器,你的域名的解析服务器的地址。
  • 5、最后,本地DNS服务器向域名的解析服务器发出请求,这时就能收到一个域名和IP地址对应关系,本地DNS服务器不仅要把IP地址返回给用户电脑,还要把这个对应关系保存在缓存中,以备下次别的用户查询时,可以直接返回结果,加快网络访问。


      实际上,因特网上的DNS服务器也是按照层次安排的。每一个域名服务器只对域名体系中的一部分进行管辖。根据域名服务器所起的作用,可以把域名服务器划分为根域名服务器、顶级域名服务器、权限域名服务器和本地域名服务器四种不同的类型。

      根域名服务器是最高层次的域名服务器,也是最重要的域名服务器。所有的根域名服务器都知道所有的顶级域名服务器的域名和IP地址。不管是哪一个本地域名服务器,若要对因特网上任何一个域名进行解析,只要自己无法解析,就首先求助根域名服务器。所以根域名服务器是最重要的域名服务器。假定所有的根域名服务器都瘫痪了,那么整个DNS系统就无法工作。

     我们在配置DNS解析的时候,需要指定DNS解析的TTL(Time To Live)参数,这个参数告诉本地DNS服务器,域名缓存的最长时间。用阿里云解析来举例,阿里云解析默认的TTL是10分钟,10分钟的含义是本地DNS服务器对于域名的缓存时间是10分钟,10分钟之后,本地DNS服务器就会删除这条记录,删除之后,如果有用户访问这个域名,就要重复一遍上述复杂的流程。


      如果网站已经进入稳定发展的状态,不会轻易更换IP地址,我们完全可以将TTL设置到协议最大值,即24小时。带来的好处是,让域名解析记录能够更长时间的存放在本地DNS服务器中,以加快所有用户的访问。

      分布式、多活数据中心对外提供数据服务时,还会涉及到另外一个参数RTT(Round Trip Time)。分布在物理上A、B隔离两个区域的数据中心同时对外提供服务时,客户的服务请求是由A数据中心,还是由B数据中心响应,这就要看在DNS解析过程中,决定于解析过程中那个访问带来的RTT更小。下面一起通过一个实例来分析下技术原理。

  • 1、首先客户端向其所在运营商的Local DNS发起www.abc.com域名的DNS请求。
  • 2、运营商的Local DNS服务器从RootDNS得知www.abc.com由DNS-CTC、DNS-CNC、DNS-USA1和DNS-USA2来解析,即RootDNS同时返回此4个DNS服务器地址给Local DNS(DNS的工作原理要求返回所有关于请求的记录,在此即返回4个DNS服务器,如果只返回一个DNS而此DNS刚好中断服务了,那么Local DNS只能是解析失败了);
  • 3、Local DNS轮询向这4个DNS服务器发出域名解析的请求,直到返回数据。
  • 4、在此,假如DNS-CTC响应Local DNS的域名解析请求,同时返回2台GTM的地址(本地监听的Web服务)。
  • 5、收到Local DNS请求的GTM首先查询在本地是否有该Local DNS的就近性表项,如果存在则直接给Local DNS返回速度最快的服务器地址。如果不存在,则通知另外一台GTM发起对该Local DNS的查询。
  • 6、两台DNS分别对Local DNS进行Probe。例如GTM-A查询该Local DNS的RTT时间为50ms,而GTM-B查询同一Local DNS的RTT时间为100ms,则此时在两台GTM内都形成了该Local DNS的对应就近性表记录。
  • 7、根据就近原则,Local DNS请求的GTM-A根据系统的就近性表返回相应的Data Center内的Web服务器地址(即1.1.1.1)。
  • 8、Local DNS获得地址后,将该地址返回给用户,到此DNS请求过程结束。
  • 9、用户向www.albc.com(1.1.1.1)网站发起访问。


      分布式、多活数据中心中,一个域名对应两个业务IP地址,分别部署在两个数据中心。通过GSLB或DNS实现站点间的访问负载均衡。


      GSLB可以采用专用的F5 GTM设备,如果业务量小,也可以采用windows自带的DNS服务器,实现简单负载均衡(轮询),GSLB跨站点负载均衡策略通常有两种。


  • 1. 基于Local DNS请求所在的地理位置。
  • 2. 基于GSLB与Local DNS的RTT最小。


      GSLB在整个网络范围内将用户的请求定向到最近的节点(或者区域),主要采用就近性判断,主要的方法包括DNS、应用层重定向、传输层重定向等。然而,SLB大多在一个服务节点范围内,根据设备节点的健康性、当前负载、服务能力、分布等情况将用户的请求分配到一个具体服务节点设备。


(3)基于负载均衡设备的切换

 负载均衡(LoadBalance)是一种服务器或网络设备的集群技术。负载均衡将特定的业务(网络服务、网络流量等)分担给多个服务器或网络设备,从而提高了业务处理能力,保证了业务的高可用性。负载均衡基本概念有:实服务、实服务组、虚服务、调度算法、持续性等,其常用应用场景主要是服务器负载均衡,链路负载均衡。

负载均衡用来在多个计算机(计算机集群)、网络连接、CPU、磁碟驱动器或其它资源中分配负载,以达到最佳化资源使用、最大化吞吐率、最小化响应时间、同时避免过载的目的。那么,这种计算机技术的实现方式有多种。大致可以分为以下几种,其中最常用的是四层和七层负载均衡:

  • 二层负载均衡:负载均衡服务器对外依然提供一个 VIP(虚IP),集群中不同的机器采用相同 IP地址,但机器的 MAC 地址不一样。当负载均衡服务器接受到请求之后,通过改写报文的目标 MAC 地址的方式将请求转发到目标机器实现负载均衡。
 
  • 三层负载均衡:和二层负载均衡类似,负载均衡服务器对外依然提供一个 VIP(虚IP),但集群中不同的机器采用不同的 IP 地址。当负载均衡服务器接受到请求之后,根据不同的负载均衡算法,通过 IP 将请求转发至不同的真实服务器。
 
  • 四层负载均衡:四层负载均衡工作在 OSI 模型的传输层,由于在传输层,只有 TCP/UDP 协议,这两种协议中除了包含源 IP、目标 IP 以外,还包含源端口号及目的端口号。四层负载均衡服务器在接受到客户端请求后,以后通过修改数据包的地址信息( IP+端口号 )将流量转发到应用服务器。
 
  • 七层负载均衡:七层负载均衡工作在 OSI 模型的应用层,应用层协议较多,常用 HTTP、Radius、DNS 等。七层负载就可以基于这些协议来负载。这些应用层协议中会包含很多有意义的内容。比如同一个 Web 服务器的负载均衡,除了根据 IP 加端口进行负载外,还可根据七层的 URL、浏览器类别、语言来决定是否要进行负载均衡。


2、应用切换技术

 应用切换是指生产中心由于发生灾难无法作业时,可由灾备中心的备用服务器提供业务接管,确保业务不停。实现应用切换的前提条件是:数据已经从生产中心同步到灾备中心,如果数据复制采用的是异步的方式,在网络故障的情况下,就有可能造成数据不一致的问题,导致数据不可用或无法访问。


灾备中心配置与生产中心对应的应用软件服务器、数据库服务器和中间件服务器等,且运行正常。应用切换技术主要有以下几种: 


(1)主备集群 (Cluster)远程技术

 集群远程是指通过在生产中心和灾备中心的应用服务器上安装远程集群软件,实现跨广域的多服务器状态的监控,当发生灾难时,实现应用服务器的自动切换。


 集群远程容灾技术为集群的共享数据及业务提供了一种更为可靠的远程保护手段,通过该方案,可以将本地集群中的共享数据通过网络备份到远程灾备服务器上,实现集群数据的异地灾备,在数据备份的基础之上还可以在本地集群不可用时,通过选择自动或手动将本地业务切换至远程灾备中心服务器,从而减少业务的停机时间。


 主备集群应用切换方式的弊端在于,多种潜在因素如集群服务器心跳线中断、网络短时间中断、应用服务器响应不及时等,容易导致在生产中心实际运行正常情况下进行误切换,运行风险高。


(2)双活负载均衡技术

归类到应用切换功能,双活技术是一种利用IT资源较多的灾备方案,来源于多中心技术。



真正意义的双活指两个数据中心同时处于生产状态,类似于负载均衡技术,但通常的负载均衡针对业务流量而非数据保护和数据安全,启用所有资源共同承载业务的服务,同时保证当其中一边发生故障时,另一边的资源可直接接管所有的业务服务。


 双活可以保证资源的充分利用和快速的灾备切换,是快速安全的应用级灾备策略,主要用于同城灾备系统。异地双活系统则由于需要考虑系统的合理拆分、数据复制和业务服务的协调、灾备接管策略等,因此也被称为最为复杂的灾备技术架构。随着云计算和分布式系统的发展,数据灾备切换在多数据中心、分布式应用架构和应用中越来越重要


推荐阅读:2021年灾备行业白皮书(附下载)





转载申明:转载本号文章请注明作者来源,本号发布文章若存在版权等问题,请留言联系处理,谢谢。


推荐阅读

更多架构相关技术知识总结请参考“架构师技术全联盟书店”相关电子书(35本技术资料打包汇总详情可通过“阅读原文”获取)。

内容持续更新,现下单“架构师技术全店打包汇总(全)”,后续可享全店内容更新“免费”赠阅,格仅收188元(原总价270元)。



温馨提示:

扫描二维码关注公众号,点击阅读原文链接获取架构师技术全店资料打包汇总(全)电子书资料详情


浏览 175
点赞
评论
收藏
分享

手机扫一扫分享

分享
举报
评论
图片
表情
推荐
点赞
评论
收藏
分享

手机扫一扫分享

分享
举报