高可用性HA(High Availability)双机热备

 对于日益承担企事业单位核心业务的NT网络来说,数据的高可用性和系统的连续运转能力极其重要,服务器是企事业单位存放数据的重要设备,如果一旦因为服务器的故障而无法正常运转,就会造成业务停顿,导致不可挽回的损失。 
   服务器的故障可能由各种原因引起,如设备故障、操作系统故障、软件系统故障等等。一般地讲,在技术人员在现场的情况下,恢复服务器正常可能需要10分钟、几小时甚至几天。从实际经验上看,除非是简单地重启服务器(可能隐患仍然存在),否则往往需要几个小时以上。而如果技术人员不在现场,则恢复服务的时间就更长了。 而对于一些重要系统而言,用户是很难忍受这样长时间的服务中断的。因此,就需要通过双机热备,来避免长时间的服务中断,保证系统长期、可靠的服务。 
   随着企事业不断完善和投入运营,如何管好用企事业,充分发挥其现代化基础设施的作用,成为最迫切的问题。数据畅通,访问及时道是各企事业运营管理的重要任务之一,工作正常运行直接影响到管理运作质量和管理的经济效益,双机热备成为了一个理想的选择。双机热备软件能对操作系统、网络、数据库、用户特有程序、第三方软件进行检测,一旦检测到故障后会自动切换到备用服务器,从而实现不停机服务。 

什么是双机热备? 
   从广义上讲,就是对于重要的服务,使用两台服务器,互相备份,共同执行同一服务。当一台服务器出现故障时,可以由另一台服务器承担服务任务,从而在不需要人工干预的情况下,自动保证系统能持续提供服务。 双机热备由备用的服务器解决了在主服务器故障时服务不中断的问题。但在实际应用中,可能会出现多台服务器的情况,即服务器集群。 双机热备一般情况下需要有共享的存储设备。但某些情况下也可以使用两台独立的服务器。实现双机热备,需要通过专业的集群软件或双机软件。
   从狭义上讲,双机热备特指基于active/standby方式的服务器热备。服务器数据包括数据库数据同时往两台或多台服务器写,或者使用一个共享的存储设备。在同一时间内只有一台服务器运行。当其中运行着的一台服务器出现故障无法启动时,另一台备份服务器会通过软件诊测(一般是通过心跳诊断)将standby机器激活,保证应用在短时间内完全恢复正常使用。 
双机的三种模式 
   双机热备即是目前通常所说的主备方式,服务器数据包括数据库数据同时往两台或多台服务器写,或者使用一个共享的存储设备(如磁盘阵列柜)。当主服务器出现故障的时候,通过诊测(一般是通过心跳或串口线诊断)将备机器激活,保证应用在短时间内完全恢复正常使用。 
   双机互备,在双机热备的基础上,两个相对独立的应用在两台机器同时运行,但彼此均设为备机,当某一台服务器出现故障时,另一台服务器可以在短时间内将故障服务器的应用接管过来,从而保证了应用的持续性。这种方式实际上是双机热备的一种应用。它避免了两个应用使用四台服务器分别实现双机热备。 
   双机双工,两台或多台服务器均为活动,同时运行相同的应用,保证整体的性能,也实现了负载均衡和互为备份。需要利用磁盘柜存储技术。对于数据库服务而言,它同时需要数据库软件的支持,是比较复杂的。 
双机热备基本原理: 
一.双机工作原理 
(1)心跳工作过程 
   通过IP做心跳检测时,主备机会通过此心跳路径,周期性的发出相互检测的测试包,如果此时主机出现故障,备机在连续丢失设定数目的检测包后,会认为主机出现故障,这时备机会自动检测设置中是否有第二种心跳,如果没有第二种心跳的话,备机则根据已设定的规则,启动备机的相关服务,完成双机热备的切换。 
(2)IP工作过程 
IP地址用虚拟IP地址的方法来实现,主要原理

