详解数据中心灾备切换技术
数据中心灾备切换是一系列操作的组合,无论是生产中心还是灾备中心,彼此的业务之间都有逻辑的联系,服务的启动顺序也有严格的要求。
故障的类型多种多样,灾备中心每一次的启用,都需要耗费大量的人力和物力,所以不是每一种灾难都需要启用灾备中心。在发生灾难时,首先需要快速判断灾难的类型、可恢复性和后果,然后根据灾备预案来决定是否启用灾备中心。
比如,通过本地备份只需要半小时就能恢复本地的业务,就完全不需要启用灾备中心。此外,应用级灾备的对象往往是关键的业务,越关键的业务,切换就越需要慎重,因此启动切换决策需要集体的决策,而不是根据单一的个人意愿。
目前,网络切换技术主要有三种:基于IP地址的切换、基于DNS服务器的切换、基于负载均衡设备的切换。
主备应用服务器的IP地址空间同,客户端通过唯一的IP地址访问应用服务器。在正常情况下,只有生产中心应用服务器的IP地址处于可用状态,灾备中心的备用服务器IP地址处于禁用状态。灾难一旦发生,管理员手动或通过脚本将灾备中心服务器的IP地址设置为可用,实现网络访问路径切换。
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地址返回给用户电脑,还要把这个对应关系保存在缓存中,以备下次别的用户查询时,可以直接返回结果,加快网络访问。
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)网站发起访问。
1. 基于Local DNS请求所在的地理位置。 2. 基于GSLB与Local DNS的RTT最小。
二层负载均衡:负载均衡服务器对外依然提供一个 VIP(虚IP),集群中不同的机器采用相同 IP地址,但机器的 MAC 地址不一样。当负载均衡服务器接受到请求之后,通过改写报文的目标 MAC 地址的方式将请求转发到目标机器实现负载均衡。
三层负载均衡:和二层负载均衡类似,负载均衡服务器对外依然提供一个 VIP(虚IP),但集群中不同的机器采用不同的 IP 地址。当负载均衡服务器接受到请求之后,根据不同的负载均衡算法,通过 IP 将请求转发至不同的真实服务器。
四层负载均衡:四层负载均衡工作在 OSI 模型的传输层,由于在传输层,只有 TCP/UDP 协议,这两种协议中除了包含源 IP、目标 IP 以外,还包含源端口号及目的端口号。四层负载均衡服务器在接受到客户端请求后,以后通过修改数据包的地址信息( IP+端口号 )将流量转发到应用服务器。
七层负载均衡:七层负载均衡工作在 OSI 模型的应用层,应用层协议较多,常用 HTTP、Radius、DNS 等。七层负载就可以基于这些协议来负载。这些应用层协议中会包含很多有意义的内容。比如同一个 Web 服务器的负载均衡,除了根据 IP 加端口进行负载外,还可根据七层的 URL、浏览器类别、语言来决定是否要进行负载均衡。
应用切换是指生产中心由于发生灾难无法作业时,可由灾备中心的备用服务器提供业务接管,确保业务不停。实现应用切换的前提条件是:数据已经从生产中心同步到灾备中心,如果数据复制采用的是异步的方式,在网络故障的情况下,就有可能造成数据不一致的问题,导致数据不可用或无法访问。
灾备中心配置与生产中心对应的应用软件服务器、数据库服务器和中间件服务器等,且运行正常。应用切换技术主要有以下几种:
集群远程是指通过在生产中心和灾备中心的应用服务器上安装远程集群软件,实现跨广域的多服务器状态的监控,当发生灾难时,实现应用服务器的自动切换。
集群远程容灾技术为集群的共享数据及业务提供了一种更为可靠的远程保护手段,通过该方案,可以将本地集群中的共享数据通过网络备份到远程灾备服务器上,实现集群数据的异地灾备,在数据备份的基础之上还可以在本地集群不可用时,通过选择自动或手动将本地业务切换至远程灾备中心服务器,从而减少业务的停机时间。
主备集群应用切换方式的弊端在于,多种潜在因素如集群服务器心跳线中断、网络短时间中断、应用服务器响应不及时等,容易导致在生产中心实际运行正常情况下进行误切换,运行风险高。
归类到应用切换功能,双活技术是一种利用IT资源较多的灾备方案,来源于多中心技术。
真正意义的双活指两个数据中心同时处于生产状态,类似于负载均衡技术,但通常的负载均衡针对业务流量而非数据保护和数据安全,启用所有资源共同承载业务的服务,同时保证当其中一边发生故障时,另一边的资源可直接接管所有的业务服务。
推荐阅读:2021年灾备行业白皮书(附下载)
转载申明:转载本号文章请注明作者和来源,本号发布文章若存在版权等问题,请留言联系处理,谢谢。
推荐阅读
更多架构相关技术知识总结请参考“架构师技术全联盟书店”相关电子书(35本技术资料打包汇总详情可通过“阅读原文”获取)。
内容持续更新,现下单“架构师技术全店打包汇总(全)”,后续可享全店内容更新“免费”赠阅,格仅收188元(原总价270元)。
温馨提示:
扫描二维码关注公众号,点击阅读原文链接获取“架构师技术全店资料打包汇总(全)”电子书资料详情。