随着以数据库为核心的计算机管理系统的普及,企业对计算机系统的依赖程度也日渐增加,数据存储技术的可靠和安全变得越来越重要,双机热备系统就是根据用户需求保证数据库安全的、高可靠性的解决方案。荆门市掇刀区在电子政务平台的建设和完善中,采用基于DM 数据库服务的双机热备解决方案,保证了数据的安全。本文就荆门市掇刀区电子政务系统中实现双机热备系统的工作原理、技术方案及成果经验等进行探讨。
1 系统需求
根据应用要求,数据库双机热备系统配置为:
a.系统基于Red flag Linux DC 5.0平台,数据库平台采用DM 5.0.6。
b.服务器双机热备为单工模式(Active/Stby)。一台服务器运行DM数据库系统,另一台服务器为备机,两台机器相互监测对方的运行状况。当一台主机宕机时,另一台主机立即接管其工作,保证工作不间断。
c.数据集中在磁盘阵列柜,磁盘柜使用RAID5技术。
d.双机容错软件选用DataWare双机容错系统,DataWare是一套提供防止业务主机因不可避免的意外性或计划性宕机问题的高可用性软件。
e.服务器与客户端遵循TCP/IP协议,对用户而言,切换是透明的。
2 工作原理
DataWare软件同时安装在两台主机上,监视系统的状态,协调两台主机的工作,维护系统的可用性。它能侦测应用级系统软件、硬件发生的故障,及时进行错误隔绝、恢复,以最低成本提供用户几乎不停顿的计算机作业环境。在正常的运作情形之下,主机之间透过冗余侦测机制互相侦测,当任一主机有错误产生时,DataWare提供严谨的判断与分析,确认主机出错之后,才完全启动备援接管动作。容错软件在服务器节点间保持着间歇的通信信号,也叫做心跳信号,是错误检测的一个机制。
即通过每一个通信路径,在两个对等系统之间进行周期性的握手,如果连续没有收到的心跳信号到了一定的数目,DataWare容错软件就把这条路径标示为失效(红色)。一般情况下DataWare容错软件为了避免不必 要的失效切换,通常建立两条独立的心跳检测径,即至少使用两种心跳检测方法:
(1)在共享磁盘阵列上开辟一个裸设备区(>10M),两台机器上运行的DataWare软件负责按照一定时间间隙向这个共享的裸设备区写入自身的运行状态。并读取对方机器的运行状态。以达到相互检测的目的。
(2) TCP/IP Socket Private Net,即两台服务器的网卡通过LAN建立一条通讯路径。如果共享磁盘阵列裸设备区检测模式失效,服务器仍然可以用公用网侦测对方服务器的可用性。如果对方服务 器仍然可用,则不触发接管动作;如果对方服务器不可用,则立即接管动作。
DataWare接管动作包括:
(1)文件系统(File Systern);
(2)数据库(Database)
(3)网络虚拟地址(Virtual? IP Address);
DataWare容错备援运作过程:
a.自动侦测(Auto?Detect)阶段。由主机上的软件通过冗余侦测机制,经由复杂的监听程序、逻辑判断,来相互侦测对方运行的情况。
b.自动切换(Auto?Switch)阶段。某一主机如果确认对方故障,则正常主机除继续进行原来的任务,还将依据各种容错备援模式接管预先设定的备援作业程序,并进行后续的数据库服务。
c.自动恢复(Auto?Recovery)阶段。在正常主机代替故障主机工作后,故障主机可离线进行修复工作。在故障主机修复后,透过冗余通讯检测机制与原正常主机连接,切换回修复完成的主机上。整个回复过程需要技术人员利用DataWare软件提供的命令进行切换。
双机热备系统选用DataWare的单工工作模式,系统结构如图1所示:
图1中:双服务器通过一条TCP/IP网络线连接到LAN;双服务器各自通过一条SCSI电缆线与RAID磁盘阵列相联;一台服务器作为主机运行DM 数据库服务器,另一台作为备机。当服务器1故障后,服务器2自动接管服务器1运行,这时,服务器1的作业将在服务器2上自动运行。当服务器1修复后,服务器2将把1的作业手动交还服务器1。
3 技术实施方案
双机热备系统中,两台主机的硬件配置可以不同,但操作系统、应用软件、容错软件应相对应,具体实现过程如下:
a.对磁盘阵列柜做RAID5,分区后分别挂在不同的主机上。这些措 施,可克服系统硬件的故障。
b.安装操作系统Linux、DM数据库。操作系统和DM 数据库的系统文件安装在主机各自的硬盘上,DM 数据库的数据文件存放在磁盘阵列柜上,必须在两台主机上保存相同的DM数据库的初始化文件。
c.安装DataWare容错软件。DataWare软件必须在两台主机上各装一套,每台主机上有公网上的固定地址和由双机软件控制的飘移地址(虚拟IP 地址)。在客户端的应用中,应用程序要使用飘移地址,该地址和系统的应用实例,即DM数据库应用实例是锁定的,即当主机1因故障荡机时,它的数据库应用就由主机2接管,同时它的飘移地址也被主机2接管,对用户而言,这是不变的。
4 经验及成果
a.需要分别在两台服务器上分别安装DM数据库管理系统,安装完毕后会提示用户创建数据库,所创建的数据文件应该存放在共享磁盘阵列上相同的区域,在第二次创建数据库之前,需要将上一次所创建的数据库文件删除,而不是采用覆盖数据文件的方式,否则,DM 数据库系统在启动的过程中会报告数据文件不一致,从而导致数据库系统不能够正常启动。
b.可在任一台主机上操作磁盘陈列柜的分区,设置之后分别挂在不同的主机上。两台主机不能同时mount同一磁盘柜上的分区,否则系统将死机。
5 测试用例及结果