双机热备是应用于服务器的一种解决方案,其构造思想是主机和从机通过TCP/IP网络连接,正常情况下主机处于工作状态,从机处于监视状态,一旦从机发现主机异常,从机将会在很短的时间之内代替主机,完全实现主机的功能。
双机热备这一概念包括广义、狭义两种意义。
从广义上讲,就是对于重要的服务,使用两台服务器,互相备份,共同执行同一服务。当一台服务器出现故障时,由另一台服务器承担服务任务,从而在不需要人工干预的情况下,自动保证系统能持续提供服务。双机热备由备用的服务器解决了在主服务器故障时服务不中断的问题。
从狭义上讲,双机热备特指基于active/standby方式的服务器热备。服务器数据包括数据库数据同时往两台或多台服务器执行写操作,或者使用一个共享的存储设备。在同一时间内只有一台服务器运行。当其中运行着的一台服务器出现故障无法启动时,另一台备份服务器会通过软件诊测(一般是通过心跳诊断)将standby机器激活,保证应用在短时间内完全恢复正常使用。
双机热备主要是实时数据、报警信息和变量历史记录的热备。主从机都正常工作时,主机从设备采集数据,并产生报警和事件信息。从机通过网络从主机获取实时数据和报警信息,而不会从设备读取或自己产生报警信息,主从机都各自记录变量历史数据。同时,从机通过网络监听主机,从机与主机之间的监听采取请求与应答的方式,从机以一定的时间间隔(冗余机心跳检测时间)向主机发出请求,主机应答表示工作正常,主机如果没有作出应答,从机将切断与主机的网络数据传输,转入活动状态,改由下位设备获取数据,并产生报警和事件信息。此后,从机还会定时监听主机状态,一旦主机恢复,就切换到热备状态,通过这种方式实现了热备。
当主机正常运行,从机后启动时,主机先将实时数据和当前报警缓冲区中的报警和事件信息发送到从机上,完成实时数据的热备份。然后主从机同步,暂停变量历史数据记录,从机从主机上将所缺的历史记录文件通过网络拷贝到本地,完成历史数据的热备份。这时可以在主从机组态王信息窗中看到提示信息“开始备份历史数据”和“停止备份历史数据”。
历史数据文件备份完成后,主从机转入正常工作状态。
当从机正常运行、主机后启动时,从机先将实时数据和当前报警缓冲区中的报警和事件信息发送到主机上,完成实时数据的热备份。然后主从机同步,暂停变量历史数据记录,主机从从机上将所缺的历史记录文件通过网络拷贝到本地,完成历史数据的热备份。这时也可以在主从机的组态王信息窗中看到提示信息“开始备份历史数据”和“停止备份历史数据”。历史数据文件备份完成后,主从机转入正常工作状态。
双机热备针对的是服务器的故障。
服务器的故障可能由各种原因引起,如设备故障、操作系统故障、软件系统故障,等等。
一般地讲,在技术人员在现场的情况下,恢复服务器正常可能需要10分钟、几小时甚至几天。从实际经验上看,除非是简单地重启服务器(可能隐患仍然存在),否则往往需要几个小时以上。而如果技术人员不在现场,则恢复服务的时间就更长了。
而对于一些重要系统而言,用户是很难忍受这样长时间的服务中断的。因此,就需要通过双机热备,来避免长时间的服务中断,保证系统长期、可靠的服务。
决定是否使用双机热备,正确的方法是分析一下系统的重要性以及对服务中断的容忍程度,以此决定是否使用双机热备。即,你的用户能容忍多长时间恢复服务,如果服务不能恢复会造成多大的影响。
在考虑双机热备时,需要注意,一般意义上的双机热备都会有一个切换过程,这个切换过程可能是一分钟左右。在切换过程中,服务是有可能短时间中断的。但是,当切换完成后,服务将正常恢复。因此,双机热备不是无缝、不中断的,但它能够保证在出现系统故障时,能够很快恢复正常的服务,业务不致受到影响。而如果没有双机热备,则一旦出现服务器故障,可能会出现几个小时的服务中断,对业务的影响会很严重。
另有一点需要强调,即服务器的故障与交换机、存储设备的故障不同,其概率要高得多。原因在于服务器是比交换机、存储设备复杂得多的设备,同时也是既包括硬件、也包括操作系统、应用软件系统的复杂系统。不仅设备故障可能引起服务中断,而且软件方面的问题也可能导致服务器不能正常工作。
还应指出的是,一些其他的防护措施如磁盘阵列(RAID)、数据备份虽然是非常重要的,但却不能代替双机热备的作用。
组成双机热备的方案主要的三种方式分别为:基于共享存储(磁盘阵列)的方式,全冗余方式和复制方式。
共享存储双机热备方案中需要两台服务器以及一台共享存储设备(一般情况下就是共享磁盘阵列柜),共享存储设备同时连接至两台服务器,用户业务数据存储在共享存储设备中,由主服务器对外服务并访问共享存储设备进行数据读写,一旦主服务器发生故障(例如:操作系统宕机、服务器意外掉电、网络故障等),由ServHA双机热备软件自动将业务应用切换至备用服务器并接管共享存储设备的访问权继续对外服务,保护业务应用不间断运行。
但由于该方式仅使用一台存储设备,往往被称为磁盘单点故障。但一般来讲存储的安全性较高。所以如果忽略存储设备故障的情况下,这种方式也是业内采用最多的热备方式。
优点:有独立的存储设备进行数据存储,能够容纳较高的数据吞吐量和具有较好的数据扩展性,适合数据量以及数据吞吐量比较大的应用。
缺点:需要引入昂贵的存储设备,成本有所增加,数据只有一份,在磁盘阵列中。
全冗余方式就是双机双存储,为实现存储冗余,存储高可用也已经越来越多的被用户接受。该方案需要两台服务器和两台共享磁盘阵列柜,每台服务器同时连接两台磁盘阵列柜,每台磁盘阵列柜同时同时连接两台服务器,ServHA双机双柜软件(ServHA DS Mirror)负责实时将数据写入两台磁盘阵列柜,保证两台磁盘阵列柜数据完全一致,在服务器读取数据时,会从两台磁盘阵列柜同时读取,提高读取效率,一旦主服务器发生故障(例如:操作系统宕机、服务器意外掉电、网络故障等),由ServHA双机热备软件自动将业务应用切换至备用服务器继续对外服务,保护业务应用不间断运行,当一台磁盘阵列柜发生故障时,ServHA双机热备软件会将故障磁盘阵列柜隔离,整个过程业务不间断,无缝使用单盘柜继续服务。
双机双柜双机热备方案优缺点
优点:数据双份存储,两台磁盘阵列柜各一份,数据安全性高,数据通过存储链路实时写入两台磁盘阵列柜,能承载较高的数据吞吐量。
缺点:硬件成本较高。
复制方式双机热备中仅需要两台服务器即可实现双机热备,两台服务器利用本地磁盘存储业务数据,ServHA镜像双机热备软件(ServHA Mirror)负责实时同步两台服务器数据,保证两台服务器数据完全一致,由主服务器对外服务并将业务数据实时同步至备用服务器,一旦主服务器发生故障(例如:操作系统宕机、服务器意外掉电、网络故障等),由ServHA双机热备软件自动将业务应用切换至备用服务器继续对外服务,保护业务应用不间断运行。
镜像双机热备方案优缺点
优点:性价比最高,硬件投入较少,只需要两台服务器即可,同时数据双份存储,两台服务器各一份,能够进行历史数据快照和查看历史数据能力,数据安全性更高。
缺点:数据通过网络实时同步,不适合数据吞吐量特别大的系统。
主从模式是最标准、最简单的双机热备,即是目前通常所说的active/standby方式。它使用两台服务器,一台作为主服务器(Active),运行应用系统来提供服务。另一台作为备机,安装完全一样的应用系统,但处于待机状态(Standby)。当active服务器出现故障的时候,通过软件诊测(一般是通过心跳诊断)将standby机器激活,保证应用在短时间内完全恢复正常使用。
双机互备,在双机热备的基础上,两个相对独立的应用在两台机器同时运行,但彼此均设为备机,当某一台服务器出现故障时,另一台服务器可以在短时间内将故障服务器的应用接管过来,从而保证了应用的持续性。这种方式实际上是双机热备的一种应用。它避免了两个应用使用四台服务器分别实现双机热备。
但双机互备存在着性能瓶颈,即如果进行切换后,在一台服务器上就有同时运行两个应用,有可能负载过大。并且,有些情况下会有不止两台服务器对外提供服务。在这种情况上,多点集群就显示出了其必要性。
多点集群可以理解为双机热备在技术上的提升。多机服务器可以组成一个集群。根据应用的实际情况,可以灵活地在这些服务器上进行部署,同时可以灵活地设置接管策略。比如,可以由一台服务器作为其他所有服务器的备机,也可以设置多重的接管关系,等等。这样,就可以充分地利用服务器的资源,同时保证系统的高可用性。
在双机热备软件运作的逻辑中,当主用服务处于非正常工作的时候,需要把备用服务启动来替代主用服务器进行工作。而判断服务器是否正常运行就是双机热备软件开始运作的第一步。
每隔少许时间,备用服务器都会通过线路发送“心跳”来查看主用服务器的运行状态,从而判断是否需要启动。
但是该设计有个无法解决的逻辑判断,就是无法判断出主用服务器出现问题还是线路出现问题。
所以当线路出现问题时,按照传统的逻辑判断,便会启动备用服务器。但是此时主用服务器还是在正常工作,启用备用服务器就是一个严重的逻辑错误,在切换逻辑判断上不能使用这个方法。
当备用服务器往主用服务器发送心跳时,心跳数据需要先经过以太网(网关),再到达主用服务器。如果心跳并未到达网关就已经停止,则说明备用服务器线路异常,主热备功能失效,需要提醒设备的管理人员进行相应的处理。
而当心跳数据已经通过网关时,但是未能到达主用服务器,则能判断主用服务器处于非正常工作状态。产生这种问题的原因有可能是主用服务器线路断开,也有可能是主用服务器已经死机,无法进行相应的功能。虽然无法具体定位到是线路问题还是主用服务器问题,但是无论哪个情况,复用服务器都需要启动起来来替代主用服务器进行工作。
在双机热备功能中,主用服务器和备用服务器都有可能出现异常情况,导致热备功能失效。当主用服务器或者备用服务器热备功能出现异常后,设备人员修复设备完成后,软件需要自动对热备的恢复功能进行逻辑处理。
这种逻辑处理具体有两种情况:一种为备用服务器产生异常,而主用服务器还在正常运作的情况。在这情况下,备用重新恢复热备功能的时候不能影响主用服务器的正常运行,也不能把自己替代成主用服务器来处理。第二种情况为,主用服务器和备用服务器都由于某些特殊的原因先后出现异常,设备人员未能及时处理,两台服务器同时无法使用。在这情况下,先修复的服务器要判断为主用服务器,后修复的服务器要判断为备用服务器,当两台服务器正常时,主热备功能恢复正常使用。
完成这个逻辑处理,需要两个校验数据,一个是主用服务器使用的标记信息(通常使用主用服务器的 IP 地址);另外一个是主用服务器正常运行时,每一个时间心跳的最后时间的刷新纪录。这两个校验数据通过发送心跳和心跳回馈的方式进行消息传输。
若用户应用要求数据吞吐量一般(每小时新增数据100G以下),更关注业务连续性(例如财务系统、OA系统、CRM系统等),可采用镜像双机热备方案,性价比高,数据安全性高,采用ServHAMirror双机热备软件产品。
若用户应用要求数据吞吐量较高(每小时新增数据100G以上)、数据总量巨大且需要空间扩展,且关注业务连续性(例如视频监控、PACS、CRM系统等),可采用共享存储双机热备方案,采用ServHACluster双机热备软件产品。
若用户应用要求数据吞吐量较高(每小时新增数据100G以上)、预算充足、对数据安全性有很高要求、数据总量巨大且需要空间扩展,可采用双机双柜双机热备方案,采用ServHA DS Mirror双机热备软件产品。
RoseMirrorHA 是美国罗斯数据系统公司出品的一款高可用性热备软件,是基于数据实时镜像和共享磁盘的双机服务器高稳定性的解决方案。它可以将 linux 服务器组成集群系统,用户可以在原单机服务器基础上,增加一台服务器,或增加一台服务器及一台磁盘阵列,即可实现灵活的双机高可用系统。RoseMirrorHA 能够对服务器进行监控、故障检测、故障恢复,保护运行于服务器中的关键性数据服务和网络服务。
Heartbeat 由心跳检测和资源接管两个核心部分组成,心跳检测通过 cluster messaging layer 集群通过网络或者链路接口完成带有自身状态的报文的发送与接收,在一个时间周期内未接收到对方的报文,则启动 Resource-agent(资源管理模块)的 ocf 脚本,通过脚本实现资源与服务的启动、停止、监管,从而实现服务器接管的功能。
Keepalived 是基于虚拟路由冗余协议(Virtual Router Redundancy Protocol)实现的,将服务器分为主路由器和备份路由器,并且利用选举机制,将对外提供服务的主服务器作为主控路由器,而从服务器则作为备份路由器,保持数据一致,当主路由器发送故障失效时,则将备份路由器转换为主控路由,继续对外提供服务。
Keepalived+Nginx+Tomcat搭建高可用的Web服务(一):主备模式
百度百科
双机热备系统的方案与软件浅析
什么双机热备? 为什么要做双机热备? 双机热备有哪几种?
狄添舜.双机热备软件设计分析[J].现代信息科技,2018,2(09):56-59+62.
王右全.浅议双机热备在教务系统的应用[J].广东蚕业,2018,52(07):46-47.