实时数据库系统双机热备机制设计与实现

  • 格式:pdf
  • 大小:411.04 KB
  • 文档页数:5

Computer Engineering andApplications计算机工程与应用 

实时数据库系统双机热备机制设计与实现 

杨晓芬,王永会,刘轶 

YANG Xiaofen,WANG Yonghui,LIU Yi 

北京航空航天大学计算机学院,北京100191 

School ofComputer Science and Techonology,Beihang University,Beijing 100191,China 

YANG Xiaofen,WANG Yonghui,LIU Yi.Design and implementation of dual—server hot-standby system for 

real—time database.Computer Engineering and Applications,2012,48(29):124-127. 

Abstract:Dual--server hot--standby can implement a good task--reliability,so it is used in power system broadly. 

This paper proposes a new dual—server hot-standby system technology for real—time database,implements modular 

hardware based on technologies including testing and monitoring the state of system and resources,state synchro— 

nous,network communication,mechanism of switching over and data mirror service.Main control modular moni- 

tors and arbitrates the state of dual-server,and network communication modular monitors whether server breaks 

down.Switch over modular switches whenever the server breaks down,and configuration modular sets information 

about switch over.It ensures that the system runs in a good task-reliability. 

Key words:dual—server hot—standby;good task—reliability;power system;data mirror 

摘要:双机热备计算机系统可实现高任务可靠性,广泛应用于电力系统。针对实时数据库系统提出了一种 

新颖的双机热备设计技术,基于系统及资源状态检测与监控、双机状态一致性同步、网络通信协议、主备切换 

机制、数据镜像服务等关键技术实现了模块设计。主控模块对主备服务器工作状态进行仲裁与检测,网络通 

信模块检测服务器故障,切换控制模块实时响应服务器故障进行切换,配置模块对双机信息进行设置,保证了 

系统高可靠性持续运行。 

关键词:双机热备;高可靠性;电力系统;数据镜像 

文章编号:1002—8331(2012)29—0124.04 文献标识码:A 中图分类号:TP319 

l概述 

双机热备是一种高可用的技术方案n ,将中心服 

务器安装成互为备份的两台服务器,当运行着的服 

务器出现故障无法启动时,另一台自动启动以减少 

损失的技术。双机热备技术 一直是研究的热点。 

但是面向实时数据库系统(RTDB)的双机热备还不 

是很完善。比如在像面向电力的实时数据库系统 

中,要求生产过程响应速度在秒级,数据存档速度 

50 000事件/j眇,存档数据回取事务吞吐量50 000点 眇 

的情况下,会产生大量数据并且要求服务器必须不 

停运转。为防止服务器故障造成系统服务中断,在 

服务器硬件配置上,除了采用磁盘阵列容错,集群措 

施外,双机热备 是性价比比较高的一种解决方案。 现在已经存在一些通用的双机热备软件,比如 

Microsoft clustering,LifeKeeper ,PlusWell等。但 

是,这些软件在实时数据库系统方面的应用还是有 

些欠缺:一方面在技术上,通用的双机热备软件在实 

时数据库系统中存在着诸多问题,无法满足实时性 

系统的需要,比如切换时间长、占用资源多等;另一 

方面在部署和使用上,需要专门购买软件,专门进行 

安装调试,并且对硬软件环境有严格的限制,例如, 

Microsoft clustering 要求服务器使用windows ad— 

vanced server版本,并且必须使用双机共享磁盘阵 

列;Life Keeper还需要进行人员培训等问题。 

本文针对实时数据库系统(RTDB)提出了一种 

新颖的双机热备系统设计方案,在此基础上,实现了 

作者简介:杨晓芬,女,硕士研究生,主要研究领域为系统结构;刘轶,男,博士生导师,教授。E・mail:yangxiaofen1987@163.corn 收稿日期:2011-09—27 修回日期:2011-11—14 CNKI出版H期:2012—01—16 

DOI:10.37780.issn.1002—8331.2012.29.025 http://www.cnki.net/kcms/detail/11.2127.TP.20120116.0926.011.html

 杨晓芬,王永会,刘轶:实时数据库系统双机热备机制设计与实现 

一些关键技术,例如系统及资源状态检测及监控方 

法、可靠的主备切换机制、双机状态一致性同步、数 

据镜像等。并且完成了实用的系统,该系统在主/备 

服务器切换后,对外提供RTDB服务的IP地址不变, 

由于RTDB应用均基于UDP协议实现,这样可以做 

到服务器切换对上层应用透明,应用程序只会在网 

络通信时有短暂的停顿,但无须重新启动;另一方 

面,切换时直接对RTDB服务进行停止/启动,与通用 

的双机热备机制相比,切换延迟大大缩短。同时该 

系统实现简单,配置容易,不需要硬件要求和人员培训。 

本文先给出双机热备的系统结构,然后详细介 

绍了各个模块并且指出了技术的重点和难点,最后 

对该系统进行了实验分析。 

2双机热备系统设计 

