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