主机正常的情况下虚拟IP地址指向主机的实IP地址,用户通过虚拟IP地址访问主机,这时,双机热备软件将虚拟IP地址解析到主机实IP地址。当主机做相关的切换时,虚拟IP地址通过双机热备软件自动将虚拟IP地址解析到备机的实IP地址上,这时,虚拟IP地址指向备机的实IP地址。但对用户来说,用户访问的仍然是虚拟IP地址。所以用户只会在切换的过程中发现有短暂的通信中断,经过一个短暂的时间,就可以恢复通信。 
(3)应用及网络故障切换过程 
(i)可以检测到操作系统的故障并及时将服务切到备用服务器。(如图1) 
(ii)当操作系统正常的情况下,数据库系统出现意外故障,这时双机容错软件可以及时发现并将其切到备用服务器,使服务不致于停止。(如图2) 
(iii)当操作系统和数据库系统全都正常的情况下,服务器网络出现故障,这时双机热备软件,可以将系统切到正常的备用服务器上。 
screen.width*0.7) {this.resized=true; this.width=screen.width*0.7; this.style.cursor='hand'; this.alt='Click here to open new window\nCTRL+Mouse wheel to zoom in/out';}" οnclick="if(!this.resized) {return true;} else {window.open('http://www.99data.cn/clip_image002.gif');}" alt="" src="http://www.99data.cn/clip_image002.gif" οnlοad="if(this.width>screen.width*0.7) {this.resized=true; this.width=screen.width*0.7; this.alt='Click here to open new window\nCTRL+Mouse wheel to zoom in/out';}" border=0>

二.双机热备模式 
   双机热备有两种实现模式,一种是基于共享的存储设备的方式即双机热备容错方式,另一种是没有共享的存储设备的方式,一般称为镜像方式。
双机热备容错方式 
基于存储共享的双机热备是双机热备的最标准方案。 
   对于这种方式,采用两台服务器,使用共享的存储设备(磁盘阵列柜或存储区域网SAN)。两台服务器可以采用互备、主从、并行等不同的方式。在工作过程中,两台服务器将以一个虚拟的IP地址对外提供服务,依工作方式的不同,将服务请求发送给其中一台服务器承担。同时,服务器通过心跳线(目前往往采用建立私有网络的方式)侦测另一台服务器的工作状况。当一台服务器出现故障时,另一台服务器根据心跳侦测的情况做出判断,并进行切换,接管服务。对于用户而言,这一过程是全自动的,在很短时间内完成,从而对业务不会造成影响。由于使用共享的存储设备,因此两台服务器使用的实际上是一样的数据,由双机或集群软件对其进行管理。 
双机热备镜像方式 
   对于镜像的方式,则是通过支持镜像的双机软件,将数据可以实时复制到另一台服务器上,这样同样的数据就在两台服务器上各存在一份,如果一台服务器出现故障,可以及时切换到另一台服务器。 
   镜像方式还有另外一种情况,即服务器只是提供应用服务,而并不保存数据(比如只进行某些计算,做为应用服务器使用)。 
双机容错软件: 

软件、硬件配置
a、软件:双机热备容错软件。
b、硬件:服务器可以是任何Intel基础上的平台, Server的型号、配置不必一致,只需硬件平台能保证Windows NT/2K/Linux/Unix运行;磁盘阵列正常使用。 
二.双机热备容错软件原理 
1.双机热备容错软件定义、特性、资源保护 
   双机热备容错软件提供了一个完全容错的软件解决方案,并提供数据、应用程序和通信资源的高度可用性。双机热备容错软件不需要任何特别的容错硬件,并访问特定节点的配置数据。双机热备容错软件会自动地提供错误检测和现场恢复。
   在出现故障的情况下,双机热备容错软件会将保护资源自动转换到一个根据预先设定好优先权的系统。在实际进行切换用户时, 会经历一个十分短暂的休眠,但是,当系统完成了切换操作后,双机热备容错软件会在所选择的节点上自动地恢复操作。
