标题：双机热备系统
双机热备
【什么是双机热备】
双机热备包括广义与狭义两种。 
从广义上讲，就是对于重要的服务，使用两台服务器​，互相备份，共同执行同一服务。当一台服务器出现故障时，可以由另一台服务器承担服务任务，从而在不需要人工干预的情况下，自动保证系统能持续提供服务。
从狭义上讲，双机热备特指基于active/standby方式的服务器热备。服务器数据包括数据库数据同时往两台或多台服务器写，或者使用一个共享的存储设备。在同一时间内只有一台服务器运行。当其中运行着的一台服务器出现故障无法启动时，另一台备份服务器会通过软件诊测（一般是通过心跳诊断）将standby机器激活，保证应用在短时间内完全恢复正常使用。
双机热备针对的是服务器的故障。服务器的故障可能由各种原因引起，如设备故障、操作系统故障、软件系统故障等等。一般地讲，在技术人员在现场的情况下，恢复服务器正常可能需要10分钟、几小时甚至几天。从实际经验上看，除非是简单地重启服务器（可能隐患仍然存在），否则往往需要几个小时以上。而如果技术人员不在现场，则恢复服务的时间就更长了。 
而对于一些重要系统而言，用户是很难忍受这样长时间的服务中断的。因此，就需要通过双机热备，来避免长时间的服务中断，保证系统长期、可靠的服务。 
决定是否使用双机热备，正确的方法是要分析一下系统的重要性以及对服务中断的容忍程度，以此决定是否使用双机热备。即，你的用户能容忍多长时间恢复服务，如果服务不能恢复会造成多大的影响。 
我们可以通过典型的双机热备软件PCL HA来看一下双机热备的典型模式：
－Active/Active模式
－Active/Standby模式
而实际上，双机热备可能会扩展为多机的集群：多机集群模式
双机热备一般都是用于有数据库或其他数据的应用。而对于数据之前的应用服务器（或其他没有写数据操作的服务），则应该归入负载均衡领域。
【双机热备：基于共享存储与纯软件方式】
双机热备有两种实现模式，一种是基于共享的存储设备的方式，另一种是没有共享的存储设备的方式，一般称为纯软件方式。
基于存储共享的双机热备是双机热备的最标准方案。
对于这种方式，采用两台服务器，使用共享的存储设备（磁盘阵列柜或存储区域网SAN）。两台服务器可以采用互备、主从、并行等不同的方式。在工作过程中，两台服务器将以一个虚拟的IP地址对外提供服务，依工作方式的不同，将服务请求发送给其中一台服务器承担。同时，服务器通过心跳线(目前往往采用建立私有网络的方式)侦测另一台服务器的工作状况。当一台服务器出现故障时，另一台服务器根据心跳侦测的情况做出判断，并进行切换，接管服务。对于用户而言，这一过程是全自动的，在很短时间内完成，从而对业务不会造成影响。由于使用共享的存储设备，因此两台服务器使用的实际上是一样的数据，由双机或集群软件对其进行管理。
对于纯软件的方式，则是通过支持镜像的双机软件，将数据可以实时复制到另一台服务器上，这样同样的数据就在两台服务器上各存在一份，如果一台服务器出现故障，可以及时切换到另一台服务器。
纯软件方式还有另外一种情况，即服务器只是提供应用服务，而并不保存数据（比如只进行某些计算，做为应用服务器使用）。这种情况下同样也不需要使用共享的存储设备，这种情况应该纳入负载均衡领域，
【纯软件方式的双机热备方案深入分析】
数据库双机热备有两种典型的方式，一种是比较标准的，两台服务器通过一个共享的存储设备（一般是共享的磁盘阵列或存储区域网SAN），并且安装双机软件，实现双机热备，称为共享方式。另一种方式是通过纯软件的方式，一般称为纯软件方式或镜像方式（Mirror）。
对于共享方式，数据库放在共享的存储设备上。当一台服务器提供服务时，直接在存储设备上进行读写。而当系统切换后，另一台服务器也同样读取该存储设备上的数据。
对于纯软件的方式，通过镜像软件，将数据可以实时复制到另一台服务器上，这样同样的数据就在两台服务器上各存在一份，如果一台服务器出现故障，可以及时切换到另一台服务器。
纯软件方式可以在一定程度上降低成本，但它也有非常明显的缺点：
1.可靠性相对较差，两服务器间的数据实时复制是一个比较脆弱的环节。
2.一旦某台服务器出现中断，恢复后还要进行比较复杂的数据同步恢复。并且，这个时段系统处于无保护状态。
3.没有事务机制，由于其复制是在文件和磁盘层进行的，复制是否成功不会影响数据库事务操作，因此有出现数据不完整变化的情况，这个存在着相当的风险。
因此，建议除非不得已，不要选择纯软件方案。
但另一方面，有一种数据库并行的解决方案，它不是在文件或磁盘层进行复制，而是直接对数据库操作在前端进行路由分发，并行地以事务机制完成数据库的更新，同时还可以提供数据库的并行服务。这种方式目前针对SQL SERVER应用非常成功，明显优于共享存储+双机软件的方式。
【双机热备、双机互备与双机双工的区别】
双机热备即是目前通常所说的active/standby方式，服务器数据包括数据库数据同时往两台或多台服务器写，或者使用一个共享的存储设备。当active服务器出现故障的时候，通过软件诊测（一般是通过心跳诊断）将standby机器激活，保证应用在短时间内完全恢复正常使用。
双机互备，在双机热备的基础上，两个相对独立的应用在两台机器同时运行，但彼此均设为备机，当某一台服务器出现故障时，另一台服务器可以在短时间内将故障服务器的应用接管过来，从而保证了应用的持续性。这种方式实际上是双机热备的一种应用。它避免了两个应用使用四台服务器分别实现双机热备。
双机双工，两台或多台服务器均为活动，同时运行相同的应用，保证整体的性能，也实现了负载均衡和互为备份。需要利用磁盘柜存储技术（最好采用san​）。对于数据库服务而言，它同时需要数据库软件的支持，是比较复杂的。而WEB服务器或应用服务器就比较简单了。
双机热备与数据备份的关系
一些用户在规划双机热备或双机备份时，会有这样的问题：我已经有了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）却远远低于双机备份方式的成本。但是就其灵活配置方面，双机热备份方案更具优势，许多热备份方案都是由一些系统集成商组合不同厂家服务器产品进行的，可以满足不同客户需求。但总体来说，容错服务器是未来发展的趋势。