基于B/S结构的高可靠性双机冗余架构设计

2017-03-16 01:34李志宏裴承芝王良靖李静
关键词:双机后台组态

李志宏,裴承芝,王良,靖李静

(武汉理工大学 自动化学院,湖北 武汉 430070)

基于B/S结构的高可靠性双机冗余架构设计

李志宏,裴承芝,王良,靖李静

(武汉理工大学 自动化学院,湖北 武汉 430070)

针对基于B/S结构的实时组态监控系统可靠性问题,提出一种新型双机冗余系统架构,在传统的双机冗余基础上,提出了被动式心跳检测方案,采用后台独立软件管理进程实现主备机切换控制,提高了实时组态监控系统的安全性和可靠性,延长了监控系统的非故障时间。

B/S;实时组态监控系统;双机冗余;心跳监测;安全性;可靠性

在工业控制领域,随着控制技术的发展,控制系统日渐庞大, 对其安全性和可靠性提出了新的挑战,在电信、证券、金融、制造、军工等领域系统故障可能会导致不可预见的灾难性后果。基于B/S(browser/server)结构的组态监控系统,对可靠性要求较高,需要实时现场采集设备数据和控制命令,保证系统不间断地运行。双机热备的双机冗余系统是部署两台完全相同的计算机,设置主从关系,并让主机和从机都处于运行状态。目前,国内外学者对系统冗余进行了一些研究,如文献[1]介绍双机冗余的基本结构,但未考虑数据读写控制。互为双机冗余的设备之间采用Heartbeat实时心跳监测技术[2-4]进行心跳监测,所谓心跳监测就是定时给被监测对象发送信号来判断其是否正常运行。文献[3]提出了动态心跳检测方案,但是未考虑需要检测多个进程时的效率问题。目前主流的双机冗余架构大多是针对特定的系统,有硬件软件等环境要求,跨平台性能不好,系统冗余心跳检测会增加系统负担,系统可靠性提高不明显。笔者根据实际监控系统设计要求,提出了一种新型双机冗余架构来改善数据读写安全性和被动的心跳监测方案,在不增加系统负担的情况下大大提高系统可靠性。

1 系统冗余架构设计

1.1组态监控系统架构

在工业控制领域,监控界面多采用组态软件进行组态界面的绘制,将组态好的监控工程放在服务器上运行,浏览器通过访问服务器来显示组态的监控画面。笔者研究的组态监控系统是B/S结构,组成架构如图1所示,主要包括:①组态监控浏览器,显示监控画面;②后台服务程序,将组态好的信息发送到浏览器端进行显示,响应浏览器端的控制信号,并将数据写入消息队列来控制设备;③共享内存和消息队列,实现服务器程序和IO通信守护进程之间的高速通信;④IO通信守护进程,采集IO的数据写入共享内存,并根据后台服务程序的信息控制IO设备。组态监控系统运行时可能产生的故障有:①组态监控浏览器故障;②后台服务程序故障;③IO通信守护进程故障。

图1 监控系统架构图

1.2双机冗余架构设计

不同的控制系统,采用的冗余控制方案也多种多样,目前应用较多的高效的冗余控制策略是双机热备[5-8],笔者采用独立进程实现系统冗余心跳监测,降低监控系统负担。双机冗余结构的心跳检测采用TCP/IP进行心跳信号通信。在工业控制中,通信设备都会配置双网卡,网卡连接到不同的路由器上实现网络通信冗余,网络冗余结构如图2所示。

图2 网络冗余结构图

笔者研究的组态监控系统采用两台配置完全相同的电脑作为主机和备用机,在主机、备用机、主设备、备用设备上都安装两块网卡,每个机器上的网卡分别连在同一个路由上,保证主机、备用机、主设备、备用设备都有两个相对独立的网段,当一路路由器所在的网络出现故障,主机、设备之间通过另一路路由网络进行通信。

(1)传统方法的双机冗余结构。主机上包含浏览器、后台服务程序、IO通信守护进程。传统双机冗余结构如图3所示,心跳监测任务放在浏览器、服务器、IO通信进程中,浏览器、后台服务程序、IO通信守护进程进行主动式的心跳监测,监测对方状态。同时后台服务程序和IO通信进程需要进行共享内存通信,主机上的主机服务器程序或者IO通信进程出现故障时需要全部切换启用备用机的服务器程序和IO通信进程。当主机的IO通信进程正在读写IO设备时,备用机上的IO通信进程不执行写IO设备,否则出现重复写IO设备,产生大量的坏数据。这种结构存在问题是主机和备用机上的服务器程序状态不一致。