可以被双机热备容错软件保护起来的资源是:
卷(Volume) : 在共享磁盘阵列的双机方式下,双机热备软件可以对磁盘阵列的卷资源进行保护,防止因双机共同写同一个文件造成的故障。 
IP 地址 : 双机热备软件可以对网络IP地址,网卡进行全方位的检测。 
共享文件:可以对文件夹共享。 
管理器服务器名称 : 可以对服务器名做集群热备。 
应用程序: 可以对Oracle,Sybase,Informix,DB2,MSSQLServer数据库进行保护及检测功能。 
定义的用户: 对用户自有程序做到实时检测及热备功能。 
2、心跳故障检测Heartbeat
   双机热备容错软件在集群节点间保持着间歇的通信信号,也叫做心跳信号,是错误检测的一个机制。即通过每一个通信路径,在两个对等系统之间进行周期性的握手,如果连续没有收到的心跳信号到了一定的数目,双机热备容错软件就把这条路径标示为失效(红色)。
   如果你只定义了一条通信路径,当双机热备容错软件把这唯一的一条通信路径标为失效时, 双机热备容错软件便立即开始恢复过程。然而,如果你有冗余路径, 双机热备容错软件能够通过第二条路径确定是系统故障还是只是通信路径有问题。如果双机热备容错软件开启优先级第二的通信路径并收到了心跳信号,它就不开始failover恢复,只需要把第一条通信路径标成红色(失效),作为信号告诉你需要修复有故障的路径。
   一般情况下双机热备容错软件只在下列事件发生时,启动系统恢复功能:
所有的通信路径故障。如果所有节点都没能收到心跳信号, 把所有通信路径都标为失效, 双机热备容错软件开始安全检查。
   安全检查失败。当所有通信路径故障时,双机热备容错软件向整个网络发出安全检查信号。如果信号指出配对系统还“活”着的时候,双机热备容错软件不启动Failover。如果安全检查没从配对节点返回信号,双机热备容错软件就开始Failover。
   因而,为了减少由于潜在的通讯错误所引起的不必要的系统切换,建议您使用不同介质的多条通信路径。
通信路径 
双机热备容错软件支持在节点之间和心跳通讯中,使用如下通讯路径:
(1) socket,即套接字。你使用任何的网络硬件接口,只要它能够支持TCP/IP的通讯协议。这样的硬件包括:以太网、快速以网。
(2)串行口 在双机热备容错软件配置中, 你应当配置有一个串行口通信路径。串口通信路径需要利用RS232的拟调解线路来与双机热备容错软件系统相连接。
   双机热备容错软件假定当通过心跳信号检测其它服务器失败时,则认为此服务器是关闭的。因此,为了避免不必要的失效切换,最好建立两种以上独立的物理路径,使用至少两种心跳。
   例如,如果两个服务器被一个串口连接起来,并且,从属服务器来的心跳信号无法被主服务器所检测到,则下面之一是可能引起这一现象的原因:
服务器的RS-232卡或者端口 失败电缆失效
主服务器暂时挂起 主服务器失败
失效切换只可能在最后一种情况下才发生。因此,节点间的多种通信路径可以帮助避免不必要的失效切换 
三.双机热备容错软件工作方式 
Active/Standby,Active/Active
Active/Standby   方式是传统的双机热备份解决方案,主机运行时,备机处于备用状态,当主机故障时,备机马上启动将服务接替。因备机平台没有其它的访问量,所以故障切换后用户访问速度不会有大的影响,此种容错方式主要适用于用户只有一种应用,主备机设备配置不太一样,并且用户访问量大的情况。 
   在一个激活/备用对中, 主节点处于处理状态,从属节点处于备用状态,以防主节点上发生失败。备用系统可以是一个小一点、性能低一点的系统,但是,当主节点失败时,它必须有保证资源可达性的处理能力。例如,假设Server1是主“激活”节点,Server2是次“备用”节点。如果Server1发生故障了,它的被保护资源由Server2 节点来恢复。当节点Server1恢复后, 资源可以被Server1重新获得。然而,当Server2 节点失败时,Server2节点上并没有需要被Server1节点恢复的资源。 

