Aerotrac空管自动化系统RDP进程假死问题的诊断与分析
2017-02-18姜鹏
姜鹏
摘 要:自动化系统作为空管雷达设备中的核心系统,是管制员实施雷达管制所依赖的“千里眼”。目前国内多家空管单位所使用的Aerotrac空管自动化系统由美国Telephonics生产,配备多台冗余服务器以及多条冗余网络,具有处理能力强、安全系数高、运行稳定等优点。其雷达处理服务器(以下简称RDP)负责处理各路引接的雷达信号,通过滤波、加权融合,输出平滑稳定的高精度雷达航迹,因此RDP运行稳定与否,从某种程度上决定了雷达管制能否顺利有效的实施。文章,作者通过对RDP运行模式以及网络数据包的分析,作者所在单位(以下称某单位)RDP进程假死故障的诊断和分析,透析Aerotrac自动化系统RDP运作模式。
关键词:空管自动化系统;RDP进程;假死
1 RDP网络架构及工作原理
目前笔者所在单位Aerotrac自动化共配有3台RDP以及3条互为冗余的网络,每台RDP连接其中的两条网络,同时只有一台RDP处于主用状态(Online),其他RDP处于备用状态(Backup),主用RDP负责在其连接的两个网上对外广播处理后的融合航迹,备用RDP负责将主用RDP广播的融合航迹转发到第三个网上。
其中RDP01-03拥有依次递减的上线优先级,即RDP01的优先级最高,RDP02优先级次之,RDP03优先级最低;3台RDP之间通过传递心跳信息实现通信,RDP对外广播的心跳信息是其他RDP判明其工作状态的唯一依据。通过对RDP广播的网络包进行分析,RDP心跳数据的16进制标准格式如下:
00 03 13 00 42 00 00 00 00 53 00 00
字节1-2:本条指令的长度/4
字节3:本条指令的功能号(13代表该条指令为RDP心跳信息)
字节5:代表RDP工作的状态,4F/42/58分别代表online/backup/loading
字节10:代表RDP的编号以及该台RDP所接网络的情况;其中bit0-3为RDP编号,bit4-6为各台RDP所接网络情况,接为1,不接为0,因此RDP01为31,RDP02为62,RDP03為53
2 RDP进程假死的故障诊断
2.1 故障现象
2016年11月27日19:09-19:10某单位Telephonics主用自动化系统故障,DP上目标中断约9秒钟;事发前各台RDP工作状态为:BOB,即RDP02为主用服务器,RDP01和03为备用服务器。故障前后经过如下:
19:09:01 RDP状态显示消失,并提示:PlayBack Halted,DP上大部分目标丢失
19:09:10 RDP状态:O*B,提示RDP02掉线,RDP01变为主用,目标逐步恢复
19:10:03 RDP状态:OOB,RDP02重新上线变为主用,目标正常
19:10:10 RDP状态:O*B,RDP02又提示掉线,目标正常
19:10:43 值班人员手动启动RDP02进程,RDP状态恢复为OBB*B
2.2 故障诊断及分析
事后笔者分析了故障前后19:08:50-19:10:04期间Aerotrac系统A、B网上的网络数据包。
阶段一:即故障发生前,RDP02为主用,RDP01、RDP03为备用,RDP02广播主用心跳及航迹数据,RDP01、03广播备用心跳,RDP状态:OBB,正常情况下网络数据包在100-200之间。
阶段二: RDP02故障下线,RDP02停止广播心跳以及航迹数据,RDP01、03继续广播备用心跳,此时系统内没有处于主用状态的RDP,RDP状态:B*B,网络数据包骤减。
阶段三: 由于RDP01上线优先级最高,当RDP01检测不到RDP02主用心跳后,RDP01上线,广播主用心跳及航迹数据,RDP03广播备用心跳,RDP状态:O*B,网络数据包数量恢复正常。
阶段四: RDP02再次上线,重新广播主用心跳及航迹数据,此时RDP01继续广播主用心跳及航迹数据,RDP03广播备用心跳,RDP状态OOB,两台RDP同时在线,网络数据包数量翻倍。
阶段五:由于RDP01的上线优先级高于RDP02,因此RDP01将RDP02 kill掉,RDP02离线,RDP01继续广播主用心跳及航迹数据,RDP03广播备用心跳,RDP状态:O*B。
基于上述分析,我们可以得出,故障之前RDP02为主用状态,因RDP02异常导致未能向外广播航迹以及心跳信息,根据优先级情况,RDP01尝试上线作为主用,此时RDP02进程并未真正退出,但由于RDP01优先级较高,RDP01发现RDP02状态仍为Online时将RDP02杀掉,此后RDP02进程处于离线状态。从RDP02非正常切换至RDP01期间,目标出现丢失。
可能原因一:RDP02或因接收到错误的雷达数据等未知原因导致进程卡死,停止对外广播心跳信息及雷达航迹信息。在11.27日19:09:00与19:09:01这两秒中网络中出现了大量异常网络数据,且均由RDP02发出,很有可能是RDP02工作异常产生。
可能原因二:RDP02或因网络连接出现异常,导致心跳信息及航迹数据无法正常广播到网络中。
3 监测程序的设计
由于Aerotrac自动化系统故障日志管理方面的薄弱,系统在出现RDP假死时未能保留足够的日志供技术人员参考,基于这种情况,为了排查上述两种可能导致RDP假死的原因,笔者利用Shell脚本编写了监测脚本,为了减少监测脚本对RDP运行的影响,笔者将该脚本运行在飞行计划处理服务器(FDP)上,通过UNIX系统rsh远程访问指令,实现对RDP状态的监测,脚本主要功能如下:
(1)定时监测RDP01、RDP02的网络连接情况。
(2)定时监测RDP01、RDP02 mrt、u_rcvr等进程CPU以及内存占用情况。
4 结束语
笔者针对目前珠海进近Aerotrac自动化系统RDP假死的情况进行了诊断和分析,得出了可能造成RDP假死的两种原因,有针对性的编写了Shell脚本实现对RDP进程以及网络连接情况的监测,以弥补Aerotrac系统自身日志管理方面的不足。限于笔者知识经验所限,本文介绍的内容未免有错漏之处,恳请同行批评指正。
参考文献
[1]张明伟,靳学梅,白红利.下一代管制自动化系统研究与设想[J].航空计算技术,2015(04).
[2]谢玉兰.大区域空管自动化系统发展探索[J].空中交通管理,2011(01).
[3]吕跃玲.航管主备自动化系统电子移交功能切换的实现[J].电子技术与软件工程,2016(19).