基于云平台的高铁列控集成测试系统设计及应用

2021-12-15 14:20张军政伍田昊睿卢佩玲
铁道标准设计 2021年12期
关键词:列控网卡串口

张军政,张 浩,郝 建,伍田昊睿,卢佩玲

(1.中国铁道科学研究院集团有限公司通信信号研究所,北京 100081; 2.中国铁道科学研究院研究生部,北京 100081)

高速铁路是国家战略性、先导性、关键性重大基础设施,确保列车高速安全、可靠运行至关重要。列控中心作为客运专线和高速铁路列车运行控系统的地面信号核心控制设备,为保证其运营的安全性和可靠性,需对各厂家设备在上线运行前进行室内集成测试[1]。然而,集成测试环境的部署,需借助大量的人力在多台物理实体机上进行网络配置和仿真软件部署,存在耗时长、物理设备受限、成本高、易出错且查错难等问题[2]。目前,铁路新建和改造线路逐年增多,集成测试环境无法满足快速部署、稳定运行、高效管理、故障及时处理等需求。因此,将云平台应用到列控集成测试系统中,将多台物理服务器的计算、网络和存储进行聚合管理,可以横向/纵向进行扩展,形成统一的资源池,在资源池上为不同线路的测试环境分配虚拟机和划分不同的VLAN,为仿真列车运行场景、仿真TCC、仿真TSRS、仿真CBI及接口仿真等提供基础运行环境,从而减少物理接口,提高运行的可靠性及稳定性,并实现快速自动部署。

在大数据云计算的快速发展趋势下,当今许多应用已经部署在云平台上[3]。资源虚拟化作为云平台的关键技术[4],在节约硬件及管理成本、提高资源利用率及系统可靠性方面起到重要作用,已受到学术界和工业界的广泛关注[5]。云平台可以最大程度利用硬件平台资源,通过多个操作系统的整合,只需采用一台高性能服务器,即可构建资源集中、共享的新服务器模式,更能满足日益扩大的应用需求。目前,该技术已在IT[6]、教育科研[7-8]、智能电网[9]、轨道交通[10]、智能物流[11]、环境监测[12]等众多领域中应用。但在列控系统集成测试方面应用较少,且缺乏合适的自动部署工具。

针对以上问题,首先,将VMware vSphere技术应用于服务器的虚拟化管理物理资源,vCenter客户端管理软件用来对整个数据中心进行实时监控和虚拟机管理;其次,利用VMWare Horizon创建虚拟云桌面,便于用户访问和虚拟桌面显示,并引入串口设备服务器,解决了虚拟串口与物理串口之间数据传输问题;最后,考虑到通过GUI操作方式来管理虚拟机的创建与删除、VLAN的划分以及虚拟桌面配置时,存在操作繁琐、耗时长的问题,进一步提出依托C#和PowerShell语言建立自动控制系统平台,并通过PowerCLI接口函数,对虚拟化云平台进行管理和维护,实现列控设备集成测试环境的自动化部署。

1 系统方案

1.1 技术路线

云平台的关键技术是资源的虚拟化,vSphere是VMware公司推出的服务器虚拟化产品,是目前该领域中最先进可靠的虚拟化架构[13]。它通过虚拟服务器对虚拟环境进行管理,可根据用户需求,通过虚拟数据中心和云操作系统,创建虚拟机和动态分配计算资源,同时对每个虚拟机进行系统安装和分布式管理。

在云平台中,列控中心的集成测试环境是由多台网络互连的虚拟机构成,而对虚拟机间的协同监控能力则主要由部署其上的仿真软件实施。搭建单一机器或搭建多机互连但机器间无信息交互的测试环境容易实现,但对于构建多机互连且存在协同配合的测试环境则同样具有难度高[14]、效率低等问题。因此,研究的目标不仅是将物理PC机上的集成测试环境迁移到云平台的虚拟机中运行,还要实现虚拟云桌面管理,即根据不同测试环境,划分相应的用户,根据不同用户,通过特定管理软件,获取相应测试环境所需的虚拟机,并且从整个虚拟机的创建、网络配置、仿真文件管理到虚拟桌面部署,实现自动化处理,而现有的自动化工具无法满足该需求。