Active/Active   这种方式的主备机平时各自有一种应用运行,当系统中的任何一台主机出现故障,应用都会集中到一台服务器上运行,此时这台备用服务器不仅要承担以前的程序运行而且还要运行宕机服务器上的应用程序,所以此时备机的负担会加重。这种方式的故障切换往往会造成备机访问量增大,系统运行变慢。此方式主要适合用户有不只一种应用,用户主备机配置一样且数据访问量不大的情况。 

     在一个激活/激活对中, 两个节点都是激活的处理器,但是它们也可分别作为其对应节点上的资源和资源层次的从属节点。在激活/激活的图表中,有两个主要应用:应用A 处于Volume w中,并且在Server1上激活。APPB存储在Volume M上,并且在Server2上激活。在这一配置中,Server1应该是Volume W:资源的主节点,Server2应该是Volume M:资源的主节点。
   当Server2失败时, 双机热备容错软件应该将Volume M:转换到Server1上去。如果系统资源是足够的,这一转换不会影响到已经在Server1上运行的应用A,转换只是简单地将Server2上的被保护应用程序(B)加到Server1的运行负载上 

四.双机热容错软件备运行机制 
1、共享的SCSI 和双机热备容错软件锁定 
   双机热备容错软件锁定:双机热备容错软件管理共享磁盘上的数据,以防止多个服务器在同一时间访问数据。双机热备容错软件在逻辑设备级(卷)上控制对数据的访问,并Windows/Linux软件或硬件RAID Controllers 管理物理级。有了双机热备 容错软件来管理对共享数据的访问,用户就可以不必担心群中的其它服务器访问数据时, 可能会带来的数据访问冲突。双机热备容错软件自动在被应用程序定义为共享资源的磁盘卷上设置锁定。当被保护的应用程序由一个服务器被移动/转换到另一个服务器时, 双机热备 容错软件控制这些锁定,以保证激活服务器对共享卷的访问。
   在主系统发生故障的情况下, 次节点系统将能够在磁盘上建立SCSI 锁定,并在备份的系统上将资源投入使用。 
2、Local Recovery(局部恢复) 
   双机热备容错软件在应用软件的检测时间间隔执行预先定义的行为,以察看资源本身是否失效。如果快速检查和深入检查均局部告失败,系统将尝试局部恢复资源。如果尝试成功,资源将不会向下一优先级的节点进行失效切换(failover)。如果局部恢复尝试失败,系统将向下一优先级的节点进行失效切换。
3、Failover(失效切换) 
   指定主要的节点或资源失败时,重新恢复资源的过程。一个失效切换通常是没有事先计划的,它将发生在一个被从属系统所检测到并确定为失败的情况下。 
4、 Switchback(可配置的迁回) 
    Configurable Switchback(CS )允许双机热备容错软件管理员通过命令行或GUI界面来指定资源,其所在服务器发生故障而后又恢复正常,该资源将被自动地切换回到原来节点上。如果选择Auto Switchback,那么,一旦发生故障的节点回到服务状态时,被配置失效切换的层次都将被切换回到该节点上。如果策略没有选定Auto Switchback,即使当发生故障的节点回到服务状态时,被配置失效切换的层次也会留在它们被失效切换到的节点上,等待由管理员决定合适的时间进行切换。 
5、Switchover(正常切换) 
   指用一个有顺序的方式关闭资源,然后将它们恢复到一个备份系统的过程。这通常发生在当你处于维护或者测试模式中的情况下。这时,没有任何东西失败。 
五. 双机热备容错软件的优点 

