首页 > 技术 > 应用案例 > 一个简单有效的高可用性解决方案

一个简单有效的高可用性解决方案

2001-08-27 00:00:00   作者:   来源:   评论:0  点击:


摘要:高可用性的实现需要在硬件、系统软件、中间件、应用软件上的整体考虑,以保证系统在任意环节失效的情况下,都能进行及时恢复,要求系统恢复时间极短,并且在系统恢复后保证数据的一致性。本文针对高可用性提出了一个完整的解决方案,该方案以讯泰信息技术有限公司的ezConnect™ (呼叫中心软件)为例,提出了一个能成功解决随机发生的单点失效情况下系统的高可用性方案。

关键词:高可用性、卷管理、冗余、High Availability、ezConnect™

1.前言

随着软件业的高速发展,高可用性越来越受到人们的重视。软件的高可用性是指软件的不间断运行能力,高可用性可能意味着每周7天、每天24小时的持续操作。这一方面要求软件所依赖的设备本身具有高可靠性,另一方面可以从软件的设计入手,实现一个高可用性的软件产品。本文将简要介绍高可用性技术,以及提供一个实现高可用性的解决方案。

2.高可用性技术

高可用性是指可持续的、具有一致性和完整性的数据访问。下面简单列举高可用性的几个方面。

  • 卷管理

卷管理对数据完整性起很重要的作用,它是操作系统的一部分。为了容错和性能的需要,卷管理系统把物理的磁盘系统划分为逻辑上的卷。从某种角度上说,它等同于物理上的磁盘。卷管理系统利用磁盘阵列来提供冗余或者增加带宽。卷管理能够在磁盘失效的时候保证数据的可用性。

  • 文件系统

当运行中的系统突然崩溃时,磁盘数据的状态是不确定的,文件有可能被改变或被删除。一些商家采用“写前记录”的方式来保持数据的一致性。这是一种元记录,元记录采用的数据结构是环形队列,这样可以自动清除,免去占用空间过大的危险。在每次数据改变前,该操作会被系统作为元操作记录到一个单独的卷中。恢复记录时,文件系统只需要检查所有被记录的元操作的一致性即可。这样比检查完整的文件系统的一致性要快很多。

  • 备份

在系统崩溃时,备份的数据就显得十分重要了。在线的数据备份成为备份技术的一项基本要求,通常会采用第一次全备份后定期做增量备份的方法。[1]

高可用性系统通过提高服务器可靠性、磁盘可靠性、网络可靠性、应用程序可靠性来达到高可用性的要求。具体实现可使用共享磁盘阵列来提高磁盘可靠性,使用冗余的网络来提高网络可靠性,使用合作的服务器来提高服务器的可靠性,通过应用程序的探测与有效恢复来提高应用程序的可靠性。[2]

以上提高高可用性的方法,实施起来都比较复杂,因此我们提出了一个比较简单的方案。采用一个监控程序(HA Service)来实现高可用性。

3.高可用性(High Availability, 以下简称HA)在ezConnect™中的实现

ezConnect™ 产品中的各个部件,采用分布式设计,即各个服务(Service)都是单独启动单独运行的,但是它们之间都有很密切的相互依赖关系,而且它们也在不断的通信。这样很有可能因为某个部件出现了一个很小的错误,至使整个系统瘫痪,而那个错误很有可能在系统重新启动后又恢复正常。

所以我们引入了HA Service,它是一个Daemon(守护)进程。在HA Service的启动过程中会顺序将系统中的各个部件启动起来。它会实时监控各部件的运行情况,定时向对方发送状态信息,并采用心搏(Heart Beat)方式监测状态。通过指定的时间间隙向对方发送信号,对方收到每个信号后都会发送确定信息。当HA Server收不到周期性的确认信息时,将进行一系列的探测措施以确定对方是否失效。

如果在运行的过程中有一个部件出现了错误,HA Service会及时报告错误原因和解决办法。如果这个部件的运行状态影响着其他部件的运行,那么整个系统会重新启动,若重启若干次还没有成功,HA Service将使系统不再运行,等待系统管理员退出整个系统。HA Service在运行的过程中,会随时记录系统的运行信息,这样如果系统突然瘫痪,系统管理员就可以根据日志文件查看系统瘫痪的原因。可配性也是HA Service的一大优点,大部分数据都可以在HA Service的配置文件中配置,这样大大提高了HA Service的可重用性。也就是说HA Service这个部件在应用于其他的相似软件中时,只需要改动相应的配置文件就可以了。

可以看得出HA Service在系统中占有重要的地位,所以要想保证整个系统的高可用性,就首先要保证HA Service的稳定性,在HA Service的实现过程中,做到尽可能的简单,而且使其不依赖其他任何部件。作为一个独立的部件运行,稳定性会提高很多。

4.结论

本文介绍了一个提高系统高可用性的解决方案,即HA监控软件。它监控系统主要组件的工作状况,并对各种失效进行探测和有效的恢复。提供了对应用程序、资源和整个节点的持续监控和故障监测能力。

参考文献

[1] 秦钢, 为数据“投保”—谈数据高可用性技术, 微电脑世界, 2001 01

[2] 刘心松, 高可用性系统结构的研究, 计算机应用, 1997 07

    讯泰信息技术提供 CTI论坛编辑

相关阅读:

分享到: 收藏