張軍政,張 浩,郝 建,伍田昊睿,盧佩玲
(1.中國鐵道科學研究院集團有限公司通信信號研究所,北京 100081; 2.中國鐵道科學研究院研究生部,北京 100081)
高速鐵路是國家戰(zhàn)略性、先導性、關鍵性重大基礎設施,確保列車高速安全、可靠運行至關重要。列控中心作為客運專線和高速鐵路列車運行控系統(tǒng)的地面信號核心控制設備,為保證其運營的安全性和可靠性,需對各廠家設備在上線運行前進行室內集成測試[1]。然而,集成測試環(huán)境的部署,需借助大量的人力在多臺物理實體機上進行網絡配置和仿真軟件部署,存在耗時長、物理設備受限、成本高、易出錯且查錯難等問題[2]。目前,鐵路新建和改造線路逐年增多,集成測試環(huán)境無法滿足快速部署、穩(wěn)定運行、高效管理、故障及時處理等需求。因此,將云平臺應用到列控集成測試系統(tǒng)中,將多臺物理服務器的計算、網絡和存儲進行聚合管理,可以橫向/縱向進行擴展,形成統(tǒng)一的資源池,在資源池上為不同線路的測試環(huán)境分配虛擬機和劃分不同的VLAN,為仿真列車運行場景、仿真TCC、仿真TSRS、仿真CBI及接口仿真等提供基礎運行環(huán)境,從而減少物理接口,提高運行的可靠性及穩(wěn)定性,并實現快速自動部署。
在大數據云計算的快速發(fā)展趨勢下,當今許多應用已經部署在云平臺上[3]。資源虛擬化作為云平臺的關鍵技術[4],在節(jié)約硬件及管理成本、提高資源利用率及系統(tǒng)可靠性方面起到重要作用,已受到學術界和工業(yè)界的廣泛關注[5]。云平臺可以最大程度利用硬件平臺資源,通過多個操作系統(tǒng)的整合,只需采用一臺高性能服務器,即可構建資源集中、共享的新服務器模式,更能滿足日益擴大的應用需求。目前,該技術已在IT[6]、教育科研[7-8]、智能電網[9]、軌道交通[10]、智能物流[11]、環(huán)境監(jiān)測[12]等眾多領域中應用。但在列控系統(tǒng)集成測試方面應用較少,且缺乏合適的自動部署工具。
針對以上問題,首先,將VMware vSphere技術應用于服務器的虛擬化管理物理資源,vCenter客戶端管理軟件用來對整個數據中心進行實時監(jiān)控和虛擬機管理;其次,利用VMWare Horizon創(chuàng)建虛擬云桌面,便于用戶訪問和虛擬桌面顯示,并引入串口設備服務器,解決了虛擬串口與物理串口之間數據傳輸問題;最后,考慮到通過GUI操作方式來管理虛擬機的創(chuàng)建與刪除、VLAN的劃分以及虛擬桌面配置時,存在操作繁瑣、耗時長的問題,進一步提出依托C#和PowerShell語言建立自動控制系統(tǒng)平臺,并通過PowerCLI接口函數,對虛擬化云平臺進行管理和維護,實現列控設備集成測試環(huán)境的自動化部署。
云平臺的關鍵技術是資源的虛擬化,vSphere是VMware公司推出的服務器虛擬化產品,是目前該領域中最先進可靠的虛擬化架構[13]。它通過虛擬服務器對虛擬環(huán)境進行管理,可根據用戶需求,通過虛擬數據中心和云操作系統(tǒng),創(chuàng)建虛擬機和動態(tài)分配計算資源,同時對每個虛擬機進行系統(tǒng)安裝和分布式管理。
在云平臺中,列控中心的集成測試環(huán)境是由多臺網絡互連的虛擬機構成,而對虛擬機間的協(xié)同監(jiān)控能力則主要由部署其上的仿真軟件實施。搭建單一機器或搭建多機互連但機器間無信息交互的測試環(huán)境容易實現,但對于構建多機互連且存在協(xié)同配合的測試環(huán)境則同樣具有難度高[14]、效率低等問題。因此,研究的目標不僅是將物理PC機上的集成測試環(huán)境遷移到云平臺的虛擬機中運行,還要實現虛擬云桌面管理,即根據不同測試環(huán)境,劃分相應的用戶,根據不同用戶,通過特定管理軟件,獲取相應測試環(huán)境所需的虛擬機,并且從整個虛擬機的創(chuàng)建、網絡配置、仿真文件管理到虛擬桌面部署,實現自動化處理,而現有的自動化工具無法滿足該需求。
為解決該問題,需實現對虛擬化云平臺的自動化搭建和監(jiān)控,目前,基于vSphere實現測試環(huán)境自動部署的方法主要如下[15-17]:
(1)基于Python定制程序實現;
(2)基于vShere操作界面實現;
(3)基于PowerShell定制程序實現,通過基于PowerShell運行的PowerCLI接口函數,對vSphere系統(tǒng)的虛擬機、網絡、存儲及客戶機操作系統(tǒng)等各方面進行自動化管理。3種方案對比如表1所示。
表1 不同技術方案比對
列控設備集成測試環(huán)境搭建的工作需求包括:能夠基于虛擬云平臺對目標虛擬機進行完整管控,能夠完全覆蓋虛擬機搭建的各種操作。綜合考慮目標平臺的應用場景,測試平臺的構建需靈活、穩(wěn)定、易擴展且易操作,通過分析方案的適用性,測試環(huán)境的自動化部署技術路線采用C# & PowerShell & PowerCLI。
測試平臺主要包括虛擬化云平臺、虛擬云桌面、串口設備服務器和自動化部署4個部分。基于云平臺的列控集成測試系統(tǒng)總體架構設計如圖1所示。
圖1 列控集成測試云平臺架構
(1)虛擬化云平臺:物理服務器分布式安裝vSphere,完成ESXi服務器配置,在此基礎上安裝vCenter,將ESXi服務器連入vCenter服務器進行集中管理[18]。同時,將存儲接入ESXi服務器,并按網卡分配規(guī)則將網卡指定給不同的虛擬交換機,并配置不同的端口組,同時指定不同的VLAN,安裝相應虛擬機后,配置不同的端口組,從而實現虛擬機間網絡互聯(lián)。不同于傳統(tǒng)的測試環(huán)境,vSphere虛擬化環(huán)境實現了物理資源的池化和計算資源的共享,省去了互聯(lián)機器間線纜,提高了機器之間可靠性和可管理性。
(2)虛擬云桌面:通過托管的方式統(tǒng)一管理所有測試環(huán)境的用戶桌面系統(tǒng)與數據中心,實現數據存儲與桌面呈現的分離。測試人員可根據分配的用戶名和密碼,在局域網或互聯(lián)網內通過安裝有VMware horizon的瘦客戶端訪問相應的測試環(huán)境[19]。
(3)串口設備服務器:將虛擬機中的虛擬串口映射到物理串口,實現云平臺中仿真程序與真實物理設備的串口通信。
(4)自動化部署:在云平臺的基礎上,采用C#與PowerShell混合編程的方式,根據測試線路需求自動執(zhí)行vSphere系統(tǒng)的虛擬機創(chuàng)建、網卡配置、VLAN劃分、IP配置、用戶分配及桌面池添加等操作。
在配置完vSphere和vCenter整體環(huán)境后,該平臺可提供虛擬機生成和網絡服務,其中,網絡服務主要通過虛擬化環(huán)境中的虛擬交換機和虛擬端口組對外提供網絡服務,基本滿足了列控設備的集成測試環(huán)境需求,但對測試環(huán)境的劃分隔離和用戶訪問受限。
為此,引入虛擬云桌面管理,擬采用VMware Horizon虛擬桌面基礎架構,對虛擬機進行統(tǒng)一管理,測試人員只需通過安裝有VMware Horizon的客戶端設備,設置好服務器訪問地址,輸入對應用戶名和密碼,即可訪問云平臺中的虛擬資源池,并可以登錄到任意測試環(huán)境對應的桌面,進行桌面圖像的顯示、鼠標鍵盤輸入和USB存儲設備讀寫等操作。相較于傳統(tǒng)PC機與顯示器鼠標鍵盤一對一方式,可大大簡化機器之間的線纜連接,提高操作的靈活度。虛擬云桌面管理實現如圖2所示。
由圖2可知,虛擬云桌面的部署大致過程為,首先,在虛擬資源池中,根據測試線路規(guī)模對虛擬機和網卡數量的需求,對虛擬機進行桌面池添加和桌面用戶及密碼分配,同時為該線路測試環(huán)境的安全網和仿真網劃分唯一的VLAN,以便于測試環(huán)境隔離;然后,測試人員通過圖2中的4個連接步驟即可訪問測試環(huán)境的任意一臺虛擬機桌面,其中,Active Directory和View Connection Server可部署在虛擬機或物理機中,管理員可以接入到任意一臺服務器,對整個資源池進行管理。
圖2 虛擬云桌面實現
為保證測試的真實性和可信性,仿真測試系統(tǒng)需具備真實設備和仿真設備均可接入的特性。列控地面設備之間的通信接口除RJ45的以太網,還包括RS422串口,如列控中心與維護終端的串口通信、CTC與列控中心和聯(lián)鎖的串口通信等。針對串口通信設備均為仿真時,可采用虛擬串口工具實現,但對于仿真設備與真實設備同時存在,且需串口通信時,就存在如何將虛擬機中虛擬串口映射到物理串口的問題。
針對該問題,在虛擬化云平臺的基礎上接入串口設備服務器,其基本工作原理為:先將虛擬串口數據轉化為TCP /IP數據,通過以太網傳輸,再將其解析為串口數據,過程雙向。對于真實列控中心和真實聯(lián)鎖接入測試系統(tǒng)的場景,其物理架構如圖3所示。
圖3 串口服務器物理架構
圖3中,串口設備服務器采用16個通信串口的NPort 6650,支持將RS232/422/485串口通信協(xié)議轉換為ICMP、TCP、IP、HTTP等網絡協(xié)議,其工作模式包括TCP服務器或客戶端模式、UDP服務器或客戶端模式以及RFC2217等模式,僅需通過網頁簡單配置就可以實現串口和以太網接口的雙向數據傳輸[20]。其具有拓撲結構簡單、配置方便、傳輸距離遠、抗干擾強等特點。
本文擬采用RFC2217服務器/客戶端模式,首先,在NPort 6650管理頁面上設置其IP地址、端口號及RFC2217服務器模式;然后,在虛擬機用虛擬串口軟件創(chuàng)建虛擬串口對,再將串口數據轉換為RFC2217協(xié)議發(fā)送到對應的服務器IP地址和端口號,此時NPort 6650的網口與對應串口就形成了雙向數據傳輸。其傳輸過程如圖4所示。
圖4 RFC2217數據傳輸過程
不同線路,所需的虛擬機數量不同,當線路車站數量及測試線路環(huán)境較多時,測試環(huán)境的搭建和維護單靠人工完成,容易出錯且過程繁瑣重復。為提高測試環(huán)境搭建效率,采用C#與PowerShell& PowerCLI接口函數混合編程的方式實現測試環(huán)境的自動部署,該工具的總體結構如圖5所示。
圖5 程序總體結構
該工具主要由PowerShell & PowerCLI腳本和便于用戶操作的C#可視化接口程序組成。其中,PowerCLI是創(chuàng)建在以Windows PowerShell為運行基礎的vSphere命令管理接口函數[21]。基本思路為采用PowerCLI編寫不同功能函數,包括IP配置、網卡選擇、網卡名稱修改、站文件拷貝、桌面池分配和虛擬機的創(chuàng)建、開啟、關閉等功能,然后利用C#編寫的操作界面,處理仿真測試線路數據,并調用PowerCLI的功能函數,最終實現自動化部署。自動化部署流程如圖6所示。
圖6 自動部署流程
詳細操作步驟如下:
(1)讀取部署腳本,其中包括站名、虛擬機名稱、網卡名稱、仿真站文件地址、安全網與仿真網VLAN的ID及名稱;
(2)加載PowerCLI庫函數,連接vCenter服務器;
(3)C#處理站文件,根據特征提取出每個站列控中心的安全網、仿真網IP地址及網關;
(4)根據部署腳本,創(chuàng)建對應的虛擬機,并自動完成啟動;
(5)判斷虛擬機是否創(chuàng)建完成,若完成則根據站名與虛擬機名稱的對應關系,將每個站的仿真測試文件自動拷貝至對應的虛擬機中;
(6)修改網卡名稱,并配置對應的IP地址;
(7)開啟每個站的仿真程序;
(8)周期性獲取仿真程序運行狀態(tài),若停止運行則立即重啟。
2.3.2 功能實現
虛擬化環(huán)境自動部署程序主要功能包括網絡配置、仿真測試文件管理、虛擬機管理和虛擬桌面管理4個部分。
(1)網絡配置
網絡配置主要進行虛擬網卡VLAN的劃分、網卡名稱的修改和網卡IP的配置,其實現方式主要調用PowerCLI的接口函數。虛擬網卡對應VLAN的劃分由New-VirtualPortGroup函數實現,網卡名稱修改Get-NetworkAdapter和netsh命令實現,IP配置主要由Invoke-Command命令實現。
(2)仿真測試文件管理
測試文件的管理主要是將測試應用程序分發(fā)到對應的虛擬機中,并進行程序自啟動和運行狀態(tài)的實時監(jiān)控,其中,自啟動的主要程序為列控中心仿真軟件、IO仿真和維護終端。對于測試文件的分發(fā),主要由Copy-VMGuestFile函數實現,對于程序啟動和狀態(tài)監(jiān)控主要由函數start-process和tasklist實現。
(3)虛擬機管理
虛擬機的管理主要完成虛擬機的創(chuàng)建、刪除、啟機和關機的操作,分別采用NewVM、Remove-VM、StartVM及Stop-VM接口函數實現。
(4)虛擬桌面管理
虛擬桌面的管理主要為虛擬機進行桌面池的添加、用戶分配及授權,可分別采用Add-ManualPool、Update-UserOwnership及Add-PoolEntitlement接口函數實現。
以京張高鐵C2級列控系統(tǒng)集成測試環(huán)境的搭建為例,該線路共10個車站、6個中繼站和2個線路所,需具備18套TCC仿真、10套CBI仿真、1套列車運行線路仿真及接口仿真。1臺虛擬機配置1套TCC仿真,列車運行線路仿真及接口仿真運行在同一臺虛擬機中,全線的TSRS仿真和CTC仿真分別運行在2臺虛擬機中。鑒于對10套CBI仿真的操作實時性要求不高,可將其運行在同一臺虛擬機中,因此,該環(huán)境共需22臺虛擬機。
虛擬機采用64位Windows 7操作系統(tǒng),并配置4個虛擬網卡,分別用于安全數據網雙網、仿真網和管理網。自動部署工具通過管理網對vSphere系統(tǒng)下發(fā)指令,實現自動化管理。京張高鐵仿真測試環(huán)境網絡拓撲如圖7所示。
圖7 京張高鐵仿真測試環(huán)境網絡拓撲
在對列控中心的測試搭建過程中,測試人員一般需先將車站仿真測試文件拷貝到虛擬機中,然后對每臺虛擬機進行IP配置和程序開啟,并檢查機器之間的網絡通信和程序運行是否正常。為便于比較手動與自動部署的耗時情況,主要從6個部署場景進行對比??梢暬詣硬渴鸪绦蚪缑嫒鐖D8所示。
圖8 自動部署程序操作界面
圖9給出了京張高鐵測試環(huán)境手動搭建和自動搭建的耗時情況,考慮到測試環(huán)境搭建過程中存在偶然因素,為減少計時誤差,每種對比場景各重復6次,圖9中數據為6次執(zhí)行時間的平均值。
圖9 手動與自動搭建測試環(huán)境耗時對比
由圖9可知,自動化搭建測試環(huán)境的耗時均小于手動搭建,時間成本降低了約79%,部署過程穩(wěn)定高效,未出現IP沖突問題,且可以在無人值守的情況下執(zhí)行,不受人力分配影響。結果表明,該方案在測試環(huán)境構建快捷性和可靠性方面是有效可行的。
列控集成測試系統(tǒng)是及時發(fā)現列控設備數據錯誤和功能缺陷的重要手段,而構建高效可靠的測試環(huán)境是確保測試效率和準確性的前提。針對實驗室條件下列控中心集成測試環(huán)境搭建過程繁瑣、費時耗力、易出錯的問題,提出了一種基于vSphere云平臺的列控設備集成測試環(huán)境自動部署方案,該方案將傳統(tǒng)物理PC機上的仿真程序遷移到云平臺中運行,并建立虛擬云桌面,實現了用戶遠程訪問和測試環(huán)境的隔離,提高了測試靈活性和減少了設備成本,同時引入串口設備服務器,實現虛擬串口與物理串口之間的數據傳輸,提高了測試的可信性和真實性。最后,通過不同方案對比,采用C#與PowerCLI接口函數實現測試環(huán)境自動部署,降低了時間成本,提高了測試效率及設備運營的安全可靠性,具有一定的工程實用價值。