韩骁宇
莱斯自动化系统是国产空管自动化系统中较为成熟与完善的产品,目前广泛部署在全国各个空管分局站,其中最重要的是作为三大区管中心的备用自动化系统。基于对国产设备的支持和对运行安全的考虑,备用系统常态化使用越来越频繁。在维护与使用方面对空管管制与技术保障人员都提出了更高的要求。
本文以天津莱斯MUMEN3000自动化系统为例,研究在当前V3.2版本软件环境下,系统状态切换与显示的机制。全面深入了解莱斯自动化系统主备机切换逻辑、判断标准;系统运行状态判断标准与切换时机;各个服务器间消息传递机制与生效过程。并结合实际案例分析,帮助大家了解莱斯自动化系统特性,为今后系统使用与设备维护提供支撑。
一、背景
天津使用莱斯NUMEN3000行自动化系统,当前版本为V3.2P14,是北京区管莱斯自动化系统的一个TCU分区,北京区管系统FDP提供计划计算及报文处理能力,本分区内进行雷达数据引接与处理,航迹与计划相关计算,告警计算等功能。系统配置方面,主要功能服务器(如SDP、DCP等)采用双机备份配置,拥有旁路雷达处理能力。系统使用三网结构,由两个运行网与一个服务网组成。
该系统运行状态分为系统运行级别、服务器运行状态以及各类软件运行情况,系统会根据各个模块运行状态动态调整系统运行级别。并给出相应提示,并可以通过人工操作在线进行状态切换。
在使用莱斯自动化指挥期间,系统出现降级,恢复后天津分区航迹与计划相关功能失效,北京分区该功能正常。因此对该情况进行相关的调查与分析,主要调查主备机状态判断、切换逻辑,系统运行状态与显示方面的系统特性。
二、调查过程
(一)降级过程调查
莱斯自动化系统主备机状态由主备机中ZLS进程判断,当节点开机后,ZLS进程优先启动,启动后节点为初始状态,此时节点通过PING进程尝试连接交换机,判断网络状态。同时ZLS进程准备接收主备机心跳信息,如果收到同组服务器的主机心跳,则将自己切换为备用状态,并发出备机心跳;若未收到主机心跳则等待3个周期(共3秒),若在此3个周期内收到同组的主机心跳,则判断是否为本机发送的主机心跳信息,是则将自己置为主机状态,否则说明此时系统中有主用状态服务器,将自己置为备用状态。主备机心跳信息发送周期为1秒。
当3个周期后仍未收到主机心跳信息,則发送成为主机申请包,并继续等待3个周期,在此期间若收到同组主机的心跳信息,则判断是否为本机发布的心跳信息,并按之前的流程继续判断,若3个周期内未收到同组主机心跳信息,则将自己置为主机。若两台服务器都申请成为主机,则优先申请的服务器成为主机。
在运行中发现,系统降级过程中,DCP11服务器在未接入网络的状态下开机后,该节点由于未收到主备机状态信息以及其他节点的状态信息,因此判断自己为单主机状态,其他节点均不在线。在该节点接入网络时,同组主机正处于两次主机心跳信息发送的间隙期,因此DCP11未收到系统中同组主机的心跳信息,并将全系统节点不在线信息发送至网络中。造成判断系统运行状体的进程SMPS根据该信息判断系统主要服务器失效,系统降级。
(二)系统运行状态与显示不符调查
莱斯自动化系统运行等级升降级逻辑是:当主要功能缺失时自动降级,例如MSDP的main radar、couple、告警等服务失效时系统将切换至旁路雷达处理服务器BSDP;当区管FDP服务器失效或与区管链路失效时系统将切换至本地计划处理服务器FDP。待故障功能恢复后需手动确认相应功能恢复,并手动升级系统状态。
当系统判断当前分区内无SDP服务器可用,但存在雷达处理功能正常的SDP服务器时,席位会显示可用SDP服务器中SDP进程处理的综合航迹;负责航迹与计划相关的TPP进程则会等待主任席人工确认系统升级后开始工作。
在运行过程发现,系统从出现降级状态直至恢复时,席位显示系统主用SDP功能、本分区FDP功能能失效,但在监控中显示以上4台服务器功能运行正常,软件进程运行正常;在重启席位后,席位显示系统所有恢复功能正常,但航迹无法与计划相关。
造成这种情况的原因为,系统因DCP11发布的不正常信息后判断系统降级,但实际上所有服务器状态均正常,因此当再次全系统询问状态时各个节点返回正常消息。重启席位后,席位进程默认为系统状态正常,同时收到所有服务功能正常的消息,因此重启席位进程后显示系统运行状态正常。但TPP进程需人确认系统恢复手动升级才开始工作,因此系统相关能力丧失。需要将双机TPP进程下线,再次触发自动降级过程,并手动升级才能恢复。
为调查此类情况,可使用zltest工具模拟当日服务器间消息传递过程,使用getst脚本查看系统运行状态。用以调查系统在状态显示方面的问题。zltest工具可人工发布各类ZLS信息(如上文中0x0100、0x0200等),getst工具可直接显示系统运行状态,通过以上两个工具在北京新终端测试平台上复现当日情况并结合日志分析状态显示与变化过程,
三、 结论
经过调查,发现莱斯自动化系统V3.2P15、P16均存在主备机状态判断、切换逻辑不合理,系统运行状态与显示状态不一致问题。
其中在主备机状态方面。服务器开机后ZLS进程在未接入网络时就开始计算主备机状态与系统所有节点状态,而该进程在主要双机配置的服务器上均有配置,根据系统设计原理,全系统只有机器号最小的节点发布ZLS信息,因此只要出现ZLS进程发布的系统状态信息,所有节点均根据该信息做出相应动作。且由于各类状态信息的发布周期不同,有一定概率出现保存错误信息的节点在接入网络时将异常信息发布至系统中,造成系统整体状态异常。同时ZLS发布的系统状态信息在A、B、C三网中均有传输,因此开机后无论先接入何种类型网络均存在该风险。在测试过程中,多次进行服务器开机后接入网络的操作时大部分情况下节点会正常接入系统并变为备用状态,但出现一次上线服务器将主用DCP服务器自动下线,系统降级情况。
在系统系统状态显示方面,经过对事件中各类消息的模拟,发现席位显示的系统状态与系统真实运行状态存在差异。且由于系统升级需要主任席在相应的状态开关处进行操作,由于这种差异导致主任席无法进行升级操作,导致TPP进程虽然状态正常但无法介入工作,相关功能失效但系统显示状态正常,对维护维修造成误导。
因此,针对主备机状态问题,因在节点介入系统前进行状态计算无意义,且会生成异常状态信息,建议调整软件启动逻辑,节点在未联通网络,不能收到系统状态时不进行主备机状态及系统状态的计算。针对系统运行状态与显示状态不一致问题,为便于技术维护人员及时准确的判断系统状态,建议在监控中显示系统中各个服务器运行状态及系统运行状态,为运行维护提供准确信息。