为解决该问题,需实现对虚拟化云平台的自动化搭建和监控,目前,基于vSphere实现测试环境自动部署的方法主要如下[15-17]:

(1)基于Python定制程序实现;

(2)基于vShere操作界面实现;

(3)基于PowerShell定制程序实现,通过基于PowerShell运行的PowerCLI接口函数,对vSphere系统的虚拟机、网络、存储及客户机操作系统等各方面进行自动化管理。3种方案对比如表1所示。

表1 不同技术方案比对

列控设备集成测试环境搭建的工作需求包括:能够基于虚拟云平台对目标虚拟机进行完整管控,能够完全覆盖虚拟机搭建的各种操作。综合考虑目标平台的应用场景,测试平台的构建需灵活、稳定、易扩展且易操作,通过分析方案的适用性,测试环境的自动化部署技术路线采用C# & PowerShell & PowerCLI。

1.2 系统架构设计

测试平台主要包括虚拟化云平台、虚拟云桌面、串口设备服务器和自动化部署4个部分。基于云平台的列控集成测试系统总体架构设计如图1所示。

图1 列控集成测试云平台架构

(1)虚拟化云平台:物理服务器分布式安装vSphere,完成ESXi服务器配置,在此基础上安装vCenter,将ESXi服务器连入vCenter服务器进行集中管理[18]。同时,将存储接入ESXi服务器,并按网卡分配规则将网卡指定给不同的虚拟交换机,并配置不同的端口组,同时指定不同的VLAN,安装相应虚拟机后,配置不同的端口组,从而实现虚拟机间网络互联。不同于传统的测试环境,vSphere虚拟化环境实现了物理资源的池化和计算资源的共享,省去了互联机器间线缆,提高了机器之间可靠性和可管理性。

(2)虚拟云桌面:通过托管的方式统一管理所有测试环境的用户桌面系统与数据中心,实现数据存储与桌面呈现的分离。测试人员可根据分配的用户名和密码,在局域网或互联网内通过安装有VMware horizon的瘦客户端访问相应的测试环境[19]。

(3)串口设备服务器:将虚拟机中的虚拟串口映射到物理串口,实现云平台中仿真程序与真实物理设备的串口通信。

(4)自动化部署:在云平台的基础上,采用C#与PowerShell混合编程的方式,根据测试线路需求自动执行vSphere系统的虚拟机创建、网卡配置、VLAN划分、IP配置、用户分配及桌面池添加等操作。

2 关键技术

2.1 虚拟云桌面

在配置完vSphere和vCenter整体环境后,该平台可提供虚拟机生成和网络服务,其中,网络服务主要通过虚拟化环境中的虚拟交换机和虚拟端口组对外提供网络服务,基本满足了列控设备的集成测试环境需求,但对测试环境的划分隔离和用户访问受限。

为此,引入虚拟云桌面管理,拟采用VMware Horizon虚拟桌面基础架构,对虚拟机进行统一管理,测试人员只需通过安装有VMware Horizon的客户端设备,设置好服务器访问地址,输入对应用户名和密码,即可访问云平台中的虚拟资源池,并可以登录到任意测试环境对应的桌面,进行桌面图像的显示、鼠标键盘输入和USB存储设备读写等操作。相较于传统PC机与显示器鼠标键盘一对一方式,可大大简化机器之间的线缆连接,提高操作的灵活度。虚拟云桌面管理实现如图2所示。

由图2可知,虚拟云桌面的部署大致过程为,首先,在虚拟资源池中,根据测试线路规模对虚拟机和网卡数量的需求,对虚拟机进行桌面池添加和桌面用户及密码分配,同时为该线路测试环境的安全网和仿真网划分唯一的VLAN,以便于测试环境隔离;然后,测试人员通过图2中的4个连接步骤即可访问测试环境的任意一台虚拟机桌面,其中,Active Directory和View Connection Server可部署在虚拟机或物理机中,管理员可以接入到任意一台服务器,对整个资源池进行管理。

图2 虚拟云桌面实现

2.2 串口设备服务器