(2)被动心跳监测。传统冗余结构需要主机和备用机上的浏览器、服务程序、IO通信进程之间相互进行心跳监测,采用双网卡使得主机和备用机上的浏览器、服务器需要相互进行两路心跳监测,这样主机和备用机上的浏览器、服务器、IO通信进程的心跳监测线程共有12路。在主机、备用机上服务程序心跳监测时,还要获取本机IO通信进程状态,同时IO通信进程在进行心跳监测时还要获取本机服务程序状态。当监测对到对方的服务程序故障时还要发控制信号修改对方的IO

图3 传统双机冗余结构图

通信进程状态,否则在主机和备用机的IO通信进程同时写IO设备时会出现坏数据,甚至产生系统故障,故传统双机冗余结构逻辑复杂,已经不能满足冗余需要达到的可靠性要求。

针对上述缺陷,笔者提出一种被动的心跳检测方案,将心跳检测任务独立出来,启动独立的应用管理程序,减少主机上浏览器、服务器、IO通信进程的负担,同时还能有效保证备用机和主机上的数据同步。系统组成结构图如图4所示。基于被动心跳监测的系统冗余设计,采用独立后台进程去监管主机和备用机上的浏览器、服务器、IO通信进程的冗余切换。由图4可知,在主机和备用机上分别开启一个心跳监测管理后台进程,即主机和备用机上的后台管理进程也形成冗余,当主机上的后台管理进程故障时,由备用机上的后台管理进程来接管主机和备用机上的心跳监测任务。当主机上的心跳监测管理进程工作时,主机上心跳监测进程根据心跳监测算法动态对主机、备用机上的浏览器、服务器、IO通信进程进行6路心跳监测。

图4 被动心跳监测方案系统组成结构图

(3)心跳监测数据管理。心跳监测实时数据管理控制结构图如图5所示。由图5可知,当主机上的浏览器、服务器、IO通讯进程工作正常时,备用机上的服务器处于热备状态。为了实现主机和备用机服务器上的实时数据同步,在主机进行数据读写时备用机上的IO通信进程同时处于工作状态,但是只是采集实时数据,不对IO设备进行写操作。冗余系统始终保证只有一个数据采集进程在写IO设备,保证IO设备数据读写的安全性,从结构上排除了坏数据来源。

图5 心跳监测实时数据管理控制结构图

后台进程将浏览器发过来的实时控制信号数据发送给主机正在运行的服务器进行处理,也将数据发送给备用机的服务器,这样主机与备用机的服务器上的信息就能保持数据一致。

2 冗余后台监测进程软件设计

组态监控系统设置冗余功能,在主机和备用机开启运行相同的监控服务器,主机和备用机启动后台监控管理程序。主机上的后台监控程序根据设定的心跳检测算法对主机和备用机上的服务器、浏览器、IO通信进程进行心跳检测,主机后台管理进程流程图如图6所示。

图6 主机后台管理进程流程图

(1)主机和备用机都正常运行时,主机上的后台进程接受来自服务器上的数据,同时将浏览器上的请求数据分发到主机和备用机的服务器上,后台监控管理进程在对IO通信进程管理上始终保证只有一路通信进程在写IO设备。

(2)检测到主机上的浏览器、服务器、IO通信进程故障心跳检测失败时,首先判断故障原因:浏览器故障、服务器故障或IO通信进程故障;然后根据设计要求切换为备用机上的浏览器,或者为备用机上的服务器和IO通信进程,让监控系统在最短时间内回到正常运行状态;同时监测主机是否恢复正常;最后在主机恢复正常后再切回主机并使用主机上的服务器、数据采集进程和浏览器。

3 可靠性分析

双机冗余系统的可靠性是评判系统设计是否成功的有效标准,可靠性R的表达式[9-10]为:

R=1- (1-R1)(1-R2)

(1)

其中,R1,R2分别为主机和备用机的可靠性,且有R1=R2=exp(-λt)[11],λ为单位时间内发生故障次数,即失效率。主机和备用机上浏览器、服务器、IO设备采集进程的失效率分别为(λ11,λ12,λ13),(λ21,λ22,λ23)。由于主机和备用机上的浏览器、服务器、IO设备采集进程相同,故有:λ1=λ11=λ21,λ2=λ12=λ22,λ3=λ13=λ23。主机和备用机上浏览器、服务器、IO通信进程的可靠性,分别取为(R11,R12,R13),(R21,R22,R23),且有R11=R21,R12=R22,R13=R23。

针对该监控系统,采用笔者设计的结构,主机上的服务器或IO通讯进程任意一个故障则启用主备机的切换,浏览器故障时只是将备用机上的浏览器连到主机,并不切换主备机,因此根据笔者设计的冗余方案则有:

(2)

假定R11=R12=R13=R21=R22=R23,则笔者控制策略下系统的可靠性为:

