Chinaunix首页 | 论坛 | 博客
  • 博客访问: 247459
  • 博文数量: 52
  • 博客积分: 2263
  • 博客等级: 大尉
  • 技术积分: 695
  • 用 户 组: 普通用户
  • 注册时间: 2008-07-28 12:00
文章分类

全部博文(52)

文章存档

2010年(2)

2009年(20)

2008年(30)

分类:

2008-09-28 16:44:39

技术背景:有的关键服务需要7×24小时运行,如:银行,电信,因此就有了双机热备的需求方案

,概括地说,就是使用两台服务器,通过即时备份数据的方式,实现系统的高可用性。其基本原理是这两台服务器,一台处于active状态,称为主服务器,一台处于standby状态,称为备用服务器。在正常情况下,由处于active状态的主服务器提供服务,当主服务器出现故障时,处于standby状态的备用服务器被激活,接替主服务器继续提供服务。而整个过程无需人工干预,在短时间内自动完成服务接管。

软件同步数据方式:

    在正常情况下,主服务器拥有自己的网络地址(公网和私网地址),对外提供服务。而备用服务器关闭其网口(限指公网和私网网口),没有网络地址,系统上的服务进程没有启动,不对外提供服务。两台机器中间有一条单独的网络电缆,主服务器上的数据同步软件不时将主服务器的配置数据通过该网络电缆发送给备用服务器,使得两者的配置达到一致(同步)。一旦主服务器发生故障,它将放弃其网络地址,关闭网口,而备用服务器会启用网口,接管网络地址,启动服务进程,利用相同的配置继续向外提供服务。

在软件同步的双机热备方案中,以下几个技术难点是需要妥善解决的:

(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。如果备用服务器第二个时间间隔内还没有收到Heartbeat,才进行服务接管。另外,为了尽可能不激活备用服务器,主服务器在发现某些服务不正常时应尝试自己恢复这些服务,只有当恢复无效时才停止发送Heartbeat来激活备用服务器。

 

阅读(1011) | 评论(0) | 转发(0) |
0

上一篇:集群概念

下一篇:apache+tomcat+jboss配置文档

给主人留下些什么吧!~~