最大限度地保护用户端的应用连续性。用户的硬件资源(如网卡,软件资源如NT操作系统、数据库管理系统、数据库应用系统、电子邮件系统等)均能处于双机热备容错软件的保护之下,当这些被保护资源出现技术故障时,双机热备容错软件可随时实施系统资源切换。如此,双机热备容错软件真正实现了用户硬件或是软件资源发生故障时系统及应用层上的在线热切换。 
双机热备容错软件在镜像或共享磁盘阵列任意方式下,均能实现两台服务器各自运行不同应用且相互热备份,即实现双Active运转模式。 
双机热备容错软件占用系统资源极少,不增加网络负荷,且不打扰任何具体应用系统的任何操作。 
双机热备容错软件真正实现无人值守,全自动地实现应用资源切换,且图形界面操作,简单方便。 
可支持Notes、ExcClusternge、SQL Server、Sybase、Informix、Oracle 、SAP等多种系统的应用层热恢复。 
双机镜像软件: 

   使用带有双机镜像功能的双机热备容错软件来进行配置,其中 Server1 是主服务器,Server2 是从服务器。
   当一个客户向 Server1上的镜像文件夹发出写命令,双机镜像软件保证写命令通过网络送给 Server2,Server2上的写操作成功完成时,Server1上的写操作才能完成。因此,两处系统能够同时更新,因此主、从服务镜像文件夹中的数据一致性得以保证。
软件、硬件配置
1、软件:双机热备 和双机镜像
2、硬件:服务器可以是任何INTEL基础上的平台,两台Server的型号、配置不必一致,只需硬件平台能保证系统运行 
二. 双机镜像软件原理 
1.双机镜像简介 
   双机镜像是一种软件产品,专为Windows/Linux系统设计的客户/服务器环境下一种有效、高性能的高可用性解决方案。单独使用双机镜像软件,无需较贵的RAID磁盘子系统,无需考虑小型计算机系统接口(SCSI)对缆线长度的限制,去除了单点故障(磁盘阵列子系统)。集群计算机环境所要考虑的主要问题是系统总开销,而使用双机镜像软件的双机热备 容错软件 是解决这个问题的首选方案。公司只需最小的硬件集成便可以得到低价、高可用性的方案。
   双机镜像软件在局域网的服务器之间提供完全基于软件的镜像。一个服务器被指定为主服务,另一个为从服务器。客户只能对主服务器上的镜像文件夹进行读或写,从服务器上相应的文件夹被锁定以防对数据的存取,除非在主服务器上检测到故障状态。这是实现一个高性能方案要考虑的一个重要问题,因为数据的完整性是主要因素。尽管双机镜像软件可以单独使用,但是与双机热备和容错软件配合使用会显著增强它的功能。 
2. 双机镜像特性 
   在双机镜像环境下,一个镜像是主服务器上的一个或多个文件夹,而不是整块硬盘或分区,其内容与从服务器上的相关磁盘通过LAN同步。双机镜像软件使磁盘上的文件镜像的创建更为容易。
   在文件镜像建立后,主服务器和从服务器上的文件夹已经同步,并且两个服务器都已启动运行,出现下面的事件:
   最初的镜像建立后,系统禁止所有用户存取从服务器的镜像文件,不允许对从服务器上的镜像文件读和写。主服务器镜像则可以进行读和写操作。
   无论何时主服务器收到一个写请求,系统首先决定这个请求是否针对某个镜像文件夹。如果不是,写操作可以完全正常的完成。
   当从系统返回一个成功状态时,主系统在自己的镜像文件夹中执行写操作,并返回到请求方。如果从系统执行镜像文件夹写操作时发生错误,那么从系统上的写操作将被中止,主系统结束自己的镜像文件夹写请求。 
3. 双机镜像特性 
   A. 双机热备提供的全系统检测功能与双机镜像的文件镜像功能相辅相承,使双机热备系统无需昂贵的磁盘阵列子系统。
   B. 使用双机镜像将数据由一个主机系统镜像到另一个主机系统,并与双机热备相结合,可有效的避免磁盘阵列子系统中单点故障的可能性。
   C. 当主备服务器发生切换时。双机镜像开机后并不是以整盘再将备机数据分区或硬盘全部复制到主服务器,而是将备机中变化的数据部分复制到主服务器,如图所。减少了数据复制的时间,同时也增加了数据的安全性。 
