详解数据中心灾备切换技术
《详解数据中心灾备切换技术》
目录
1、网络切换技术
(1)基于IP地址的切换
(2)基于DNS服务器的切换
(3)基于负载均衡设备的切换
2、应用切换技术
(1)主备集群 (Cluster)远程技术
(2)双活负载均衡技术
数据中心灾备切换是一系列操作的组合,无论是生产中心还是灾备中心,彼此的业务之间都有逻辑的联系,服务的启动顺序也有严格的要求。
故障的类型多种多样,灾备中心每一次的启用,都需要耗费大量的人力和物力,所以不是每一种灾难都需要启用灾备中心。在发生灾难时,首先需要快速判断灾难的类型、可恢复性和后果,然后根据灾备预案来决定是否启用灾备中心。
比如,通过本地备份只需要半小时就能恢复本地的业务,就完全不需要启用灾备中心。此外,应用级灾备的对象往往是关键的业务,越关键的业务,切换就越需要慎重,因此启动切换决策需要集体的决策,而不是根据单一的个人意愿。
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资源较多的灾备方案,来源于多中心技术。
真正意义的双活指两个数据中心同时处于生产状态,类似于负载均衡技术,但通常的负载均衡针对业务流量而非数据保护和数据安全,启用所有资源共同承载业务的服务,同时保证当其中一边发生故障时,另一边的资源可直接接管所有的业务服务。
双活可以保证资源的充分利用和快速的灾备切换,是快速安全的应用级灾备策略,主要用于同城灾备系统。异地双活系统则由于需要考虑系统的合理拆分、数据复制和业务服务的协调、灾备接管策略等,因此也被称为最为复杂的灾备技术架构。随着云计算和分布式系统的发展,数据灾备切换在多数据中心、分布式应用架构和应用中越来越重要。
详解数据中心灾备切换技术相关推荐
- 赣州银行增强科技创新,实现一键灾备切换
8月23日,周五,到了下班时间,赣州银行数据中心还是一片忙碌.今天晚上,他们将在这里开始一年一度的灾备切换演练,11个部室和8个分支行验证机构参与,演练范围包括核心业务系统.柜面系统.二代支付系统等2 ...
- 期货经纪公司的灾备切换流程
4 .经纪公司灾备建设流程<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" ...
- 某股份制商业银行数据中心灾备建设经验
一.灾备定义与演进 灾备是指组织的灾难备援.在信息化的IT系统中,灾备是指在灾难未发生前,利用 IT 技术对信息系统的数据和应用程序进行保护,包括本地及异地的数据备份.应用和场所的接管等,确保系统遭受 ...
- postgresql灾备切换
演示pg_rewind的使用方法. 主库在10.0.3.101上,备库在10.0.3.102上. 这时主库出问题了,如机器宕机了(我们用强制关机来模拟),我 们现在激活备库,即在10.0.3.102上 ...
- 优维助力国内某省级商业银行同城异地灾备自动化建设
银监会在<商业银行数据中心监管指引>中明确要求"商业银行每年至少进行一次重要信息系统专项灾备切换演练,每三年至少一次重要信息系统全面灾备切换演练,以真实业务接管为目标,验证灾备系 ...
- 服务器灾备解决方案--两地三中心(图文详解)
说明 灾备: 是指容灾和备份.容灾是为了在遭遇灾害时能保证信息系统能正常运行,帮助企业实现业务7*24小时连续性的目标,备份是为了应对灾难来临时造成的数据丢失问题.容灾备份产品的最终目标是帮助企业应对 ...
- 容器云的双活与灾备技术
在多中心多云环境下,可将容器云部署为多活和灾备模式,通过全局负载均衡器实现应用的多中心多活与灾备.容器应用跨数据中心的双活,是将一个应用的不同副本部署到不同的数据中心,如图 1 所示的 Databas ...
- 从模拟切换到真实业务接管,看zCloud如何助力银行灾备演练升级
点击上方"蓝字" 关注我们,享更多干货! 近年来,随着国家和行业监管部门对银行信息系统风险管理的要求不断提高,<商业银行数据中心监管指引>和<商业银行业务连续性监 ...
- 数据中心的“灾备”指的是什么?
2015年,某第三方支付工具在PC网页和手机客户端出现无法登录.网络异常等现象,对此,官方回应称,服务异常是因为某地光缆被挖断所致. 没过多久,某订票的官方网站及APP也陷入瘫痪状态,通过官方发布的消 ...
最新文章
- 【转】在OpenGL场景中实现小地图功能
- 第二次作业#include stdio.h int main() { int a,b,c,d,e; printf(请输入一个不多于五位的整数:\n); scanf(%...
- Jackson 注解 -- 自定义输出格式
- SQL:将查询结果插入到另一个表的三种情况
- [LintCode笔记了解一下]64.合并排序数组
- 三款旗舰手机、四大高端生态新品,Redmi发布K50系列等七大重磅新品
- python中图例legend标签内容_Python学习第87课-数据可视化之图形标识title、label、legend...
- 为什么建议要延迟macOS升级,小编为你全面分析!
- vue动态改变css样式
- 虚拟机win7系统忘记开机密码怎么办
- SQL考点之存储过程、存储函数、游标
- C语言练习题,从键盘输入一个字符,在给定的字符串中寻找该输入字符,若找到将该字符从字符串中删掉,并输出该字符串,没有找到给出提示信息“未找到”。
- 半导体的光学性质和光电与发光现象
- 欧几里德算法(Euclidean algorithm)
- Windows下使用nc(netCat)命令
- 在word中插入excel文件
- 阿丹学理财之P2P投资
- iphone换android系统更新不了,苹果支持安卓以旧换新,却被批心不诚,你会用安卓换苹果吗?...
- JAVA的异常处理机制有什么好处,你造吗?
- NYOJ 1239 引水工程【prim算法】
热门文章
- TensorFlow——tf.contrib.layers库中的相关API
- CentOS 7下设置Docker代理(Linux下Systemd服务的环境变量配置)
- Jumpserver跳板机
- css 特殊性 权重排列
- 让nginx 支持 pathinfo ,支持thinkphp
- 生成 linq to sharepoint 对象模型sharepoint 母板页
- 用Convert类实现数据类型转换
- 使用Filter实现用户自动登录
- 演示JSP Scriptlets、声明语句、jsp表达式的使用
- php date hi,php中时间戳和日期格式的转换