为保证测试的真实性和可信性,仿真测试系统需具备真实设备和仿真设备均可接入的特性。列控地面设备之间的通信接口除RJ45的以太网,还包括RS422串口,如列控中心与维护终端的串口通信、CTC与列控中心和联锁的串口通信等。针对串口通信设备均为仿真时,可采用虚拟串口工具实现,但对于仿真设备与真实设备同时存在,且需串口通信时,就存在如何将虚拟机中虚拟串口映射到物理串口的问题。

针对该问题,在虚拟化云平台的基础上接入串口设备服务器,其基本工作原理为:先将虚拟串口数据转化为TCP /IP数据,通过以太网传输,再将其解析为串口数据,过程双向。对于真实列控中心和真实联锁接入测试系统的场景,其物理架构如图3所示。

图3 串口服务器物理架构

图3中,串口设备服务器采用16个通信串口的NPort 6650,支持将RS232/422/485串口通信协议转换为ICMP、TCP、IP、HTTP等网络协议,其工作模式包括TCP服务器或客户端模式、UDP服务器或客户端模式以及RFC2217等模式,仅需通过网页简单配置就可以实现串口和以太网接口的双向数据传输[20]。其具有拓扑结构简单、配置方便、传输距离远、抗干扰强等特点。

本文拟采用RFC2217服务器/客户端模式,首先,在NPort 6650管理页面上设置其IP地址、端口号及RFC2217服务器模式;然后,在虚拟机用虚拟串口软件创建虚拟串口对,再将串口数据转换为RFC2217协议发送到对应的服务器IP地址和端口号,此时NPort 6650的网口与对应串口就形成了双向数据传输。其传输过程如图4所示。

图4 RFC2217数据传输过程

2.3 自动化环境部署2.3.1 总体设计

不同线路,所需的虚拟机数量不同,当线路车站数量及测试线路环境较多时,测试环境的搭建和维护单靠人工完成,容易出错且过程繁琐重复。为提高测试环境搭建效率,采用C#与PowerShell& PowerCLI接口函数混合编程的方式实现测试环境的自动部署,该工具的总体结构如图5所示。

图5 程序总体结构

该工具主要由PowerShell & PowerCLI脚本和便于用户操作的C#可视化接口程序组成。其中,PowerCLI是创建在以Windows PowerShell为运行基础的vSphere命令管理接口函数[21]。基本思路为采用PowerCLI编写不同功能函数,包括IP配置、网卡选择、网卡名称修改、站文件拷贝、桌面池分配和虚拟机的创建、开启、关闭等功能,然后利用C#编写的操作界面,处理仿真测试线路数据,并调用PowerCLI的功能函数,最终实现自动化部署。自动化部署流程如图6所示。

图6 自动部署流程

详细操作步骤如下:

(1)读取部署脚本,其中包括站名、虚拟机名称、网卡名称、仿真站文件地址、安全网与仿真网VLAN的ID及名称;

(2)加载PowerCLI库函数,连接vCenter服务器;

(3)C#处理站文件,根据特征提取出每个站列控中心的安全网、仿真网IP地址及网关;

(4)根据部署脚本,创建对应的虚拟机,并自动完成启动;

(5)判断虚拟机是否创建完成,若完成则根据站名与虚拟机名称的对应关系,将每个站的仿真测试文件自动拷贝至对应的虚拟机中;

(6)修改网卡名称,并配置对应的IP地址;

(7)开启每个站的仿真程序;

(8)周期性获取仿真程序运行状态,若停止运行则立即重启。

2.3.2 功能实现

虚拟化环境自动部署程序主要功能包括网络配置、仿真测试文件管理、虚拟机管理和虚拟桌面管理4个部分。

(1)网络配置

网络配置主要进行虚拟网卡VLAN的划分、网卡名称的修改和网卡IP的配置,其实现方式主要调用PowerCLI的接口函数。虚拟网卡对应VLAN的划分由New-VirtualPortGroup函数实现,网卡名称修改Get-NetworkAdapter和netsh命令实现,IP配置主要由Invoke-Command命令实现。

(2)仿真测试文件管理