R1(t)=1-(1-R11)4

(3)

在主机上通常λ1、λ2、λ3是效率相近,笔者近似取λt=λ1≈λ2≈λ3,则式(3)可化简为:

R1(t)=1-(1-exp(-λtt))4

(4)

采用传统的双机冗余策略,当主机上的浏览器、服务器、IO通信进程任意一个故障,则认为系统故障,并切换启用备用机,传统控制策略有:

(5)

假定R11=R12=R13=R21=R22=R23,则传统控制策略下系统的可靠性为:

R2(t)=1-(1-R11)2

(6)

化简得到:

R2(t)=1-(1-exp(-λtt))2

(7)

采用Matlab进行可靠性仿真,设定参数λt= 0.000 5,仿真时间设为10 000 h,仿真结果如图7所示。由图7可知,在运行相同时间内,笔者设计的冗余方案比传统方案的可靠性有明显提高。

图7 可靠性比较

4 结论

笔者根据大型实时组态监控系统设计了一种新型结构的双机冗余系统,该冗余结构采用被动心跳监测和切换策略,减少监控系统本身的负担,同时在控制读写的IO通信进程,保证读写设备的安全性,达到实时数据同步。在故障发生时,根据判断进行切换启动备用设备,在监控系统切换时,监控画面和故障前保持一致,实现无扰切换,并且可靠性高。

[1] 王建虹.一种高可靠性双机冗余系统的设计[J].国外电子测量技术,2008,27(4):42-44.

[2] WANG Z J, LI X.A new real-time heartbeat failure detector[C]∥2008 4th International Conference on Wireless Communications, Networking and Mobile Computing.[S.l.]: IEEE, 2008:1-3.

[3] 谢长生,胡庆平,谭志虎.Heartbeat-Gear:一种新型的实时心跳监测技术[J].计算机工程与科学,2004,26(5):62-65.

[4] 刘清华,杨桂芹.基于Heartbeat+MySQL的双机热备实现与改进[J].自动化仪器仪表,2015(1):159-163.

[5] 肖东晔.信息一体化系统双机热备方案分析[J].内蒙古电力技术,2015,33(s1):78-81.

[6] JIN T D,XIE W, LIAO H T, et al. System availability under redundancy sharing of standby components[C]∥2015 Annual Reliability and Maintainability Symposium (RAMS).[S.l.]: IEEE, 2015:1-6.

[7] CHAMBARI A,NAJAFI A A,RAHMATI S H A,et al.An efficient simulated annealing algorithm for the redundancy allocation problem with a choice of redundancy strategies[J]. Reliability Engineering & System Safety,2013(119):158-164.

[8] 丁瑞,王浩枫,李之乾.显控台中高可靠性对称双机冗余系统设计和实现[J].计算机工程与设计,2015,36(3):635-640.

[9] 张科超,崔刚.实时嵌入式系统中的双机热备份容错设计[J].计算机研究与发展,2010,47(A1):133-136.

[10] 陈筠,桑楠,熊光泽.双机容错实时嵌入式系统设计与分析[J].单片机与嵌入式系统应用,2005,5(10):5-8.

[11] 文俊,苏宏升,沈强.两种铁路信号系统双机热备结构可靠性与安全分析[J].铁道标准设计,2015,59(3):110-113.

LI Zhihong:Assoc. Prof.; School of Automation, WUT, Wuhan 430070, China.

Design for High Reliability Dual-redundant Architecture Based on B/S Architecture

LIZhihong,PEIChengzhi,WANGLiang,JINGLijing

As to the problem of reliability of real-time configuration monitoring system based on B/S architecture, a new type of dual-redundant system architecture has been raised .Combining with the traditional dual-redundant architecture model,it puts forward passive heartbeat detection scheme, using backstage independent software management process to realize the switching control of host and spare machine, which improves the safety and reliability of real-time configuration monitoring system, extending the running time of monitoring system.

B/S; real-time configuration monitoring system; dual-redundant; heartbeat detection; safety;reliability

2095-3852(2017)01-0121-04

A

2016-09-31.

李志宏(1965-),男,湖北武汉人,武汉理工大学自动化学院副教授.

TP391.8

10.3963/j.issn.2095-3852.2017.01.025

猜你喜欢
双机后台组态
基于PLC及组态技术的恒温控制系统开发探讨
双机、双桨轴系下水前的安装工艺
Wu Fenghua:Yueju Opera Artist
双机牵引ZDJ9道岔不同步问题的处理
后台暗恋
基于PLC和组态的智能电动拧紧系统
Loader轴在双机桁架机械手上的应用
后台朋友
铸造行业三维组态软件的应用
基于PLC和组态的新型回转类测试设备的研制