4. 具备远程的灾难复原能力 
*双机镜像在服务器端的数据复制能力。
*双机镜像有在局域网和广域网的数据复制能力。
*所有双机镜像都可以配合双机热备软件,实现异地的数据备份功能。 
三. 双机镜像软件工作方式 

Active/Standby 
   在一个激活/备用图表中, 应用A在server1上运行,server2处于备用状态,以防主server1上发生失败。当Server1发生故障时,被保护资源由Server2 节点来恢复。当节点Server1恢复后, 资源可以被Server1重新获得。然而,当Server2 节点失败时,Server2节点上并没有需要被Server1节点恢复的资源。 

Active/ Active
   在激活/激活的图表中,有两个主要应用: 应用A 处在Server1上激活。应用B在Server2上激活。当Server2失败时, 双机热备镜像软件应该将应用B转换到Server1上去。如果系统资源是足够的,这一转换不会影响到已经在Server1上运行的应用A,转换只是简单地将Server2上的被保护应用程序应用B加到Server1的运行负载上 
双机镜像具有以上两种工作方式,可支持两个Server系统。 
四.双机镜像软件运行机制 
I、通讯路径 
   “Heartbeat”是服务器间发出的周期性检测信息,它允许双机热备容错软件决定服务器的状态。当一个服务器向另一处服务器发送一个“Heartbeat”消息,并且在规定时间段里没有得到任何回应时, 发送消息的服务器开始评测接收消息的服务器是否正在发生故障。多种“Heartbeat”检测信号保证故障检测的可靠性,以防止不必要的资源服务切换。双机热备 容错软件为双机热备镜像提供下列途径上的“Heartbeat”通信: 
Socket (TCP/IP ) 
RS-232 TTY通信端口(Communications port ) 
双机热备镜像软件消除了共享SCSI 的需要。 
II、主服务器发生故障 
   客户向Server1上运行的一个程序发送一个请求,而Server1出现写错误时,使用带有双机热备镜像功能的双机热备 容错软件能够检测出系统失败。然后,双机热备 容错软件 执行恢复规则,试图关闭Server1上的应用,并且在Server2上重新启动它们。Server2现在承担主服务器的角色,镜像文件夹地址从Server1转移到Server2上去,这个转换过程对用户来说是透明的,客户一般不会发现系统曾经发生这样的故障。
   一旦系统发生的故障被被纠正过来,管理员必须重新同步镜像文件夹。重新同步这些文件夹并被锁定,目的是不接受任何客户的存取。在这个过程中,非镜像应用不会受到影响,因此这些应用可以毫无干扰的继续运行。系统管理员可以选择何时对镜像文件夹进行同步,通过提供选择时间的灵活性达到对整个系统的影响减为最小。
    重新同步主服务器和从服务器上镜像的时间依赖于文件夹的大小。 一般情况下,在100MB 以太网上, 恢复1Gigabyte(GB)的数据只需要10分钟。 
III、从服务器发生故障 
   当从系统发生故障时,受影响的镜像文件夹标志为Broken。有必要纠正这些故障,并重新同步有关的文件夹。当从系统发生故障时,任何写请求不会送给从系统。当从服务器发生故障后再次恢复时,镜像管理器用来重新同步主镜像文件夹和从镜像文件夹 
