计算机应用论文煤矿测控类系统双机热备软件的设计
所属栏目:计算机应用论文
发布时间:2014-02-25 15:11:22 更新时间:2014-02-25 15:28:21
随着基于工业以太网的测控技术不断发展,煤炭监测监控类系统正在向网络化、智能化方面加速发展,在此过程中,安装在煤矿地面的主控计算机作为整体系统的指挥中心,是系统稳定运行的关键环节,需要使用双机热备功能,来达到一台机器发生故障时另一台机器自动接手业务并负责运行的目的,即主机通过网络采集设备层数据,一旦主机发生异常,备机将在极短的时间内代替主机,进行实时监测并保存历史数据;当主机重新启动,备机会自动将主机丢失的历史数据拷贝给主机[1]。
【摘要】针对现有煤矿测控类系统主控双机热备方案存在的定制性差、成本高和单点故障等问题,提出了一种以灵活性、低成本和可靠性为设计原则的双机热备软件设计方案,重点阐述了煤矿测控类系统双机热备软件整体架构、心跳检测模块、资源管理模块和数据同步模块的设计和实现方法。
【关键词】双机热备,测控,心跳检测,数据同步
1.引言
煤矿企业的信息化建设实践证明:基于共享存储设备的简单双机热备方案有很大的局限性,除了可能会形成新的单点故障点(磁盘阵列柜设备)外,硬件成本较高和软件运行环境要求较高等都是这种解决方案在实际使用中无法避免的问题,不太符合大部分煤矿生产环境的要求。另外,商业化的一些纯软件双机热备方案数据同步时间较长,无法满足测控类系统实时数据存储的要求。因此,如何构建一个符合煤矿企业环境使用的双机热备平台成为一个急需解决的问题。
笔者从方案的灵活性、低成本和可靠性方面考虑,设计了基于专用数据同步技术的双机热备纯软件解决方案。本文将着重阐述该解决方案的整体架构、心跳信号、数据同步等技术的原理与实现方法。
2.煤矿测控类系统双机热备软件整体架构
在计算机的硬件配置方面,本文提出每台计算机提供2个网卡,一个是心跳专用网卡,使用网线直接连接,用来提供专用的心跳信号传输通道,保证心跳信号发送快速和稳定;另一个是业务网卡,连接业务网络的交换机,用来为监测监控业务数据提供传输通道。同时,业务网卡也可以作为备用的心跳网卡。
双机热备软件分为心跳检测模块、资源管理模块[2]和数据同步模块,其中心跳检测模块用于主(A)机、备(B)机互相取得对方的存活状态信息和其他必要信息,资源管理模块用于监测和控制纳入双机热备管辖的业务服务、进程等资源,数据同步模块采用了为煤矿测控类系统专门开发的专用数据同步组件,如图1所示。
双机热备软件作为测控类系统软件的一个重要的组成部分,设计使用接口的方式发布功能,所有相关的配置信息存放在双机热备软件配置文件中。双机热备软件对外提供主机、热备的状态信号,提供主机、热备状态的切换接口,但不负责对所监视的资源进行干预,所有的切换、清理、启停等动作由业务软件自行完成,双机热备软件只提供状态判别结果作为业务软件后续执行动作的依据,这是本文提出的方案与其他方案之间的主要区别。这种设计可以提供极大的灵活性和软件兼容性,给不同的业务软件提供不同的切换策略定制空间。
3.煤矿测控类系统双机热备软件心跳检测模块
煤矿测控类系统对稳定性要求极高,而心跳信号在两台计算机之间必须持续传输,因此在心跳信号的传输渠道上设计了冗余的方式,即:
(1)专用心跳网络渠道
心跳网络是心跳信号的专用网段,只能传输双机热备心跳信息,以保证及时性和可靠性;同时,该网络应设置为物理独立的一个网络,不与办公网或其他网络进行连接,因此本文设计为使用网线直连两台计算机。
心跳信号使用UDP方式进行传输,主机、热备分别启动监听服务,同时分别启动UDP客户端把信号信息发送给对方。监听端口默认为11006,可以在配置文件中设定。
(2)业务网络渠道
业务网络中平时传输的是业务信息,但也可以作为心跳信号的备用网络使用,当心跳网络出现问题时,可以使用业务网络进行对方存活状态的判断。心跳信号传输方法不变,监听端口默认为11007,也可以在配置文件中设定。
在系统正常工作情况下,心跳交互信息由“服务正常吗”查询信息和对方计算机的“服务正常”应答信息构成[3]。而且心跳信号传输的内容必须精简,以达到快速响应的目的。同时为了保证不被特殊情况下出现的杂乱信息干扰,需要使用一定格式的协议约束心跳数据,具体设计以一个常规心跳数据帧为例进行说明:
举例:0xD10xE20x000x020x000x010x8A0x4C,含义解释如下:
起始帧头:选取了2个字节的特定数据0xD1和0xE2来代表心跳帧的起始;
功能编号:0x00代表常规心跳命令;
数据单元长度:0x02代表后续的数据单元字节数;
数据单元:0x00代表发送者当前为备机,0x01代表发送者某项资源为正常状态;
CRC校验:0x8A0x4C代表从起始帧头到数据单元最后一个字节进行16位CRC校验计算的结果。
4.煤矿测控类系统双机热备软件资源管理模块
本文中的资源管理不仅仅提供了如公用IP地址资源的分配管理,还把“资源”的范围扩大到所有双机切换策略中可作为判断依据的资源对象,目前有如下几种:
(1)对方心跳专用网心跳信号
即通过心跳专用网络发来的对方的常规心跳信号,针对信号本身是否发来进行监视,如果正常发来常规心跳信号,则认为对方存活,如果超过一定时间没有收到此信号,则认为对方可能故障。
(2)对方业务网络心跳信号
即通过业务网络发来的对方的常规心跳信号,同样针对信号本身是否发来进行监视;与心跳专用网心跳信号不同的是,业务网络心跳信号不是一直发送的,当本机收不到对方发来的心跳专用网信号时,主动通过业务网发送常规心跳信号(心跳专用网信号仍然继续发送)。如果对方业务网络心跳信号没有回送常规心跳信号,则认为对方可能已故障或者所有网络均中断。(3)WindowsService类型的业务服务
所有以WindowsService形式存在的业务服务均可加入受监视的资源列表,可以根据服务的各种状态和持续时间调整切换策略,策略设定在双机热备服务的配置文件中。
服务状态有:已停止、正在停止、正在运行、正在启动。一般建议已停止、正在停止作为资源故障状态,正在运行作为资源正常状态,正在启动作为资源未知状态。
(4)Windows进程资源
普通的exe程序可以作为Windows进程资源加入受监视资源列表,可以根据进程的各种状态和持续时间调整切换策略。
进程状态有:存在、不存在。一般建议不存在作为资源故障状态,存在作为资源正常状态。
(5)定制业务资源
不同的业务软件可能有不同的特殊资源需要监视,定制业务资源可以由业务软件开发人员进行配置。配置时需要设定资源编号和资源名称,资源编号用来唯一标识该资源,资源名称用于在日志、接口输出等环节描述该资源。定制业务资源的状态不由双机热备软件判断,而是由业务软件通过接口写入双机热备服务,然后参与双机切换策略的执行。
5.煤矿测控类系统双机热备软件数据同步模块
在双机热备软件的设计中,数据同步是一个关键问题。本文采用的数据同步方式为:主机和备机两个计算机上的数据库同时工作,数据分别存放在两台计算机上[4]。互相同步的数据有:I/O实时数据、内存实时数据、报警数据、用户口令数据等[5]。同步方法主要是利用数据库操作的监视和分析技术,将测控类系统业务软件数据库的增删改等操作信息以事务为单位,通过异步的方式,实时地传输到另一台计算机上,并按原来的顺序再执行一遍这些操作,这样就可以达到主机数据库和备机数据库内的数据保持一致的目的。
6.结语
本文提出的双机热备软件在煤矿实际应用中取得了较好的使用效果,特别是给予了测控业务软件开发人员极大的定制灵活性,可以把煤矿测控类系统软件中的一些特殊要求很容易的加入到双机热备切换策略中,例如串口通讯是否正常等这类定制的双机监管资源。煤矿测控类系统软件运行环境复杂,对稳定性要求高,双机热备软件也在不断的适应新情况,不断改进设计方案,为煤矿用户提供更加稳定可靠的测控系统软件。
参考文献
[1]张金豪.ES210模块在煤矿瓦斯监控系统双机热备中的应用[J].矿业安全与环保,2011,38(6):63-66.
[2]倪文玺,张亚平.工控计算机双机镜像软件设计[J].现代电子技术,2011,34(5):158-160.
[3]谢长生,胡庆平,谭志虎.Heartbeat-Gear:一种新型的实时心跳监测技术[J].计算机工程与科学,2004,26(5):62-65.
[4]李建荣,郝金库,张芝艳.基于异构数据库的双机热备策略的设计与实现[J].天津师范大学学报(自然科学版),2012,32(3):51-59.
[5]张金仙,郝英立,张利,等.工控组态软件双机热备的研究与实现[J].计算机测量与控制,2005,13(11):1292-1295.
月期刊平台服务过的文章录用时间为1-3个月,依据20年经验,经月期刊专家预审通过后的文章,投稿通过率100%以上!