ServHA是一款双机集群产品,它运行在Windows平台上,负责管理两台主机运行各自的应用系统。当主机或主机上的软件出现故障时,无需人工干预,双机集群中的另一台主机可以通过心跳线路检测出故障主机,并将原主机的应用系统移交到另一台主机上继续运行,实现整个系统的不间断运行,从而保证整个系统对外服务的正常。

ServHA双机系统的两台服务器(主机)都与磁盘阵列(共享存储)系统连接,用户的操作系统、应用软件和ServHA软件分别安装在两台主机上,数据库等共享数据存放在存储系统上。两台主机之间通过私用(或公用)网络建立心跳连接。配置好的系统主机开始工作后,ServHA服务开始监控系统,通过心跳连接,每台主机上的ServHA服务都可监控另一台主机的状态。当工作主机发生故障时,心跳信息就会产生变化,这种变化可以通过心跳连接被ServHA服务捕捉。

当捕捉到这种变化后,ServHA就会控制系统进行主机切换,即备份机启动和工作主机一样的应用程序接管工作主机的工作(包括提供TCP/IP网络服务等),并进行报警提示管理人员对故障主机进行维修。维修完毕后,可以根据ServHA的设定自动或手动再切换回来;也可以不切换,此时维修好的主机就作为备份机,双机系统继续工作。

ServHA实现容错功能的关键在于:对客户端来说主机是透明的。当系统发生错误而进行切换时,在客户端看来没有变化,所有基于主机的应用都仍然正常运行。ServHA采用了IP漂移技术来实现此功能。客户端通过虚拟地址和工作主机通讯;无论系统是否发生切换,虚拟地址始终指向工作主机。

在进行网络服务时,ServHA提供一个逻辑的虚拟地址;任何一个客户端需要请求服务时只需要使用这个虚拟地址。正常运行时,虚拟地址及网络服务由主服务器提供;当主服务器出现故障时,ServHA会将虚拟地址转移到另外一台服务器的网卡上继续提供网络服务。切换完成后,在客户端看来系统并没有出现故障;网络服务仍然可以使用。除了IP地址外,ServHA还可以提供虚拟的计算机别名供客户端访问。对于数据库服务而言,当有主服务器出现故障时,另外一台服务器就会自动接管;同时启动数据库和应用程序使用户数据库可以正常操作。