切换(Failover)技术是指在早前运行系统故障或异常终止后,能够手动 / 自动切换到冗余或备用信息系统的能力。
就像衡量一个球星是否可以称之为巨星,要看他能否在比赛的最后一秒投出绝杀球一样。要衡量一款灾备产品是否优秀,则需要看它能否在业务发生宕机的时候,通过切换的方式实现备端业务的接管,将灾备的价值最大化。
不过,在实际业务中,因为技术、场景、流程等的不同,我们经常会遇到一些灾备切换的相关问题,比如:
1、自动还是手动?
这个哈姆雷特式的问题,并没有一个标准的答案。灾备切换需要业务数据的一致性和可用性,不管是自动还是手动,对于企业来说都是一个不小的挑战。
2、脑裂问题如何解决?
脑裂(split-brain)指在一个高可用(HA)系统中,当联系着的两个节点断开联系时,本来为一个整体的系统,分裂为两个独立节点,这时两个节点开始争夺资源,进而导致系统混乱,数据损坏。
3、切换流程如何制定?
灾备切换是一系列操作的组合,不是单一的技术动作,并且由于“容灾黑盒” 的存在,其切换的决策难度非常大。无论是生产中心还是灾备中心,彼此的业务之间都有逻辑的联系,服务的启动顺序也有严格的要求。
比如数据库必须先启动,之后才能启动应用程序;应用服务器接管完成,才能进行网络的切换。如果应用程序先于数据库启动,就会出现错误。
要解决以上这些问题,我们需要从灾备具体切换的方式入手:
一、网络切换技术
网络切换技术主要有三种:基于 IP 地址的切换、基于 DNS 服务器的切换、基于负载均衡设备的切换。
- 基于 IP 地址的切换
主备应用服务器的 IP 地址空间相同,客户端通过唯一的 IP 地址访问应用服务器。在正常情况下,只有生产中心应用服务器的 IP 地址处于可用状态,灾备中心的备用服务器 IP 地址处于禁用状态。灾难一旦发生,管理员将灾备中心服务器的 IP 地址设置为可用,实现网络访问路径切换。
- 基于 DNS 服务器的切换
DNS 服务器的切换模式下,所有应用都需要根据主机名来访问,而不是直接根据主机的 IP 地址来访问,从而通过域名实现网络切换。组织对外供服务的业务,可通过向运营商申请相应的 DNS 服务器,对主生产中心和备用生产中心各申请相应的 DNS 服务,通过运营商 DNS 切换机制实现对外服务的切换。
对于内部供的业务,生产中心和灾备中心各自部署一台 DNS 服务器,负责所有主机的域名解析。生产中心为主 DNS 服务器,灾备中心为备份 DNS 服务器,两台 DNS 服务器的内容自动保持完全同步。 对于每个应用服务器的域名,DNS 服务器上可以保存两个 IP 地址,主 IP 地址指向生产中心应用服务器的 IP 地址,备份 IP 地址指向灾备中心服务器的 IP 地址。
在所有的客户端上设置这两个 DNS 服务器(可通过 DHCP 服务器自动分配)。系统首先查询主 DNS 服务器,如果没有应答,就查询备份 DNS 服务器。当生产 中心的主服务器出现故障,主 DNS 服务器发现无法联系到主服务器时,会自动将 DNS 请求解析至灾备中心服务器的 IP 地址,从而实现单个应用的自动切换。
- 基于负载均衡设备的切换
负载均衡 (Load Balance 简称“LB”) 是一种服务器或网络设备的集群技术。负载均衡将特定的业务 ( 网络服务、网络流量等 ) 分担给多个服务器或网络设备,从而提高了业务处理能力,保证了业务的高可用性。负载均衡基本概念有:实服务、实服务组、虚服务、调度算法、持续性等,其常用应用场景主要是服务器负载均衡,链路负载均衡。
基于负载均衡设备的切换是通过在服务器集群前端部署一台负载均衡设备,根据已配置的均衡策略将请求在服务器集群中分发,为用户供服务,并对服务器可用性进行维护。
负载均衡能够按照一定的策略分发到指定的服务器集群中的服务器,或指定链路组的某条链路上,调度算法以用户连接为粒度,并可以采取静态设置或动态调配的方式。
负载均衡设备能够针对各种应用服务状态进行探测,收集相应信息作为选择服务器或链路的依据,包括 ICMP、TCP、HTTP、FTP、DNS 等。通过对应用协议的深度识别,能够对不同业务在主生产中心和灾备中心之间进行切换。
二、应用切换技术
应用切换是指生产中心由于发生灾难无法作业时,可由灾备中心的备用服务器供业务接管,确保业务不停。实现应用切换的前条件是:
1)数据已经从生产中心同步到灾备中心,如果数据复制采用的是异步的方式,在网络故障的情况下,就有可能造成数据不一致的问题,导致数据不可用或无法访问。
2)灾备中心配置与生产中心对应的应用软件服务器、数据库服务器和中间件服务器等,且运行正常。
3)灾备中心网络运行正常或能够实现正常切换。
应用切换技术主要有以下几种:
- 主备集群 (Cluster) 远程技术
集群远程是指通过在生产中心和灾备中心的应用服务器上安装远程集群软件,实现跨广域网的多服务器状态的监控,当发生灾难时,实现应用服务器的自动切换。
集群远程容灾技术为集群的共享数据及业务提供了一种更为可靠的远程保护手段,通过该方案,可以将本地集群中的共享数据通过网络备份到远程灾备服务器上,实现集群数据的异地灾备,在数据备份的基础之上还可以在本地集群不可用时,通过选择自动或手动将本地业务切换至远程灾备中心服务器,从而减少业务的停机时间。
主备集群应用切换方式的弊端在于,多种潜在因素如集群服务器心跳线中断、 网络短时间中断、应用服务器响应不及时等,容易导致在生产中心实际运行正常情况下进行误切换,运行风险高。
- 双活负载均衡技术
归类到应用切换功能,双活技术是一种利用 IT 资源较多的灾备方案,来源于多中心技术。
真正意义的双活指两个数据中心同时处于生产状态,类似于负载均衡技术,但通常的负载均衡针对于业务流量而非数据保护和数据安全,启用所有资源共同承载业务的服务,同时保证当其中一边发生故障时,另一边的资源可直接接管所有的业务服务。
双活可以保证资源的充分利用和快速的灾备切换,是快速安全的应用级灾备 策略,主要用于同城灾备系统。异地双活系统则由于需要考虑系统的合理拆分、 数据复制和业务服务的协调、灾备接管策略等,因此也被称为最为复杂的灾备技术架构。
双活技术架构按照业务分担方式,可以分为纯双活系统和准双活系统。
纯双活系统为全业务负荷在双活中心的共同承载,在实践中多演变为按照区域负载分担或者按照业务类型负载分担。准双活系统则往往以读写分离的形式存在,由生产中心承载全业务,备份中心则承载可分离的读类型业务,从而较大幅度地利用备份中心的资源并且升业务切换的指标。因此,从应用切换的角度来解释双活,它更多地属于一种负载均衡技术,而非容灾技术。
综述:
故障的类型多种多样,每一次灾备中心的启用,都需要耗费大量的人力和物力,所以不是每一种灾难都需要启用灾备中心。在发生灾难时,首先需要快速判断灾难的类型、可恢复性和后果,然后根据灾备预案来决定是否启用灾备中心。
比如,通过本地备份只需要半小时就能恢复本地的业务,就完全不需要启用灾备中心。此外,应用级灾备的对象往往是关键的业务,越关键的业务,切换就越需要慎重,因此启动切换决策需要集体的决策,而不是根据单一的个人意愿。
要实现安全有序的灾备切换,就需要一款能自动化执行、对所有系统的切换流程可以指挥调度的平台。如果你还在用命令行的话,那么可以开始着手更换了。