五.双机镜像软件的优点 
    1、避免了磁盘阵列的单点故障:对于双机热备,本身即是防范由于单个设备的故障导致服务中断,但磁盘阵列恰恰又形成了一个新的单点。(比如,服务器的可靠系数是99.9%, 磁盘阵列的可靠系数是99.95%,则纯软双机的可靠系数是1-99.9%x99.9%=99.99%,而基于磁盘阵列的双机热备系统的可靠系数则会是略低于99.95% 
   2、节约投资:不需购买昂贵的磁盘阵列。 
   3、不受距离的限制:两台服务器不需受SCSI电缆的长度限制(光纤通道的磁盘阵列也不受距离限制,但投资会大得多)。这样,可以更灵活地部署服务器,包括通过物理位置的距离来提高安全性。 
其他: 
一.怎么选择双机? 

   决定是否使用双机热备,正确的方法是要分析一下系统的重要性以及对服务中断的容忍程度,以此决定是否使用双机热备。即,你的用户能容忍多长时间恢复服务,如果服务不能恢复会造成多大的影响。 
   在考虑双机热备时,需要注意,一般意义上的双机热备都会有一个切换过程,这个切换过程可能是一分钟左右。在切换过程中,服务是有可能短时间中断的。但是,当切换完成后,服务将正常恢复。因此,双机热备不是无缝、不中断的,但它能够保证在出现系统故障时,能够很快恢复正常的服务,业务不致受到影响。而如果没有双机热备,则一旦出现服务器故障,可能会出现几个小时的服务中断,对业务的影响就可能会很严重。 
建议采取以下的步骤与方法: 
第一,了解清楚应用环境。 
在这一步骤要以应用为主导,进行认真的分析。应该明确以下事项: 
1、有哪些服务器在运行 
2、服务器的操作系统与数据库系统、应用软件都是什么 
3、使用什么样的应用系统 
4、能够承担多长时间的服务中断 
5、数据量、数据写入的频繁程度 
6、硬件条件 
7、大致的预算 
第二,确定双机热备方案的模式。 
1、决定要不要备、谁和谁备。采用数据库双机热备,应用服务器集群,是主从方式还是互备?亦或是多台服务器? 
2、决定如何备。就双机热备而言,是采用共享的存储设备,还是采用基于镜像的纯软件方式。 
第三,选择确定具体的设备、软件的型号。 
要特别注意的是,不同的软件、存储设备之间存在兼容性的问题,因此一定要统一考虑,并提前及时咨询专业人员。切忌出现采购了双机软件对相关的存储设备不兼容等问题。 
1、产品是否能支持所要求的应用方式 
2、产品是否能支持所使用的应用环境 
第四,产品的其他特性: 
1、是否支持远程监控(可以使你不用非要经常跑到机房,才知道是否一台服务器宕机了)? 
2、界面语言(对双机软件,中文界面并不是非常重要,但也是一个因素。同时,是否有中文手册等则可能非常重要)。 
3、安装的难易程度 。 
第五、售后服务 
1、是否存在合法的供货渠道?(直接关系到产品是否能得到长期可靠的服务!!!)
2、是否需要安装服务?需要什么样的售后服务?服务要求是否有保障? 
二. 双机热备与数据备份的关系 
   一些用户在规划双机热备或双机备份时,会有这样的问题:我已经有了RAID,以及磁带备份,还有必须做双机吗?或者,如果我做了双机备份,还有必要做磁带备份吗? 
   应该说RAID和数据备份都是很重要的。但是,RAID技术只能解决硬盘的问题,备份只能解决系统出现问题后的恢复。而一旦服务器本身出现问题,不论是设备的硬件问题还是软件系统的问题,都会造成服务的中断。因此,RAID及数据备份技术不能解决避免服务中断的问题。对于需要持续可靠地提供应用服务的系统,双机还是非常重要的。只要想一想,如果你的服务器坏了,你要用多少时间将其恢复到能正常工作,你的用户能容忍多长的恢复时间就能理解双机的重要性了。 
   从另外一个方面,RAID以及磁带备份也是非常需要的。对于RAID而言,可以以很低的成本大大提高系统的可靠性,而且其复杂程度远远低于双机。因为毕竟硬盘是系统中机械操作最频繁、易损率最高的部件,如果采用RAID,就可以使出现故障的系统很容易修复,也减少服务器停机进行切换的次数。 
   数据备份更是必不可少的措施。因为不论RAID还是双机,都是一种实时的备份。任何软件错误、病毒影响、误操作等等,都会同步地在多份数据中发生影响。因此,一定要进行数据的备份(不论采取什么介质,都建议用户至少要有一份脱机的备份),以便能在数据损坏、丢失时进行恢复。

. 双机与集群的关系 
   在双机热备应用方面,有两大类软件产品。一类是双机软件(HA),另一类则称作集群软件(Cluster),这两类软件是有差异的。 
   它们都是为实现系统的高可用性服务的,都解决了一台服务器出现故障时,由其他服务器接管应用,从而持续可靠地提供服务的问题。 
它们都是通过心跳技术在进行系统检测。 
   但是,双机软件只能支持两台服务器以主从方式或互备方式工作。而集群软件除了支持双机工作外,还可以支持多台服务器(Multi Node)工作,同时部署多个应用,并在多个服务器间灵活地设置接管策略。 
   在两种情况下需要使用集群软件:一是有超过两个应用,本身就需要部署三台或更多的服务器。二是只有两个应用,但每个应用的负载均较大,不宜采用双机互备的方式,而是需要由第三台服务器来作为这两个应用的备机。 
   一般地讲,集群软件具有更多的技术含量,具备更高的可靠性。同时,往往价格(平均到每台服务器)也高于双机软件。 
   在选择产品时,应根据应用的实际情况来确定。最理想的方式,则是在应用数量少、负载不是很大时先使用双机软件,然后在应用数量增多、负载增大时平滑过渡到集群软件。 

高可用性HA(High Availability)指的是通过尽量缩短因日常维护操作(计划)和突发的系统崩溃(非计划)所导致的停机时间,以提高系统和应用的可用性。HA系统是目前企业防止核心计算机系统因故障停机的最有效手段。

实现HA的方式,一般采用两台机器同时完成一项功能,比如数据库服务器,平常只有一台机器对外提供服务,另一台机器作为热备,当这台机器出现故障时,自动动态切换到另一台热备的机器。

 

怎么实现故障检测的那?

      心跳,采用定时发送一个数据包,如果机器多长时间没响应,就认为是发生故障,自动切换到热备的机器上去。

怎么实现自动切换那?

      虚IP。何为虚IP那,就是一个未分配给真实主机的IP,也就是说对外提供数据库服务器的主机除了有一个真实IP外还有一个虚IP,使用这两个IP中的 任意一个都可以连接到这台主机,所有项目中数据库链接一项配置的都是这个虚IP,当服务器发生故障无法对外提供服务时,动态将这个虚IP切换到备用主机。

 

 

开始我也不明白这是怎么实现的,以为是软件动态改IP地址,其实不是这样,其实现原理主要是靠TCP/IP的ARP协议。因为ip地址只是一个逻辑 地址,在以太网中MAC地址才是真正用来进行数据传输的物理地址,每台主机中都有一个ARP高速缓存,存储同一个网络内的IP地址与MAC地址的对应关 系,以太网中的主机发送数据时会先从这个缓存中查询目标IP对应的MAC地址,会向这个MAC地址发送数据。操作系统会自动维护这个缓存。这就是整个实现 的关键。

下边就是我电脑上的arp缓存的内容。

 (192.168.1.219) at 00:21:5A:DB:68:E8 [ether] on bond0

(192.168.1.217) at 00:21:5A:DB:68:E8 [ether] on bond0
(192.168.1.218) at 00:21:5A:DB:7F:C2 [ether] on bond0
 

 192.168.1.217、192.168.1.218是两台真实的电脑,

192.168.1.217为对外提供数据库服务的主机。 192.168.1.218为热备的机器。192.168.1.217为虚IP。

大家注意红字部分,219、217的MAC地址是相同的。

再看看那217宕机后的arp缓存

(192.168.1.219) at 00:21:5A:DB:7F:C2 [ether] on bond0
(192.168.1.217) at 00:21:5A:DB:68:E8 [ether] on bond0
(192.168.1.218) at 00:21:5A:DB:7F:C2 [ether] on bond0 

这就是奥妙所在。
当218 发现217宕机后会向网络发送一个ARP数据包,告诉所有主机 192.168.1.219这个IP对应的MAC地址是00:21:5A:DB:7F:C2,这样所有发送到219的数据包都会发送到mac地址为00:21:5A:DB:7F:C2的机器也就是218的机器

你可能感兴趣的:(HA,HA)