双机热备即是目前通常所说的active/standby方式,服务器数据包括数据库数据同时往两台或多台服务器写,或者使用一个共享的存储设备。当 active服务器出现故障的时候,通过软件诊测(一般是通过心跳诊断)将standby机器激活,保证应用在短时间内完全恢复正常使用。
双机互备,在双机热备的基础上,两个相对独立的应用在两台机器同时运行,但彼此均设为备机,当某一台服务器出现故障时,另一台服务器可以在短时间内将故障服务器的应用接管过来,从而保证了应用的持续性。这种方式实际上是双机热备的一种应用。它避免了两个应用使用四台服务器分别实现双机热备。
双机双工,两台或多台服务器均为活动,同时运行相同的应用,保证整体的性能,也实现了负载均衡和互为备份。需要利用磁盘柜存储技术(最好采用san)。对于数据库服务而言,它同时需要数据库软件的支持,是比较复杂的。而WEB服务器或应用服务器就比较简单了。
双机热备这一概念包括了广义与狭义两种意义。
从广义上讲,就是对于重要的服务,使用两台服务器,互相备份,共同执行同一服务。当一台服务器出现故障时,可以由另一台服务器承担服务任务,从而在不需要人工干预的情况下,自动保证系统能持续提供服务。
双机热备由备用的服务器解决了在主服务器故障时服务不中断的问题。但在实际应用中,可能会出现多台服务器的情况,即服务器集群。
双机热备一般情况下需要有共享的存储设备。但某些情况下也可以使用两台独立的服务器。
实现双机热备,需要通过专业的集群软件或双机软件。
从狭义上讲,双机热备特指基于active/standby方式的服务器热备。服务器数据包括数据库数据同时往两台或多台服务器写,或者使用一个共享的存储设备。在同一时间内只有一台服务器运行。当其中运行着的一台服务器出现故障无法启动时,另一台备份服务器会通过软件诊测(一般是通过心跳诊断)将 standby机器激活,保证应用在短时间内完全恢复正常使用。(相关文章:双机热备、双机互备与双机双工的区别)
。
我们可以通过典型的双机热备软件PCL HA来看一下双机热备的典型模式:
-Active/Active模式
-Active/Standby模式
而实际上,双机热备可能会扩展为多机的集群:多机集群模式
双机热备一般都是用于有数据库或其他数据的应用。而对于数据之前的应用服务器(或其他没有写数据操作的服务),则应该归入负载均衡领域。
为什么要做双机热备?
双机热备针对的是服务器的故障。
服务器的故障可能由各种原因引起,如设备故障、操作系统故障、软件系统故障等等。一般地讲,在技术人员在现场的情况下,恢复服务器正常可能需要10分钟、几小时甚至几天。从实际经验上看,除非是简单地重启服务器(可能隐患仍然存在),否则往往需要几个小时以上。而如果技术人员不在现场,则恢复服务的时间就更长了。
而对于一些重要系统而言,用户是很难忍受这样长时间的服务中断的。因此,就需要通过双机热备,来避免长时间的服务中断,保证系统长期、可靠的服务。
决定是否使用双机热备,正确的方法是要分析一下系统的重要性以及对服务中断的容忍程度,以此决定是否使用双机热备。即,你的用户能容忍多长时间恢复服务,如果服务不能恢复会造成多大的影响。
在考虑双机热备时,需要注意,一般意义上的双机热备都会有一个切换过程,这个切换过程可能是一分钟左右。在切换过程中,服务是有可能短时间中断的。但是,当切换完成后,服务将正常恢复。因此,双机热备不是无缝、不中断的,但它能够保证在出现系统故障时,能够很快恢复正常的服务,业务不致受到影响。而如果没有双机热备,则一旦出现服务器故障,可能会出现几个小时的服务中断,对业务的影响就可能会很严重。
另有一点需要强调,即服务器的故障与交换机、存储设备的故障不同,其概念要高得多。原因在于服务器是比交换机、存储设备复杂得多的设备,同时也是既包括硬件、也包括操作系统、应用软件系统的复杂系统。不仅设备故障可能引起服务中断,而且软件方面的问题也可能导致服务器不能正常工作。
还应指出的是,一些其他的防护措施如磁盘阵列(RAID)、数据备份虽然是非常重要的,但却不能代替双机热备的作用。
双机热备:基于共享存储与纯软件方式
数据库双机热备有两种典型的方式,一种是比较标准的,两台服务器通过一个共享的存储设备(一般是共享的磁盘阵列或存储区域网SAN),并且安装双机软件,实现双机热备,称为共享方式。另一种方式是通过纯软件的方式,一般称为纯软件方式或镜像方式(Mirror)。
对于共享方式,数据库放在共享的存储设备上。当一台服务器提供服务时,直接在存储设备上进行读写。而当系统切换后,另一台服务器也同样读取该存储设备上的数据。
对于纯软件的方式,通过镜像软件,将数据可以实时复制到另一台服务器上,这样同样的数据就在两台服务器上各存在一份,如果一台服务器出现故障,可以及时切换到另一台服务器。
纯软件方式可以在一定程度上降低成本,但它也有非常明显的缺点:
1.可靠性相对较差,两服务器间的数据实时复制是一个比较脆弱的环节。
2.一旦某台服务器出现中断,恢复后还要进行比较复杂的数据同步恢复。并且,这个时段系统处于无保护状态。
3.没有事务机制,由于其复制是在文件和磁盘层进行的,复制是否成功不会影响数据库事务操作,因此有出现数据不完整变化的情况,这个存在着相当的风险。
因此,建议除非不得已,不要选择纯软件方案。
但另一方面,有一种数据库并行的解决方案,它不是在文件或磁盘层进行复制,而是直接对数据库操作在前端进行路由分发,并行地以事务机制完成数据库的更新,同时还可以提供数据库的并行服务。这种方式目前针对SQL
SERVER应用非常成功,明显优于共享存储+双机软件的方式
双机热备与数据备份的关系
一些用户在规划双机热备或双机备份时,会有这样的问题:我已经有了RAID,以及磁带备份,还有必须做双机吗?或者,如果我做了双机备份,还有必要做磁带备份吗?
应该说RAID和数据备份都是很重要的。但是,RAID技术只能解决硬盘的问题,备份只能解决系统出现问题后的恢复。而一旦服务器本身出现问题,不论是设备的硬件问题还是软件系统的问题,都会造成服务的中断。因此,RAID及数据备份技术不能解决避免服务中断的问题。对于需要持续可靠地提供应用服务的系统,双机还是非常重要的。只要想一想,如果你的服务器坏了,你要用多少时间将其恢复到能正常工作,你的用户能容忍多长的恢复时间就能理解双机的重要性了。
从另外一个方面,RAID以及磁带备份也是非常需要的。对于RAID而言,可以以很低的成本大大提高系统的可靠性,而且其复杂程度远远低于双机。因为毕竟硬盘是系统中机械操作最频繁、易损率最高的部件,如果采用RAID,就可以使出现故障的系统很容易修复,也减少服务器停机进行切换的次数。
数据备份更是必不可少的措施。因为不论RAID还是双机,都是一种实时的备份。任何软件错误、病毒影响、误操作等等,都会同步地在多份数据中发生影响。因此,一定要进行数据的备份(不论采取什么介质,都建议用户至少要有一份脱机的备份),以便能在数据损坏、丢失时进行恢复。
双机热备份VS单机容错
目前主流应用的服务器容错技术有三类,它们分别是:服务器群集技术、双机热备份技术和单机容错技术。它们各自所对应的容错级别是从低到高的,也就是说服务器群集技术容错级别最低,而单机容错技术级别最高。由此可知它们各自应用的行业容错级别需求也是从低到高的。本文主要介绍后两种容错技术,先来看一下双机热备份容错技术。
一、双机热备份技术
双机热备份技术是一种软硬件结合的较高容错应用方案。该方案是由两台服务器系统和一个外接共享磁盘阵列柜(也可没有,而是在各自的服务器中采取RAID卡)及相应的双机热备份软件组成。
在这个容错方案中,操作系统和应用程序安装在两台服务器的本地系统盘上,整个网络系统的数据是通过磁盘阵列集中管理和数据备份的。数据集中管理是通过双机热备份系统,将所有站点的数据直接从中央存储设备读取和存储,并由专业人员进行管理,极大地保护了数据的安全性和保密性。用户的数据存放在外接共享磁盘阵列中,在一台服务器出现故障时,备机主动替代主机工作,保证网络服务不间断。
双机热备份系统采用“心跳”方法保证主系统与备用系统的联系。所谓“心跳”,指的是主从系统之间相互按照一定的时间间隔发送通讯信号,表明各自系统当前的运行状态。一旦“心跳”信号表明主机系统发生故障,或者备用系统无法收到主机系统的“心跳”
信号,则系统的高可用性管理软件认为主机系统发生故障,主机停止工作,并将系统资源转移到备用系统上,备用系统将替代主机发挥作用,以保证网络服务运行不间断。
双机热备份方案中,根据两台服务器的工作方式可以有三种不同的工作模式,即:双机热备模式、双机互备模式和双机双工模式。下面分别予以简单介绍。
双机热备模式即目前通常所说的active/standby 方式,active服务器处于工作状态;而standby
服务器处于监控准备状态,服务器数据包括数据库数据同时往两台或多台服务器写入(通常各服务器采用RAID磁盘阵列卡),保证数据的即时同步。当 active服务器出现故障的时候,通过软件诊测或手工方式将standby机器激活,保证应用在短时间内完全恢复正常使用。典型应用在证券资金服务器或行情服务器。这是目前采用较多的一种模式,但由于另外一台服务器长期处于后备的状态,从计算资源方面考量,就存在一定的浪费。
双机互备模式,是两个相对独立的应用在两台机器同时运行,但彼此均设为备机,当某一台服务器出现故障时,另一台服务器可以在短时间内将故障服务器的应用接管过来,从而保证了应用的持续性,但对服务器的性能要求比较高。配置相对要好。
双机双工模式:是目前cluster(群集)的一种形式,两台服务器均为活动,同时运行相同的应用,保证整体的性能,也实现了负载均衡和互为备份,需要利用磁盘柜存储技术(最好采用San方式)。WEB服务器或FTP服务器等用此种方式比较多。
二、单机容错技术
从上面的分析我们知道,双机热备份技术所采用的是两台配置完全一样的服务器系统,其实服务器群集方案中的容错技术也是一种多服务器容错技术。而本节所要介绍的单机容错技术则是在一台服务器实现高性能容错的,它的容错能力要远比服务器群集和双机热备份中容错能力要高,所以更加适合那些如证券、电信、金融、医疗等对容错能力特别苛刻的行业。
以往的集群系统在出现故障的情况下,需要中断服务器的运行,然后用一定的时间切换至备用的服务器上面进行运行,才能进行维修和恢复,这其中所付出的成本和带来的损失是用户最不愿意看到的。具有容错技术的容错服务器,最大的优势就在于它能够自动分离故障模块,在不中断运行的情况下,进行模块调换,对损坏的部件进行维护,并且在一切物理故障消除后,系统会自动重新同步运行,从而有效的解决了客户的后顾之忧。正因如此,具有容错技术的容错服务器,正在冲击前几年兴起的双机热备份和集群技术,越来越被人们所关注。同时,更为难得的是它可以在采用符合工业标准部件的服务器中实现(IA架构服务器),极具竞争力的成本优势,更使得容错服务器令人刮目相看。
容错服务器是通过CPU时钟锁频,通过对系统中所有硬件的备份,包括CPU、内存和I/O总线等的冗余备份;通过系统内所有冗余部件的同步运行,实现真正意义上的容错。系统任何部件的故障都不会造成系统停顿和数据丢失。目前很多容错系统是基于IA架构的服务器,与
Windows
2000完全兼容,实现以前只有在RISC系统上才能实现的容错。这种容错技术在IA服务器上的实现,将IA服务器的可靠性提高到了99.999%,同时服务器的运行是不间断的。
双机热备份和容错服务器的定位稍微有些不同,这是由两者实现的可用性差别决定的。双机热备份一般可以实现99.9%的可用性,容错服务器却可以实现 99.999%的可用性。这样,双机热备份大多应用在业务连续性不是很严格的行业,比如说公安系统、部队系统或者个别的制造企业,这些行业的应用允许数据有一小段时间的中断。而如电信、金融、证券和医疗等要求高的行业则是容错服务器的天下。还要注意的一点是双机热备份与服务器群集并不一样,双机热备份通常要求两对路服务器的配置完全一样,而服务器群集则没有这方面的严格要求,这也是许多读者容易混淆的。
另外,双机热备份方式由于需要至少2台服务器,导致在软件采购(操作系统、中间件、双机备份软件等)、软件维护升级、系统硬件升级都需要比单机容错方式多 1倍的额外投入,而且在双机备份软件出现故障后,其维修的难度较高,对客户会带来较大困难。因此虽然单机容错服务器的硬件成本高于双机备份方式的硬件投入,而其总成本(TCO)却远远低于双机备份方式的成本。但是就其灵活配置方面,双机热备份方案更具优势,许多热备份方案都是由一些系统集成商组合不同厂家服务器产品进行的,可以满足不同客户需求。但总体来说,容错服务器是未来发展的趋势。
双机热备常识
什么是双机热备?
所谓双机热备就是使用互为备份的两台服务器共同执行同一服务,其中一台主机为工作机(Primary
Server),另一台主机为备份机(Standby
Server)。在系统正常情况下,工作机为应用系统提供服务,备份机监视工作机的运行情况(工作机同时也在检测备份机是否正常),当工作机出现异常,不能支持应用系统运营时,备份机主动接管工作机的工作,继续支持关键应用服务,保证系统不间断的运行。
什么情况下需要采用双机热备?
用户可以根据系统的重要性以及终端用户对服务中断的容忍程度决定是否使用双机热备。比如网络中的用户最多能容忍多长时间恢复服务?如果服务不能很快恢复会造成什么样的后果等。对于承担企业关键业务应用的服务器需要极高的稳定性和可用性,需要7×24不间断服务,推荐使用双机热备。
我已经有了RAID,以及磁带备份,还有必要做双机吗?或者,如果我做了双机备份,还有必要做磁带备份吗?
RAID和数据备份都是很重要的。但RAID技术只能解决硬盘的问题,备份只能解决系统出现问题后的恢复。而一旦服务器本身出现问题,不论是设备的硬件问题还是软件系统的问题,都会造成服务的中断。因此,RAID及数据备份技术不能避免服务中断出现,对于需要持续可靠地提供应用服务的系统,双机还是非常必要的。
数据备份是保障数据安全性的必不可少的措施。因为不论RAID还是双机,都是一种实时的备份。任何软件错误、病毒影响、误操作等等,都会同步地在多份数据中发生影响。因此,对于关键业务即使采用了双机方案也还是一定要进行数据的备份,以便能在数据损坏、丢失时进行恢复。
如何选择与实施双机热备的配置方案?
1. 以应用为主导,以高可用性为宗旨,分析需求的必要性; 2. 选择确定具体的设备、软件的型号等。需要注意的是:
不同的软件或是硬盘等存储设备,他们之间存在兼容性的问题,因此在购买之前应咨询专业人员,避免出现采购了双机软件后对相关的存储设备存在不兼容等现象。 3.在实施完成后,一定要进行测试,以确保工作正常,而且应注意在运行过程中定期的对系统是否能够正常切换进行测试。
什么是双机热备
问:能解释一下什么是双机热备吗?
答:所谓双机热备,就是将中心服务器安装成互为备份的两台服务器,并且在同一时间内只有一台服务器运行。当其中运行着的一台服务器出现故障无法启动时,另一台备份服务器会迅速的自动启动并运行(一般为2分钟左右),从而保证整个网络系统的正常运行!双机热备的工作机制实际上是为整个网络系统的中心服务器提供了一种故障自动恢复能力。
问:什么时候需要双机热备呢?
答:这个问题其实比较简单,一般服务器要长年累月的工作,其备份工作就绝对少不了。所以,决定是否使用双机热备,笔者觉得应首先对系统的重要性,以及终端用户对服务中断的容忍程度进行考虑,然后再来决定是否使用双机热备。比如网络中的用户最多能容忍多长时间恢复服务?如果服务不能很快恢复会造成什么样的后果等等。
问:已经采取了RAID技术和数据备份技术,还有必要做双机热备吗?
答:这其实没有个明确的区分,RAID和数据备份都同等重要!数据备份只能解决系统出现问题后的恢复;而RAID技术,以笔者的使用经验来看又只能解决硬盘的问题。我们知道,当服务器本身出现问题时,不论是设备的硬件问题还是软件系统的问题,都会造成服务的中断,而RAID及数据备份技术恰恰就不能解决避免服务中断的问题。所以,对于高安全需求、持续可靠的提供应用服务的网络系统来说,双机热备还是非常重要的。其实我们可以这样想:如果你的服务器坏了,你要用多少时间将其恢复到能正常工作?这样你就能理解双机热备的重要性了!
问:双机热备方案与集群的区别?
答:从概念上来讲,双机热备属于集群中的一种。集群一般包括两类:一类是纯应用服务器的集群,即各个应用服务器都访问统一的数据库服务器,但彼些并不需要文件共享存储等,这种集群是比较简单的。另一类是数据库服务器的双机热备,这种双机热备实现,一般是两台服务器同时使用共享的存储设备,并且在普遍的情况下,均采取主、备的方式(也有高端的系统采用并行的方式,即两台服务器同时提供服务)。
问:数据库服务如何使用双机热备?
答:通过软件方式实现双机热备。即不采用共享的存储设备,而是本机数据可以直接在多台主机间流动。显而易见,此种方式最大的优点就是节约了昂贵的存储设备投资,而其缺点也不难发现:会产生数据的前后不一致、或者会影响数据库读取的速度。我们看看这样一个例子:如果在服务中断时切换到备份服务器,则可能有少量已经在主机完成的事务在备机上尚未实现。而与备份数据的恢复不同,备机启动后,后面的操作已经进行,因此丢失的数据包要找回就相当难。故此种方式适用于对于丢失少量数据不是非常敏感的系统。
在这儿提一下标准的解决方法,即基于共享存储设备和双机软件实现双机热备。它可以在无人值守的情况下提供快速的切换,并且不会有数据丢失现象,而购买存储设备等投资也会比较高。
问:如何选择与实施双机热备的配置方案?
答:1. 以应用为主导,进行认真的分析。以高可用性为宗旨。
2. 考虑是采用数据库双机热备还是应用服务器集群、还是软件备份方式。
3.
选择确定具体的设备、软件的型号等。笔者在这里提醒大家,不同的软件或是硬盘等存储设备,他们之间存在兼容性的问题,因此在购买之前应咨询专业人员,不要出现采购了双机软件对相关的存储设备存在不兼容等现象。
4. 在实施完成后,一定要进行测试,以确保工作正常,而且应注意在运行过程中定期的对系统是否能够正常切换进行测试。