2.1工作原理及系统配置 

双机热备包含两台实时数据库服务器,主服务 

器在对外提供服务的同时,通过通信通道(如网络) 

保证其与备用服务器之间的数据和状态信息保持一 

致;主备服务器之间定时传输“心跳”信息以此作为 

对方工作正常的标志,当备用服务器超过限定时间 

未收到主服务器的心跳信息时,认为主服务器发生 

故障,并启动切换机制;在切换机制启动后,备用服 

务器取代主服务器对外提供服务,客户端均与新的 

主服务器连接;发生故障的主服务器修复后,自动作 

为备用服务器运行。 

双机热备系统的两种配置方式如图1所示,一种 

为共享磁盘阵列方式,主备服务器共享专用磁盘阵 

列,服务器的本地硬盘只存储操作系统及相关配置 

信息,而RTDB的存档数据、配置信息均存于磁盘阵 

列中。第二种为独立配置方式。操作系统及实时数 

实 蔷 器 

共享磁盘阵列 (a)共享磁盘配置方式 

一 

实时数据库服务器 实时数据库服务器 (主) (备) (b)分散配置方式 

图1双机热备配置方式 据库系统均存储在本地磁盘或单独挂载在磁盘阵列 

中。本文实现了分散配置方式的双机热备。 

2.2双机热备组成结构 

为满足RTDB的实时l生特点,减少服务器故障时 

的数据损失,提出的双机热备设计原则如下: 

双机热备系统包括六个模块:主控模块作为热 

备系统的主控线程,进行主备服务器工作状态的仲 

裁与检测,并通过调用切换控制等其他模块实现主 

备服务器的状态切换、数据一致性维护等功能;切换 

控制模块负责完成主备服务器状态的切换;数据同 

步模块保证了主备服务器之间存档数据文件及系统 

配置参数的一致性;网络通信模块为状态检测、切换 

控制和数据同步等模块提供网络传输服务;数据镜 

像模块,该模块实现对主备服务器数据的实时备份; 

管理配置模块实时监控双机的运行状态并进行一些 

控制。 

图2双机热备计算机系统组成结构图 

3模块设计 

3.1主控模块 

主控模块包含两个线程:一个主控线程Thread. 

Main和一个通信线程ThreadComm。ThreadMain进 

行角色仲裁并调用其他模块进行状态切换、数据一 

致性维护等工作;ThreadComm接收来自对方服务器 

及管理配置的报文,将其交给主控线程处理。主控 

模块工作流程如图3。

 Computer Engineering andApplications计算机工程与应用 

图3主控模块流程图 

对于主备服务器,有四种工作状态,Active,Standby、 Inactive和Standalone。一台新安装运行RTDB系统 

的服务器处于Standalone状态,由管理员进行参数设 

置后将其加入到某一双机系统中。处于双机热备系 

统中正常工作的服务器或为主服务器,或为备用服 务器,其工作状态为Active/Standby。当管理员进行 

手工切换时,主服务器将先切换至临时状态Inactive, 

以让出主服务器IP地址供备用服务器使用,随后原 

主服务器将从Inactive切换至standbv状态。 

主备角色协商及仲裁是主控模块的难点。仲裁发 

生在两种情况下:双机热备服务启动时需要与对方就 

主备角色协商并仲裁;备用服务器检测到主服务器故 障,进行“备 主”切换操作之前,再次进行角色仲裁以 确保不出现误切换。仲裁分为慢速仲裁和快速仲裁, 

两者采用相同的仲裁策略和仲裁流程,区别在于仲 

裁等待时间长短,系统启动时适合使用慢速仲裁,以 

确保不会由于两台服务器开机顺序和启动延迟大小 

导致主/备角色误切换;当系统发生故障进行切换时, 

使用快速仲裁,以保证对应用的服务中断时间最短。 在双机热备服务启动后,首先要与对方进行角 

色协商与仲裁,即向对方发送自己的主备角色,对方 

结合其自身角色配置进行仲裁,并将结果返回,之后 双方按照仲裁的主备角色工作;在仲裁请求超时无 

应答的情况下,将按照己方配置角色启动运行。此 

即为慢速仲裁。角色仲裁策略如表1所示。 

表1 状态协商与仲裁需考虑的情形 

情形 仲裁策略 两台服务器分别配置为主备 按配置角色正常工作 均配置为主 器优RTD先B统启动较早的 

两台服务器均配置为备 ’ 凳间相等 P 在启动时经过主/备角色协商和仲裁后,服务器 

以最终确定的角色运行。在运行过程中,当特定事 

件发生时,需进行主.备角色的切换即快速仲裁。 

总体来讲,导致主.备角色切换的事件分为三类: 

主服务器故障或关机;单机运行状态下另一台服务 

器加入;管理员手工控制操作。细化如下: 

服务器进行“备 主”切换的事件:(1)超过设定 

时间未收到主服务器的心跳信息;(2)对方被设置为 

备用服务器,收到对方发来“备机角色报文”,进行角