概念
双机热备是应用于服务器的一种解决方案,其构造思想是主机和从机通过TCP/IP网络连接,正常情况下主机处于工作状态,从机处于监视状态,一旦从机发现主机异常,从机将会在很短的时间之内代替主机,完全实现主机的功能。
定义
广义
就是对于重要的服务,使用两台服务器,互相备份,共同执行同一服务。当一台服务器出现故障时,由另一台服务器承担服务任务,从而在不需要人工干预的情况下,自动保证系统能持续提供服务。双机热备由备用的服务器解决了在主服务器故障时服务不中断的问题。
狭义
双机热备特指基于active/standby方式的服务器热备。服务器数据包括数据库数据同时往两台或多台服务器执行写操作,或者使用一个共享的存储设备。在同一时间内只有一台服务器运行。当其中运行着的一台服务器出现故障无法启动时,另一台备份服务器会通过软件诊测(一般是通过心跳诊断)将standby机器激活,保证应用在短时间内完全恢复正常使用。
实现原理
双机热备主要是实时数据、报警信息和变量历史记录的热备。主从机都正常工作时,主机从设备采集数据,并产生报警和事件信息。从机通过网络从主机获取实时数据和报警信息,而不会从设备读取或自己产生报警信息,主从机都各自记录变量历史数据。同时,从机通过网络监听主机,从机与主机之间的监听采取请求与应答的方式,从机以一定的时间间隔(冗余机心跳检测时间)向主机发出请求,主机应答表示工作正常,主机如果没有作出应答,从机将切断与主机的网络数据传输,转入活动状态,改由下位设备获取数据,并产生报警和事件信息。此后,从机还会定时监听主机状态,一旦主机恢复,就切换到热备状态,通过这种方式实现了热备。
当主机正常运行,从机后启动时,主机先将实时数据和当前报警缓冲区中的报警和事件信息发送到从机上,完成实时数据的热备份。然后主从机同步,暂停变量历史数据记录,从机从主机上将所缺的历史记录文件通过网络拷贝到本地,完成历史数据的热备份。这时可以在主从机组态王信息窗中看到提示信息“开始备份历史数据”和“停止备份历史数据”。历史数据文件备份完成后,主从机转入正常工作状态。
当从机正常运行、主机后启动时,从机先将实时数据和当前报警缓冲区中的报警和事件信息发送到主机上,完成实时数据的热备份。然后主从机同步,暂停变量历史数据记录,主机从从机上将所缺的历史记录文件通过网络拷贝到本地,完成历史数据的热备份。这时也可以在主从机的组态王信息窗中看到提示信息“开始备份历史数据”和“停止备份历史数据”。历史数据文件备份完成后,主从机转入正常工作状态。
双机热备背景以及注意点
适用对象
双机热备针对的是服务器的故障。服务器的故障可能由各种原因引起,如设备故障、操作系统故障、软件系统故障,等等。
背景
一般地讲,在技术人员在现场的情况下,恢复服务器正常可能需要10分钟、几小时甚至几天。从实际经验上看,除非是简单地重启服务器(可能隐患仍然存在),否则往往需要几个小时以上。而如果技术人员不在现场,则恢复服务的时间就更长了。
而对于一些重要系统而言,用户是很难忍受这样长时间的服务中断的。因此,就需要通过双机热备,来避免长时间的服务中断,保证系统长期、可靠的服务。
如何判断是否使用双机热备
决定是否使用双机热备,正确的方法是分析一下系统的重要性以及对服务中断的容忍程度,以此决定是否使用双机热备。即,你的用户能容忍多长时间恢复服务,如果服务不能恢复会造成多大的影响。
注意点
在考虑双机热备时,需要注意,一般意义上的双机热备都会有一个切换过程,这个切换过程可能是一分钟左右。在切换过程中,服务是有可能短时间中断的。但是,当切换完成后,服务将正常恢复。因此,双机热备不是无缝、不中断的,但它能够保证在出现系统故障时,能够很快恢复正常的服务,业务不致受到影响。而如果没有双机热备,则一旦出现服务器故障,可能会出现几个小时的服务中断,对业务的影响会很严重。
另有一点需要强调,即服务器的故障与交换机、存储设备的故障不 同,其概率要高得多。原因在于服务器是比交换机、存储设备复杂得多的设备,同时也是既包括硬件、也包括操作系统、应用软件系统的复杂系统。不仅设备故障可能引起服务中断,而且软件方面的问题也可能导致服务器不能正常工作。
还应指出的是,一些其他的防护措施如磁盘阵列(RAID)、数据备份虽然是非常重要的,但却不能代替双机热备的作用。
实现方式
存储共享
即两台服务器连接一个共享使用的存储设备或存储网络,通过安装双机软件实现双机热备。
基于存储共享的实现方式是双机热备的最标准的方案,在主从模式工作中,两台服务器从应用服务的角度而言是一台服务器,以同样的方式和接口对外提供服务,服务请求则是由主服务器处理。同时,从服务器通过一定的失效检测技术检测主服务器的工作状况。一旦主服务器出现故障,从服务器在较短的时间内进行切换,接管主服务器上的所有资源,成为新的主服务器,切换可以人工切换也可自动切换。由于使用共享的存储设备,因此两台服务器使用的实际上是一样的数据,由双机软件对其进行管理。
软件同步数据
采用纯软件方式或软件同步数据方式,即两台服务器所需要的应用数据放在各自的服务器中,不使用共同的存储设备。