集群技术在ATS系统中的应用
2021-10-19陶翠胡玉波张方杰
陶翠 胡玉波 张方杰
摘 要:在基于通信的列车运行控制CBTC系统中,列车自动监控子系统用以在线指挥和监督列车的运行,其对提高列车的运行效率至关重要。应用服务器是ATS子系统的大脑,可保证ATS系统的稳定运行,因此其可用性和可靠性尤为重要。通过引入集群,可大幅提高应用服务器的可用性和可靠性,截至目前,应用服务器集群已在长沙地铁四号线安全运营两年。
关键词:列车自动监控;应用服务器;集群
中图分类号:TP315;U284 文献标识码:A 文章编号:2096-4706(2021)06-0022-03
Application of Cluster Technology in ATS System
TAO Cui1,HU Yubo1,ZHANG Fangjie2
(1.Beijing Branch,Hunan CRRC Times Signal & Communication Co.,Ltd.,Beijing 100071,China;
2.China Nuclear Control System Engineering Co.,Ltd.,Beijing 102401,China)
Abstract:In the Communication Based Train Control(CBTC) system,the automatic train supervision(ATS)subsystem is used to command and supervise the train operation online,which is very important to improve the efficiency of train operation. Application server is the brain of ATS subsystem,which can ensure the stable operation of ATS system,so its availability and reliability are particularly important. Through the introduction of cluster,the availability and reliability of application server can be greatly improved. Up to now,application server cluster has been applied in Changsha Metro Line 4 and has been in safe operation for two years.
Keywords:ATS;application server;cluster
0 引 言
列車自动监控(ATS)系统是基于现代数据通信和计算机网络的分布式实时计算机控制系统,通过与列车自动防护ATP系统和列车自动运行ATO系统的协调配合,完成对城市高密度轨道交通信号系统的自动化管理和全自动行车调度指挥控制[1]。ATS系统属于分布式网络系统,由中心应用服务器子系统(CATS)、车站服务器子系统、工作站子系统、通信服务器子系统、运行图工作站子系统组成。CATS是ATS系统的大脑,其稳定性和可靠性是ATS系统设计的核心[2]。
在长沙地铁四号线的设计中,CATS采用三重冗余的设计方法。为保证冗余框架下数据的一致性、稳定性以及CATS主机的可用性,在CATS的设计中引入了ZooKeeper集群,用以实现运行数据的存储同步以及保证CATS主机的唯一性。在正式应用前,对集群方案进行了充分测试,验证了ZooKeeper集群在CATS选主及数据存储方面的正确性及可行性。
1 ZooKeeper介绍
ZooKeeper是一个分布式协调服务的开源框架,主要用来解决分布式集群中应用系统的一致性问题[3]。
ZooKeeper本质上是一个分布式的小文件存储系统,提供类似于文件系统的目录树方式的数据存储,并且可以对树中的节点进行有效管理,从而用来维护和监控所存储数据的状态变化。通过监控数据状态的变化,可以实现基于数据的集群管理。例如统一命名服务、分布式配置管理、分布式消息队列、分布式锁、分布式协调等功能的实现。
ZooKeeper集群角色有三种:
(1)Leader:ZooKeeper集群工作的核心。事务请求(写操作)的唯一调度和处理者,保证集群事务处理的顺序性;集群内部各个服务器的调度者。
(2)Follower:处理客户端非事务(读操作)请求,转发事务请求给Leader;参与集群Leader选举投票。
(3)Observer:观察者角色。观察ZooKeeper集群的最新状态变化并将这些状态同步过来,对于非事务请求,其可以独立处理,对于事务请求,则会转发给Leader服务器进行处理。其不会参与任何形式的投票,只提供非事务服务,通常用于在不影响集群事务处理能力的前提下提升集群的非事务处理能力[4]。
2 集群数据存储及同步
长沙地铁四号线选用ZooKeeper来搭建集群,利用双网两套平台集群(A网集群和B网集群),对部分关键的内存数据、配置文件、数据库数据进行实时冗余存储。保证数据源数据(即内存数据、配置文件、数据库数据)、A网平台集群数据、B网平台集群数据这三种数据的一致性。数据存储及同步的流程图如图1所示。
在长沙地铁四号线的设计中,集群需要同步的数据包括当天计划、派班计划、车次窗更新、用户信息、路径信息、列车识别号等,这些信息均不涉及安全相关功能[5]。
CATS主机首先会同时向两套集群写入要存储的数据(数据流1、数据流2),当发现两套集群数据不一致时,可对两套集群数据进行同步(数据流3、数据流4)。当CATS主备发生切换时,应用服务器若发现自己是主机,则需要去集群上获取当前数据。其优先从A网集群读取数据,如若A网集群不可用,才去B网集群读取数据。
3 CATS集群选主
CATS集群选主是利用双网两套集群,根据CATS在两套集群上的注册信息,选举出由哪个CATS做主机。其核心目标是实现在双网环境下,只要有一个网可用,有一个平台集群正常,CATS就能够正常提供服务。
假设三台CATS的节点名称分别为S1、S2、S3,使S1、S2和S3同时在A网集群和B网集群上注册节点,注册内容包括是否为主机、是否在线两项。注册完成后,A网集群和B网集群之间会进行数据同步。A网集群和B网集群分别进行选举,最后优先采纳A网集群上的选举数据,同时在A网集群、B网集群之间同步选举数据。S1、S2和S3各自监听和维护集群上的选举数据,当S1、S2和S3发现自己维护的选举数据发生变化时,再启动一次新的选举。
3.1 基本选举策略
用户要求,正常情况下S1和S2互为主备,S3固定位备机,不可手动倒机升主。仅当S1和S2都不可用的情况下,S3才可升为主机。依据此需求,设计选举策略如下:
(1)优先选举S1和S2(同等权重),只有当S1和S2与平台集群A和B均失去联系时才选举S3。
(2)算法保证S1和S2以同等概率获得选举机会。
综上可知,S3被选为主机的唯一条件就是S1与S2均与集群失去联系,故S3的选举不再详细讨论。
3.2 S1和S2的选举策略
由于S1和S2具有同等权重,为保证每次选举结果仅有一个主机,设计选举策略如下:
(1)在A网集群平台没有选出主机而B网集群平台选出了主机时,以B网集群平台选举结果为准。
(2)A网集群平台和B网集群平台同时选出了主机且选举结果一致时,选举成功。
(3)A网集群平台和B网集群平台同时选出了主机且选举结果不一致时,以A网集群平臺的选举结果为准。
(4)A网集群平台和B网集群平台同时离线时,主机保持不变。
4 CATS集群环境部署及配置
在长沙地铁四号线中,中心机房为CATS主备配置(S1和S2),联锁区8设置了备用CATS(S3)。所有终端均为双网配置。两套集群中,每套分别部署5个集群节点。由于联锁区的车站服务器都采用了双机冗余配置,故A网的5个集群节点部署在A机,B网的5个集群节点部署在B机。在该配置方案下,一套集群中至少有3个集群节点正常联网,该集群才可使用,如果是2个及2个以下节点联网,那么该集群不可用。部署示意图如图2所示。
由于引入了集群,故CATS的配置文件中需添加集群节点IP的配置,配置为:
[ZK]
AddrA = 10.28.1.10:2181,10.28.1.61:2181,10.28.1.211:2181,10.28.2.101:2181,10.28.2.201:2181
AddrB = 10.28.5.8:2181,10.28.5.62:2181,10.28.5.212:2181,10.28.6.102:2181,10.28.6.202:2181
TimeOutA = 2000
TimeOutB = 2000
bCreateLog = N
本案例中每套集群设置了5个集群节点,集群服务部署在C盘,数据存储放在D盘。D盘ZooKeeper中,myid的值依据下面的节点列表进行相关配置。每套集群zoo.cfg的配置为:
#A网服务器列表
server.1 = 10.28.1.10:2888:3888
server.2 = 10.28.1.61:2888:3888
server.3 = 10.28.1.211:2888:3888
server.4 = 10.28.1.101:2888:3888
server.5 = 10.28.2.201:2888:3888
#B网服务器列表
server.1 = 10.28.5.8:2888:3888
server.2 = 10.28.5.62:2888:3888
server.3 = 10.28.5.212:2888:3888
server.4 = 10.28.6.102:2888:3888
server.5 = 10.28.6.202:2888:3888
5 CATS集群的测试
依据图2的集群部署图及配置文件搭建测试环境,对集群的数据同步及选主功能进行测试。测试场景及结果如表1所示。
6 结 论
经过测试,引入集群后可实现CATS的三重冗余,保证某一时刻只有一个CATS作为主机工作,且CATS倒机过程中不会出现数据丢失,在很大程度上提高了CATS的可用性和可靠性,有效保证了对长沙地铁四号线列车的监视和控制,提高了运营的可靠性。
参考文献:
[1] 中国城市轨道交通协会技术装备专业委员会.城市轨道交通CBTC信号系统—ATS子系统规范:CZJS/T 0030—2015 [S]. 2015:27.
[2] 李芝宏.城市轨道交通ATS系统监控子系统研究 [D].兰州:兰州交通大学,2015.
[3] 唐海东,武延军.分布式同步系统ZooKeeper的优化 [J].计算机工程,2014(4):53-56.
[4] 刘芬,王芳,田昊.基于ZooKeeper的分布式锁服务及性能优化 [J].计算机研究与发展,2014(S1):229-234.
[5] 李泽军,李锐,娄智,等.城市轨道交通运营与信号 [M].合肥:中国科学技术大学出版社,2014.
作者简介:陶翠(1985—),女,汉族,山东聊城人,测试工程师,中级工程师,硕士,研究方向:模式识别与智能控制;胡玉波(1982—),男,汉族,江苏淮安人,开发工程师,中级工程师,硕士,研究方向:模式识别与智能控制;张方杰(1981—),男,汉族,湖北潜江人,系统工程师,高级工程师,硕士,研究方向:模式识别与智能控制。