对于日益承担企事业单位核心业务的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(正常切换)
指用一个有顺序的方式关闭资源,然后将它们恢复到一个备份系统的过程。这通常发生在当你处于维护或者测试模式中的情况下。这时,没有任何东西失败。
五. 双机热备容错软件的优点
高可用性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