一. 双机热备
双机热备系统是高可用领域中的一项重要技术,从上世纪90年代中期,当互联网技术在国际上开始发展普及,各种自动化控制、数据库、关键IT应用的不断增多,这些应用逐渐渗透到各种核心领域,大多需要不间断运行,为此,高可用的理念被提出,高可用的需求也开始大量呈现出来,由于当时的计算机设备价格昂贵,网络环境及核心应用较少而且相对简单,因此为了实现应用的高可用,用户一般都采用双机热备系统的方式,在那个阶段,双机热备系统软件几乎是用户唯一的选择,国外各个厂商也纷纷推出了各自的产品,来满足用户的需求。
国外厂商Veritas、Legato的相关产品开始在用户群中普及起来,但是对于国内用户来说,这些厂商的产品往往价格昂贵,操作复杂,维护成本很高,国内很少有用户能够承担,是花费大量的金钱购买国外产品,还是继续维持现状,是摆在用户面前的棘手问题。
此时,国内有一家软件厂商“联鼎软件”开始崭露头角,推出了国内第一款自主研发的高可用软件:Landercluster,并成为第一个在SCO平台成功实施多节点高可用集群的厂商,当时SCO平台在银行、保险行业中拥有大量用户,LanderCluster凭借优秀的品质,适合的价格,成为这些用户的首选产品,也确立了在高可用软件领域领先地位。
随后,由于国内市场对高可用概念的不断深入,用户群需求也不断增加,市场上也陆续出现了新的品牌,如ROSE HA、Dataware等,并且国内一些公司也开始OEM。至今市场中已经存在二十几个不同品牌,但其中有绝大部分是OEM原厂商的产品。
双机热备,是对于重要的服务,使用两台服务器,互相备份,共同执行同一服务。当一台服务器出现故障时,可以由另一台服务器承担服务任务,从而在不需要人工干预的情况下,自动保证系统能持续提供服务。
双机热备一般情况下需要有共享的存储设备。但某些情况下也可以使用两台独立的服务器。 实现双机热备,需要通过专业的集群软件或双机软件。
从狭义上讲,双机热备特指基于active/standby方式的服务器热备。服务器数据包括数据库数据同时往两台或多台服务器写,或者使用一个共享的存储设备。在同一时间内只有一台服务器运行。当其中运行着的一台服务器出现故障无法启动时,另一台备份服务器会通过软件诊测(一般是通过心跳诊断)将standby机器激活,保证应用在短时间内完全恢复正常使用。
二. 双机热备解决方案
2.1 Unix平台下双机热备解决方案
以IBM、HP和SUN为代表的UNIX环境下都有双机热备解决方案,如IBM Hacmp(High Availability Cluster Multi-Processing)双机热备解决方案份软件的主要功能是提高企业客户计算机系统及其应用的可靠性,而不是单台主机的可靠性。
HACMP是利用LAN来监控主机及网络、网卡的状态。在一个HACMP环境中有TCP/IP网络和非TCP/IP网络。TCP/IP网络即应用客户端访问的公共网,该网可以是大多数AIX所支持的网络,如Ethernet,T.R.,FDDI,ATM,SOCC,SLIP,等等。非TCP/IP网络用来为HACMP对HA环境(Cluster)中的各节点进行监控而提供的一个替代TCP/IP的通讯路径,它可以是用RS232串口线将各节点连接起来,也可以是将各节点的SCSI卡或SSA卡设置成Target Mode方式。
作为双机系统的两台服务器(主机A和B)同时运行Hacmp软件;服务器除正常运行自机的应用外,同时又作为对方的备份主机;两台主机系统(A和B)在整个运行过程中,通过 “心跳线”相互监测对方的运行情况(包括系统的软硬件运行、网络通讯和应用运行情况等);一旦发现对方主机的运行不正常(出故障)时,故障机上的应用就会立即停止运行,本机(故障机的备份机)就会立即在自己的机器上启动故障机上的应用,把故障机的应用及其资源(包括用到的IP地址和磁盘空间等)接管过来,使故障机上的应用在本机继续运行;应用和资源的接管过程由HA软件自动完成,无需人工干预;当两台主机正常工作时,也可以根据需要将其中一台机上的应用人为切换到另一台机(备份机)上运行。
另外HP 的ServiceGuard、SUN的suncluster都可以实现双机热备解决方案功能。
2.2 Linux平台下双机热备解决方案
Linux环境下双机热备解决方案软件可以采用Steeleye的Lifekeeper for Linux ,LifeKeeper 提供直观的基于Java的图形接口,方便实现跨平台配置、管理和状态监控; 同时也包括一个完整的命令行接口。SteelEye公司的LifeKeeper for Linux 一个通过保持系统正常运行而确保应用具有持续可用性的软件应用。LifeKeeper 实现以双机热备解决方案方式连接在一起的linux系统的高可用性,这是通过监控系统及应用健康状态,保持客户连接性并为任何客户,无论位于互联网、内联网还是外联网提高不间断的数据存取。为了使系统及应用能在宕机是自动恢复,LifeKeeper允许将在应用在发生错误时切换到双机中的另一台服务器上。这有助于LifeKeeper将单点失败的风险降低到最低,从而在Linux系统上创建一种抗错环境以满足关键任务操作的严格可用性要求。
Redhat Linux系统下的双机热备解决方案系统的实现,使用的双机控制软件是Linux-HA heartbeat。因此,除了安装操作系统及相关的应用服务程序之外,还需要安装heartbeat控制软件。通过对heartbeat软件的配置,可以把两台服务器分别指定为主节点和从节点,指定心跳信号的时间间隔,指定cluster IP、子网掩码、广播地址、鉴权方式,还可以设置heartbeat启动的服务,该服务最终由双机系统通过cluster IP对外提供。Heartbeat可以最大限度地保护用户端的应用连续性。用户的硬件资源(如网卡),软件资源(如操作系统、数据库管理系统、数据库应用系统、电子邮件系统等)均能处于heartbeat容错软件的保护之下,当这些被保护的资源出现技术故障时, heartbeat容错软件可以随时实施系统资源的切换。因此,heartbeat真正实现了用户硬件或是软件资源发生故障时系统及应用层上的在线热切换。
因此无论是大中小企业,根据业务应用的重要性不同,都可以采用双机热备解决方案,特别是电信、政府、税务、银行等行业重要应用系统,需要7X24X365永远运行的业务,一般都会使用双机热备或者集群方式来保证企业应用“万无一失”。当然使用双机热备需要有资金支持的,无论是从硬件和软件上我们必须要全盘考虑好,特别是UNIX环境下,配置HA是非常麻烦的事等,这些问题是企业在实施双机热备解决方案过程中必须要重视的。
三. 双机与集群
随着IT市场的不断高速发展,各种软硬件产品不断推陈出新,用户的全天候运行应用迅速增加,需要全天候运行的环境中,几乎都不能够承受宕机,无论是计划内的宕机(升级、维护和修复),还是突发的宕机(由于人为错误、处理故障、电源故障、甚至灾难事件)。许多企业都在制订最短时间内恢复核心应用的业务连续性计划,在此计划中,高可用的应用又是重中之重。
新技术在发展,用户的需求在发展,高可用软件产品也必须发展,随着各种存储及网络环境的演进,SAN构架下的系统不断增加,用户目前的核心应用数量越来越多,在这种分布式多应用系统构架下,双机环境通常只能实现单个应用的高可用,主要有Active/StandBy工作模式和应用互备Active/Active工作模式,当用户的核心应用多于二个的时候,双机热备系统的方式将力不从心,除非用户愿意搭建多个双机热备系统环境,但是多个双机热备系统的环境将大大增加硬件采购成本(多增加一倍的硬件采购成本)及管理难度。当用户核心应用在未来不断增多的时候,双机环境无法扩展。
纯粹的双机热备系统方式由于存在很多的局限性以及极差的扩展性,在国际上的应用的确已经越来越少,取而代之的日益被用户接受和广泛使用的高可用系统是多节点集群,目前新用户在选择高可用解决方案时往往已经拥有不止一个关键应用,或者就算某些用户目前只有极少的关键应用,但其考虑未来关键业务数量的增加,仍然可以先购买两个节点的“集群”,日后可以进行扩展,如何简单的扩充也是用户急需解决的问题,“集群”的“平滑扩展”就能很好的满足用户这些需求。另外,关键应用增多后如何更好的管理,应用得到更完善的保障,也是用户关心的问题,由于“集群”系统可以整合大量的核心应用,甚至是不同操作系统平台的应用,并实现统一管理,而且“集群”中的每个节点通常拥有两个以上备援节点,使得整个被“集群”保护起来的核心应用较“双机”更加强壮,整体可靠性、可用性也更高。在多节点“集群”系统中,备援服务器的数量往往比较少,比如8个节点的“集群”通常最多只需要2台备援服务器,这样将大大减少建设时的硬件投资,大大降低用户TCO。
“集群”系统往往对目前流行的服务器、数据库及应用(如oracle,sql,SAP等)、存储环境(如SAN,ISCSI)有更好的支持,借助一定的技术,甚至能够实现“应用虚拟化”,对于用户来说,将更有利于未来的发展。但是“集群”技术较“双机”的复杂度有所提高,需要更专业的技术人员进行维护。
随着用户需求的不断发展,单纯的“双机热备系统”显然越来越不适应新技术及新用户的需求,“双机”将成为一些入门用户及低端用户的选择,而高可用“集群”技术将接替“双机热备系统”,成为用户更好选择。
from :http://blog.csdn.net/tianlesoftware/article/details/5932885