朱建勛,呂曉軍,吳興華,樊 楠
(1.中國(guó)鐵道科學(xué)研究院 研究生部,北京 100081;2.北京經(jīng)緯信息技術(shù)有限公司,北京 100081;3.中國(guó)鐵道科學(xué)研究院集團(tuán)有限公司 電子計(jì)算技術(shù)研究所,北京 100081)
近年來我國(guó)鐵路快速發(fā)展,鐵路旅客服務(wù)信息系統(tǒng)集成管理平臺(tái)(簡(jiǎn)稱:旅服平臺(tái))已在全路多數(shù)車站上線運(yùn)行,成為保障車站運(yùn)行的重要系統(tǒng)。旅服平臺(tái)包含服務(wù)器、存儲(chǔ)設(shè)備及網(wǎng)絡(luò)設(shè)備等硬件設(shè)施。平臺(tái)的數(shù)據(jù)庫軟件、應(yīng)用服務(wù)軟件及接口服務(wù)軟件各自獨(dú)立運(yùn)行于規(guī)劃的物理機(jī)設(shè)備[1-2]。目前,新建線路旅服平臺(tái)項(xiàng)目及既有車站旅服平臺(tái)改造項(xiàng)目逐年增多,旅服平臺(tái)基礎(chǔ)架構(gòu)無法滿足平臺(tái)快速部署,7×24 h 不間斷穩(wěn)定運(yùn)行,故障及時(shí)處理等需求。虛擬化技術(shù)與旅服平臺(tái)相結(jié)合,可對(duì)服務(wù)器資源進(jìn)行統(tǒng)籌規(guī)劃,提高服務(wù)器資源利用率,提升基礎(chǔ)環(huán)境可靠性,實(shí)現(xiàn)平臺(tái)快速部署,保障平臺(tái)安全、穩(wěn)定運(yùn)行。
虛擬化是指通過虛擬化技術(shù)將一臺(tái)物理實(shí)體機(jī)虛擬為多臺(tái)虛擬機(jī)。在一臺(tái)物理實(shí)體機(jī)中可以同時(shí)運(yùn)行多臺(tái)虛擬機(jī),每臺(tái)虛擬機(jī)安裝不同的操作系統(tǒng),運(yùn)行不同的業(yè)務(wù)應(yīng)用,且業(yè)務(wù)應(yīng)用分別運(yùn)行于不同的虛擬機(jī),相互之間獨(dú)立而互不影響,從而顯著提高物理實(shí)體機(jī)的工作效率[3]。虛擬化技術(shù)可利用有限的固定硬件設(shè)備,達(dá)到其最大利用率。
在虛擬化技術(shù)中,根據(jù)計(jì)算機(jī)的不同功能,將虛擬化劃分成幾種不同的類型,包括系統(tǒng)虛擬化、存儲(chǔ)虛擬化、網(wǎng)絡(luò)虛擬化、軟件虛擬化等。本文著重介紹系統(tǒng)虛擬化技術(shù)在服務(wù)器上的應(yīng)用。
服務(wù)器虛擬化是將物理機(jī)硬件資源進(jìn)行虛擬化。包括虛擬基本輸入輸出系統(tǒng)、虛擬處理器、虛擬內(nèi)存、虛擬設(shè)備與輸入/輸出(I/O, Input/Output)等,并保障了虛擬機(jī)良好的隔離性、封裝性和安全性。如圖1 所示,采用服務(wù)器虛擬化之前,不同的應(yīng)用分別運(yùn)行于不同的物理服務(wù)器;采用服務(wù)器虛擬化之后,不同的應(yīng)用可以被同一個(gè)物理服務(wù)器托管。
圖1 服務(wù)器虛擬化前后對(duì)比
服務(wù)器虛擬化技術(shù)在應(yīng)用層和物理設(shè)備層之間引入虛擬化層和虛擬化管理層[4]。虛擬化層對(duì)物理層服務(wù)器CPU、內(nèi)存、網(wǎng)絡(luò)、存儲(chǔ)等進(jìn)行資源整合和統(tǒng)籌管理。虛擬化管理層根據(jù)業(yè)務(wù)需求分配CPU、磁盤、網(wǎng)絡(luò)、內(nèi)存等,規(guī)劃不同業(yè)務(wù)的不同模板,同時(shí)創(chuàng)建多個(gè)虛擬機(jī),實(shí)現(xiàn)平臺(tái)快速部署。虛擬化管理層實(shí)時(shí)監(jiān)控虛擬機(jī)運(yùn)行狀態(tài),及時(shí)進(jìn)行調(diào)度和控制[5],通過高可用性(HA,High Available)集群的高可用機(jī)制,保障平臺(tái)的可用性、穩(wěn)定性及安全性。
服務(wù)器虛擬化技術(shù)包括CPU、內(nèi)存、設(shè)備與I/O虛擬化和虛擬化實(shí)時(shí)遷移等。CPU 虛擬化技術(shù)指將物理CPU 虛擬為多個(gè)虛擬CPU,可以實(shí)現(xiàn)多臺(tái)虛擬機(jī)共用一個(gè)CPU,且相互之間隔離。CPU 虛擬化技術(shù)可解決虛擬CPU 隔離和調(diào)度等問題,隔離是使不同的虛擬機(jī)之間能相互獨(dú)立運(yùn)算,調(diào)度是指虛擬化管理層決定CPU 當(dāng)前被哪臺(tái)虛擬機(jī)使用。
內(nèi)存虛擬化技術(shù)是指將物理內(nèi)存虛擬為多個(gè)虛擬內(nèi)存,可以實(shí)現(xiàn)多臺(tái)虛擬機(jī)共用物理內(nèi)存,且相互之間隔離。虛擬化管理層采用段式、頁式、段頁式、多級(jí)頁表、緩存、虛擬內(nèi)存等多種復(fù)雜的技術(shù)管理內(nèi)存。
設(shè)備與I/O 虛擬化技術(shù)將真實(shí)設(shè)備虛擬成多個(gè)虛擬設(shè)備,實(shí)現(xiàn)多臺(tái)虛擬機(jī)共用物理設(shè)備與I/O。
實(shí)時(shí)遷移技術(shù)是指在虛擬機(jī)正常運(yùn)行中,將整個(gè)虛擬機(jī)快速、完整地從既有的物理機(jī)硬件平臺(tái)遷移到新的物理機(jī)硬件平臺(tái),其業(yè)務(wù)不中斷。使用實(shí)時(shí)遷移技術(shù),可以在業(yè)務(wù)不宕機(jī)的情況下,將虛擬機(jī)遷移到另一個(gè)物理機(jī)上,然后對(duì)原來虛擬機(jī)所在的物理機(jī)進(jìn)行硬件維護(hù)。該技術(shù)較好地保障了虛擬機(jī)服務(wù)7×24 h 不間斷運(yùn)行。
旅服平臺(tái)采用鐵路局集團(tuán)有限公司(簡(jiǎn)稱:鐵路局)-車站兩級(jí)架構(gòu)[6],鐵路局旅服平臺(tái)承擔(dān)所管轄車站的接口處理服務(wù)、數(shù)據(jù)處理服務(wù)、應(yīng)用處理服務(wù)、數(shù)據(jù)存儲(chǔ)等功能。車站旅服平臺(tái)保留業(yè)務(wù)操作終端、廣播子系統(tǒng)控制器、導(dǎo)向子系統(tǒng)控制器、接口服務(wù)器等設(shè)備[7]。新建線路旅服平臺(tái)及既有車站旅服平臺(tái)改造時(shí),數(shù)據(jù)庫處理服務(wù)、應(yīng)用處理服務(wù)、數(shù)據(jù)存儲(chǔ)等設(shè)備均需根據(jù)實(shí)際情況做相應(yīng)擴(kuò)展。
根據(jù)《鐵路旅客服務(wù)信息系統(tǒng)集成管理平臺(tái)配置技術(shù)條件》[8],傳統(tǒng)鐵路局旅服平臺(tái)基礎(chǔ)架構(gòu)如圖2 所示。該基礎(chǔ)構(gòu)架含數(shù)據(jù)處理模塊、管理服務(wù)模塊、應(yīng)用處理模塊、接口服務(wù)模塊、網(wǎng)絡(luò)及存儲(chǔ)設(shè)備等硬件設(shè)施。平臺(tái)數(shù)據(jù)庫、接口服務(wù)、應(yīng)用服務(wù)等軟件運(yùn)行于不同物理服務(wù)器,如圖3 所示。
本文將虛擬化技術(shù)應(yīng)用于傳統(tǒng)鐵路局旅服平臺(tái),平臺(tái)的基礎(chǔ)架構(gòu)如圖4 所示。
每臺(tái)物理服務(wù)器均部署虛擬化層系統(tǒng)XenServer 6.5,物理服務(wù)器通過SAN 交換機(jī)與磁盤陣列相連,虛擬化鐵路局旅服平臺(tái)服務(wù)器軟件結(jié)構(gòu)如圖5 所示。
每臺(tái)物理服務(wù)器根據(jù)業(yè)務(wù)實(shí)際需求,通過虛擬化管理層劃分內(nèi)存、硬盤、虛擬CPU(vCPU)等資源,同時(shí),創(chuàng)建數(shù)據(jù)庫、鐵路運(yùn)輸調(diào)度管理系統(tǒng)接口、鐵路客票發(fā)售和預(yù)訂系統(tǒng)接口、鐵路自動(dòng)售檢票系統(tǒng)接口、身份認(rèn)證、到發(fā)服務(wù)、廣播服務(wù)、導(dǎo)向服務(wù)等相應(yīng)的虛擬機(jī)模板,實(shí)現(xiàn)平臺(tái)的快速部署。虛擬機(jī)內(nèi)存、vCPU 及網(wǎng)絡(luò)資源使用物理機(jī)計(jì)算資源,其硬盤一般使用磁盤陣列共享資源。每臺(tái)物理服務(wù)器根據(jù)自身硬件配置情況,運(yùn)行適當(dāng)數(shù)量的虛擬機(jī)。例如,數(shù)據(jù)庫虛擬機(jī)占用內(nèi)存較多,可自動(dòng)調(diào)配內(nèi)存較小的虛擬機(jī),與其共用1臺(tái)物理服務(wù)器。虛擬化管理層的合理配置和智能優(yōu)化,使每臺(tái)物理服務(wù)器利用率顯著提高。
虛擬化管理層可在物理服務(wù)器出現(xiàn)故障時(shí),通過實(shí)時(shí)遷移功能,將故障服務(wù)器上運(yùn)行的全部虛擬機(jī)自動(dòng)遷移到其他物理機(jī),業(yè)務(wù)幾乎無中斷。同時(shí),可對(duì)故障物理服務(wù)器進(jìn)行及時(shí)維修。虛擬化管理層通過HA 技術(shù)保障旅服平臺(tái)7×24 h 不間斷穩(wěn)定運(yùn)行。
圖2 傳統(tǒng)鐵路局旅服平臺(tái)基礎(chǔ)架構(gòu)
圖3 傳統(tǒng)鐵路局旅服平臺(tái)服務(wù)器軟件結(jié)構(gòu)
圖4 虛擬化鐵路局旅服平臺(tái)基礎(chǔ)結(jié)構(gòu)
服務(wù)器虛擬化技術(shù)重新定義和劃分CPU、內(nèi)存、網(wǎng)絡(luò)及存儲(chǔ)等計(jì)算資源。本文將其成功運(yùn)用于鐵路局旅服平臺(tái),圖6 為虛擬化鐵路局旅服平臺(tái)實(shí)現(xiàn)情況。
圖6 中,左側(cè)列是虛擬化資源池KMZ Pool,由4 臺(tái)物理服務(wù)器組成。圖6 中間部分,包含8 列:第1 列Name 字段,顯示服務(wù)器中分別運(yùn)行的不同業(yè)務(wù)虛擬機(jī);第2 列CPU Usage (CPU 使用率)字段,顯示物理服務(wù)器及虛擬機(jī)CPU 使用率,其使用率均低于10%;第3 列Used Memory(內(nèi)存使用率)字段,包含物理服務(wù)器和虛擬機(jī)的內(nèi)存使用率;第4、5、6 列均為磁盤網(wǎng)絡(luò)情況;第7 列Uptime 字段,為物理服務(wù)器與虛擬機(jī)本次開機(jī)后的運(yùn)行時(shí)間,其中,大部分物理服務(wù)器已連續(xù)穩(wěn)定運(yùn)行300 天以上,虛擬機(jī)連續(xù)運(yùn)行40 天以上;第8 列HA 字段,為虛擬化集群配置,一旦物理服務(wù)器發(fā)生故障,虛擬化管理層會(huì)自動(dòng)遷移虛擬機(jī)到其他正常物理服務(wù)器繼續(xù)運(yùn)行。
目前,已經(jīng)在鄭州局、昆明局、呼和局、太原站、武昌站等鐵路局及車站上線使用Citrix 版本的虛擬化旅服平臺(tái),南昌局、廣州局上線使用Vmware 版本的虛擬化旅服平臺(tái)。通過虛擬化管理層實(shí)時(shí)監(jiān)控物理服務(wù)器及虛擬機(jī)運(yùn)行狀態(tài),保障平臺(tái)7×24 h 不間斷、安全、穩(wěn)定運(yùn)行。
圖5 虛擬化鐵路局旅服平臺(tái)服務(wù)器軟件結(jié)構(gòu)
圖6 鐵路局旅服平臺(tái)虛擬化實(shí)現(xiàn)
傳統(tǒng)鐵路局旅服平臺(tái)使用物理服務(wù)器的數(shù)量在10 臺(tái)左右,每臺(tái)服務(wù)器CPU 使用率小于12%,硬盤和內(nèi)存使用率小于10%。磁盤陣列只為2 臺(tái)數(shù)據(jù)庫集群提供數(shù)據(jù)存儲(chǔ),使用率小于20%。
而應(yīng)用虛擬化鐵路局旅服平臺(tái)后,使用物理服務(wù)器的數(shù)量為4 臺(tái),每臺(tái)服務(wù)器CPU 使用率小于30%,硬盤使用率小于5%,內(nèi)存使用率小于40%。磁盤陣列為4 臺(tái)物理服務(wù)器提供數(shù)據(jù)存儲(chǔ),使用率為80%左右。
綜上,虛擬化鐵路局旅服平臺(tái)需要物理服務(wù)器數(shù)量明顯減少,物理服務(wù)器CPU、內(nèi)存、網(wǎng)絡(luò)等資源使用率和磁盤陣列占用率都得到了顯著提高。
虛擬化技術(shù)在旅服平臺(tái)的應(yīng)用,可實(shí)現(xiàn)平臺(tái)的快速部署,提高物理服務(wù)器使用率,縮短平臺(tái)故障處理時(shí)間且滿足平臺(tái)擴(kuò)展需求,保障平臺(tái)7×24 h 不間斷、安全、穩(wěn)定運(yùn)行。
此外,磁盤陣列包含所有數(shù)據(jù)處理服務(wù)、到發(fā)服務(wù)、導(dǎo)向服務(wù)、廣播服務(wù)等虛擬機(jī)硬盤資源,且占用率較高。將來車站線路增多時(shí),磁盤陣列的需求量將會(huì)迅速擴(kuò)大,擴(kuò)容難度及耗資較大。下一步將著重研究Docker 在旅服平臺(tái)中的應(yīng)用,在保障后臺(tái)服務(wù)冗余的同時(shí),節(jié)省磁盤陣列資源空間,保障旅服平臺(tái)高效、穩(wěn)定運(yùn)行。