探究利用虚拟传感器技术实现TS16与交换机的组合热备份
2021-12-25杨绍松刘少慧
杨绍松 刘少慧
民航东北空管局气象中心 辽宁 沈阳 110169
1 现状
自动观测系统是民航气象的重要系统之一,在保障飞行安全中起着举足轻重的作用。2015年12月对本场自动观测系统进行了升级改造,从服务器的单机运行升级为了双机热备,大大提高该系统的稳定性。
自动观测系统的核心单元TS16与交换机依然处于单机运行状态,一旦出现故障整个自动观测系统就会陷入瘫痪。从全国自动观测系统的故障点来看,TS16发生的故障率很高,尤其是TS16的电源模块故障,因此TS16的单机运行时刻威胁着整个自动观测系统安全稳定运行。
2 虚拟传感器设计
由于TS16故障率高,而且其直接影响着整个自动观测系统的运行,在没先例可循的前提下,只能对整个自动观测系统开展深层次的研究,寻求最佳解决方案。通过对自动观测系统数据流的认真分析,最终找到了通过虚拟传感器技术与维萨拉的主备传感器技术来实现TS16与网络交换机的组合双机热备方案。以下分别从链路优化设计与软件配置设计对虚拟传感器技术展开介绍。
2.1 链路设计与原始数据虚拟
对原系统拓扑图进行优化设计,新增TS16(2)与交换机(2),利用CDUC与CDUD的网卡互备的特性,实现TS16与交换机的双机热备。
在调制解调器(DXL421)后端对所有的RS232信号进行并联接收,即把原先的一路串口信号分成两路。
把两路RS232信号一路接入到TS16(1),另一类接入到TS16(2)内。
把TS16(2)与交换机(2)进行连接,交换机(1)与交换机(2)串联。
把CDUC与CDUD的两个网卡一个接入交换机(1),另一个网卡接入到交换机(2)。
所有客户端都使用双网卡热备份塔式服务器,分别接入到交换机(1)与交换机(2)。
传感器数据虚拟采用被动接受的方式对RS232进行分离,分离装置是自制的无源三通传输线。如果条件允许可以DXL421的后端加防雷模块,避免新分流的数据与设备对原路数据造成影响,TS16(2)得到的即使虚拟的传感器数据[1]。
2.2 建立虚拟传感器数据对象
(1)TS16配置
TS16的主要功能是把接收的串口数据转化为UPD数据进行网络转发,预先在CDUC与CDUD上找16个空闲端口,例如:13101-13116,用于接收虚拟传感器数据。由于现行传感器数据使用的是12101-12116,所以配置TS16对整个自动观测系统不会造成任何不良影响。
首先配置新增TS16(2)IP地址为192.168.1.103,TS16(1)IP地址假设为192.168.1.101。TS16的作用是把串口数据转化为UPD数据,通过网络把数据发送给服务器的指定端口。所以需要更改两台TS16的配置,让TS16(1)、TS16(2)把每个端口收的数据都发送的CDUC与CDUD的1210*与1310*端口上。
(2)虚拟传感器对象的建立
现在CDU已经收到了同一传感器的两路数据,接下来需要通过修改CDU的配置,让CDU把其中一路作为原始传感器数据,另外一路作为虚拟传感器数据。当来自TS16(1)原始传感器数据中断时,无缝切换到来自TS16(2)虚拟传感器数据,同样这里以6号端口24端云高数据为例,配置文件以配置CDUC为例。
首先,在配置文件PORTS.INI中定义两个网络端口NET06与NET36。其中,NET06用来接收TS16(1)发送的24端原始云高数据,NET36用来接收TS16(2)发送的24端虚拟云高数据。
其次,在配置文件SENSORS.INI中定义24端云高原始数据对象1_CLOUD_SENSOR_M与1_CLOUD_SENSOR_N,其中1_CLOUD_SENSOR_M用来存储NET06的原始云高数据,即TS16(1)发送的24端原始云高数据,1_CLOUD_SENSOR_N用来存储NET36的虚拟云高数据,即TS16(2)发送的24端虚拟云高数据。
至此,两路云高数据已经分别进入到了1_CLOUD_SENSOR_M与1_CLOUD_SENSOR_N两个对象,其中1_CLOUD_SENSOR_M定义为原始云高传感器数据对象,1_CLOUD_SENSOR_N定义为虚拟云高传感器数据对象。最后,在配置文件DUALSERV.INI中重新定义24端云高数据传感器对象,其中原始云高传感器数据对象是1_CLOUD_SENSOR的第一使用对象,虚拟云高传感器数据对象是1_CLOUD_SENSOR的第二使用对象。
3 双路数据监控
实现了TS16与交换机双机热备以后,单个交换机与TS16故障以后,在客户端与服务器上就不能明显地体现出来了,故障就变得隐蔽起来。所以,开发新的监控系统变得非常必要。
监控的原始数据取自原始数据对象的Statuses属性,例如1_CLOUD_SENSOR_N的Statuses属性。当TS16(1)的6号端口数据异常时对象1_CLOUD_SENSOR_M的Statuses属性为Old,当TS16(2)的6号端口数据异常时对象1_CLOUD_SENSOR_N的Statuses属性为Old,正常情况下Statuses的值为Normal。
通过对所有原始数据对象的Statuses的值进行实时采集,把所有采集到的Statuses值与前台监控程序进行关联,可达到对TS16(1)、TS16(2)、交换机(1)、交换机(2)进行实时监控的目的,第一时间发现故障并进行相应处理。
4 数据测试
为减少数据测试给业务运行带来的影响,在此选择24端云高仪作为测试对象,并利用安装在笔记本上的MIDAS IV服务器版软件进行测试。
首先断开TS16(2)6口数据,查看原始数据对象状态。然后恢复TS16(2)6口数据并断开TS16(1)6口数据,查看传感器数据对象状态。两种情况只影响了原始传感器数据对象与虚拟传感器数据对象的其中一个数据对象,1_CLOUD_SENSOR数据对象及时切换到了有效的传感器数据对象上去,1_CLOUD_SENSOR数据对象并没用受到影响,相应WEATHERVIEW上显示的云高数据也没有受到影响。
5 方案优点及展望
5.1 方案优点
TS16的双机热备是端口级别的,例如:TS16(1)与TS16(2)的第9口是06端云高仪数据,当TS16(1)的第9个端口故障时,06端云高数据会自动使用TS16(2)第9口的数据,而其他数据依然使用TS16(1)的相对应的端口数据。
5.2 展望
通过对场内设备进行更改与配置,实现两路数据同时输出。同时如果有富余的传输线路,两路数据可以分离传输,这样既可以实现TS16与网络交换机的双机热备,也实现了传输线路的备份。同时也解决了被动接收的方式分流RS232信号带来的问题。