测试文件的管理主要是将测试应用程序分发到对应的虚拟机中,并进行程序自启动和运行状态的实时监控,其中,自启动的主要程序为列控中心仿真软件、IO仿真和维护终端。对于测试文件的分发,主要由Copy-VMGuestFile函数实现,对于程序启动和状态监控主要由函数start-process和tasklist实现。

(3)虚拟机管理

虚拟机的管理主要完成虚拟机的创建、删除、启机和关机的操作,分别采用NewVM、Remove-VM、StartVM及Stop-VM接口函数实现。

(4)虚拟桌面管理

虚拟桌面的管理主要为虚拟机进行桌面池的添加、用户分配及授权,可分别采用Add-ManualPool、Update-UserOwnership及Add-PoolEntitlement接口函数实现。

3 方案实现与验证

3.1 测试环境构建

以京张高铁C2级列控系统集成测试环境的搭建为例,该线路共10个车站、6个中继站和2个线路所,需具备18套TCC仿真、10套CBI仿真、1套列车运行线路仿真及接口仿真。1台虚拟机配置1套TCC仿真,列车运行线路仿真及接口仿真运行在同一台虚拟机中,全线的TSRS仿真和CTC仿真分别运行在2台虚拟机中。鉴于对10套CBI仿真的操作实时性要求不高,可将其运行在同一台虚拟机中,因此,该环境共需22台虚拟机。

虚拟机采用64位Windows 7操作系统,并配置4个虚拟网卡,分别用于安全数据网双网、仿真网和管理网。自动部署工具通过管理网对vSphere系统下发指令,实现自动化管理。京张高铁仿真测试环境网络拓扑如图7所示。

图7 京张高铁仿真测试环境网络拓扑

3.2 实验验证

在对列控中心的测试搭建过程中,测试人员一般需先将车站仿真测试文件拷贝到虚拟机中,然后对每台虚拟机进行IP配置和程序开启,并检查机器之间的网络通信和程序运行是否正常。为便于比较手动与自动部署的耗时情况,主要从6个部署场景进行对比。可视化自动部署程序界面如图8所示。

图8 自动部署程序操作界面

图9给出了京张高铁测试环境手动搭建和自动搭建的耗时情况,考虑到测试环境搭建过程中存在偶然因素,为减少计时误差,每种对比场景各重复6次,图9中数据为6次执行时间的平均值。

图9 手动与自动搭建测试环境耗时对比

由图9可知,自动化搭建测试环境的耗时均小于手动搭建,时间成本降低了约79%,部署过程稳定高效,未出现IP冲突问题,且可以在无人值守的情况下执行,不受人力分配影响。结果表明,该方案在测试环境构建快捷性和可靠性方面是有效可行的。

4 结论

列控集成测试系统是及时发现列控设备数据错误和功能缺陷的重要手段,而构建高效可靠的测试环境是确保测试效率和准确性的前提。针对实验室条件下列控中心集成测试环境搭建过程繁琐、费时耗力、易出错的问题,提出了一种基于vSphere云平台的列控设备集成测试环境自动部署方案,该方案将传统物理PC机上的仿真程序迁移到云平台中运行,并建立虚拟云桌面,实现了用户远程访问和测试环境的隔离,提高了测试灵活性和减少了设备成本,同时引入串口设备服务器,实现虚拟串口与物理串口之间的数据传输,提高了测试的可信性和真实性。最后,通过不同方案对比,采用C#与PowerCLI接口函数实现测试环境自动部署,降低了时间成本,提高了测试效率及设备运营的安全可靠性,具有一定的工程实用价值。

猜你喜欢
列控网卡串口
基于NPORT的地面综合气象观测系统通信测试方法及故障处理
列控联锁数据管理分析平台的研究与探索
高速铁路列控系统工程数据编制常见问题浅析
列控中心驱采不一致分析及改进方案
基于API函数库实现串口数据通信的分析与设计
部署Linux虚拟机出现的网络故障
基于EM9000工控板高性能双串口通信模型设计与实现
列控车载设备智能监测诊断系统开发探讨
Server 2016网卡组合模式
船舶电子设备串口数据的软件共享方法