双机保障(热备)实现系统高可用性
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
双机保障(热备)实现系统高可用性
1.背景
随着当前网络的快速发展,很多传统的服务已经转移到网络环境中实施,例如数据存储、金融交易、企业管理、通信传输等,当前大部分服务都是采用中心服务器的模式。网络环境的脆弱性,导致中心服务器出现故障的几率比较大。因为在网络环境下,导致服务器故障的原因是错综复杂,无法预测的,例如网络攻击、电缆断线、操作系统故障、软件故障、设备故障等。一旦服务器出现故障,那么所提供的服务就会被中断一段较长的时间。一般地讲,在技术人员在现场的情况下,恢复服务器正常可能需要10分钟、几小时甚至几天。从实际经验上看,除非是简单地重启服务器(可能隐患仍然存在),否则往往需要几个小时以上。而如果技术人员不在现场,则恢复服务的时间就更长了。因此,服务器提供服务的持续性是得不到保证的。
但是,对于一些企业级应用来说,用户是很难忍受这样长时间的服务中断的,保证系统能够持续地、稳定地提供服务至关重要。对于某些执行关键使命的系统,甚至要求系统能够具备365×24不停顿运行的能力。因此,出现了高可用性的需求和方案。
HIFN实验室在研究UTM(统一威胁管理)平台时,采用了一种“双机热备”的技术方案保证UTM系统的高可用性。该UTM平台采用了HIFN HPM模式匹配算法来完成内容过滤和病毒扫描,并使用了HIFN FlowThrogh IPSec加速卡来实现VPN。以下笔者将会结合该UTM平台详细介绍这种“双机热备”式的高可用性技术方案。
2.概述
双机热备技术,概括地说,就是使用两台服务器,通过即时备份数据的方式,实现系统的高可用性。其基本原理是这两台服务器,一台处于active状态,称为主服务器,一台处于standby状态,称为备用服务器。在正常情况下,由处于active
状态的主服务器提供服务,当主服务器出现故障时,处于standby状态的备用服务器被激活,接替主服务器继续提供服务。而整个过程无需人工干预,在短时间内自动完成服务接管。双机的结构如图1所示。
图 1 UTM平台上的双机热备结构
双机热备技术可以有两种实现模式,两者的区别主要是针对服务器数据的存储位置,一种是共享单一存储器形式。如图2所示,主服务器和备用服务器使用
同一个存储设备存储数据。这个共享存储设备可以是RAID(磁盘阵列),也可以是NAS(网络附属存储器)。在正常情况下主服务器将数据库放到共享存储器上,
当主服务发生故障时,备用服务器访问同样的设备,读写相同的数据。这种方式不存在数据滞后的问题。共享存储器的方案适合数据量大的场合,且通常会在共
享存储器上利用数据压缩卡来节省存储空间,例如通过HIFN的DR系列压缩卡结合de‐duplication技术实现全盘透明压缩。
图 2 共享单一存储器模式
但是共享存储器方式有其固有的缺点,使其不适合UTM的应用场合。第一,UTM数据量少,只是一些代理软件的配置数据;第二,UTM数据的同步性要求
不高,即使主服务器在配置信息刚刚更新完后马上出现故障,备用服务器使用旧的配置信息也能够继续提供服务;第三,共享存储器存在单点故障问题,即一旦存储器出现故障,系统将无法继续提供服务。
因此,HIFN实验室在实现UTM平台时,使用了另外一种双机热备模式,即软件同步数据方式。如图1所示,在正常情况下,主服务器拥有自己的网络地址(公网和私网地址),对外提供服务。而备用服务器关闭其网口(限指公网和私网网口),没有网络地址,系统上的服务进程没有启动,不对外提供服务。两台机器中间有一条单独的网络电缆,主服务器上的数据同步软件不时将主服务器的配置数据通过该网络电缆发送给备用服务器,使得两者的配置达到一致(同步)。一旦主服务器发生故障,它将放弃其网络地址,关闭网口,而备用服务器会启用网口,接管网络地址,启动服务进程,利用相同的配置继续向外提供服务。
3.技术分析
在软件同步的双机热备方案中,以下几个技术难点是需要妥善解决的: 1)数据同步
因为两台服务器并不使用共享存储器来存储数据,两者的数据可能会出现不一致的情况,所以需要数据同步。解决数据同步最简单直接的方法是,每间隔一段固定时间,例如5分钟,主服务器将自己的所有数据全部发送给备用服务器覆盖它原来旧有的数据。因为主服务器上的数据并不是经常更新的,这种方式带来大量无用的传输,不仅会加重CPU和网络的负荷,而且长时间不断地读写数据,
会缩短硬盘的寿命。所以在UTM平台上,数据同步只会在主服务器的配置发生更改后才进行,而且只传输更改的部分以降低开销。另外,考虑到传输过程一旦出现故障,备用机将会得到不完整的更新信息,应用这些不完整的更新信息将会破坏备用服务器配置的一致性,所以,数据同步还采用了事务的概念,一旦传输失败,该事务将被取消,配置会恢复到之前一致的状态。
2)数据传输安全
因为数据同步需要通过网络进行,而传输的往往是极其重要机密的数据文件,所以需要安全的通信机制来保证数据在同步时不会被窃取。UTM平台使用了SSH2安全连接机制来实现数据传输安全。SSH2采用AES、Twofish、DES、3DES、Blowfish和RC4等对称加密算法保护数据安全传输,使用数字签名算法(DSA)和Diffie‐Hellman(DH)算法代替RSA来完成对称密钥的交换,用消息证实代码(HMAC)来代替CRC保证数据的完整性。
3)主机存活性测试
要想知道主服务器是否出现故障而不能工作,最有效的办法是使用“心跳”(heartbeat)机制。主服务器上的Heartbeat程序周期性地发送状态消息,以表示本机的当前状态。备用服务器上的Heartbeat 程序会实时地监听主服务器发送的状态消息。当主服务器故障时,备用服务器在设定的时间间隔内没有收到主服务器的状态消息,就认为主服务器已经失效,它会自动接管主服务器的IP地址和服务程序,继续提供服务。主服务器从故障中恢复后,会重新发送状态消息,并要求接管IP地址和服务程序,备用服务器收到该消息后,会自动放弃IP地址和服务程序,以便主服务器接管。Heartbeat软件支持三种服务器间通信方式: 串口通信、PPP协议通信、UDP通信。
4)备用机服务接管时机
主服务器有可能会因忙碌等原因,出现“假死”现象,即长时间不发出Heartbeat信号。如果备用服务器一旦听不到主服务器的Heartbeat信号,就马上接管主服务器的工作,则可能导致“颠簸”现象,则主服务器和备用服务器频繁出现交接,造成服务中断。因此,备用服务器应该有一个缓冲窗口,当第一次超时没有收到Heartbeat信号时,即向主服务器发出一个紧急的呼唤信息,主服务器应该优先响应此信息回送一个Heartbeat。如果备用服务器第二个时间间隔内