王力權(quán),翟 華,張志麗,王艷君,解立坤
(1.中國電子科技集團(tuán)公司第五十四研究所,河北 石家莊 050081;2.北京跟蹤與通信技術(shù)研究所,北京 100094)
衛(wèi)星移動(dòng)通信,相對于地面移動(dòng)通信系統(tǒng),具有覆蓋范圍廣、通信費(fèi)用與距離無關(guān)以及不受地理?xiàng)l件限制等優(yōu)點(diǎn),能夠?qū)崿F(xiàn)對海洋、山區(qū)和高原等地區(qū)近乎無縫的覆蓋[1-3],不僅能夠傳輸電話、電報(bào),而且能夠傳輸高質(zhì)量的電視以及高速數(shù)據(jù)等。衛(wèi)星信關(guān)站是連接衛(wèi)星網(wǎng)絡(luò)和地面網(wǎng)絡(luò)的樞紐,從網(wǎng)絡(luò)互通角度,其包含基帶處理單元和交換互聯(lián)單元,主要完成傳輸算法、協(xié)議轉(zhuǎn)換、網(wǎng)絡(luò)交換及互聯(lián)互通等功能[4]。基帶處理單元是信關(guān)站中重要組成部分,實(shí)現(xiàn)信號的發(fā)送接收、編解碼和協(xié)議處理等功能。
隨著用戶數(shù)量和應(yīng)用數(shù)據(jù)規(guī)模等需求增長,衛(wèi)星移動(dòng)通信網(wǎng)絡(luò)需要存在多種體制和規(guī)模,不同制式的網(wǎng)絡(luò)相互重疊覆蓋,這就導(dǎo)致衛(wèi)星通信網(wǎng)絡(luò)整體需要維持的基帶資源總量和能耗巨大[5]。由于業(yè)務(wù)流量在地域上分布不均勻,導(dǎo)致了基礎(chǔ)設(shè)施在數(shù)量或者時(shí)間上的冗余,造成信關(guān)站處理資源的閑置和浪費(fèi),增大運(yùn)營和維護(hù)成本?;鶐зY源池的建立,可將信關(guān)站基帶處理中對實(shí)時(shí)性要求不高的部分,如分幀復(fù)接、MAC處理、RLC處理及PDCP處理等部署在通用服務(wù)器上,構(gòu)建統(tǒng)一的資源池,進(jìn)行聯(lián)合協(xié)作分配和資源管理;同時(shí)也實(shí)現(xiàn)了軟硬件解耦,提高了不同制式信關(guān)站的兼容性和可擴(kuò)展性[6-7]。虛擬化技術(shù)是一種使基帶處理單元能夠靈活低成本支持多?;蚨嘀剖降募夹g(shù),基帶處理單元占用的硬件資源通過虛擬化技術(shù)在物理資源池中進(jìn)行高效的調(diào)度分配,對基帶處理單元軟件本身屏蔽其底層硬件資源的管理細(xì)節(jié)[8]。云計(jì)算是一種通過網(wǎng)絡(luò)對共享資源池(如網(wǎng)絡(luò)、服務(wù)器、存儲)提供便捷、按需訪問的計(jì)算模型,可實(shí)現(xiàn)與資源提供者快速交互,并通過較小工作量實(shí)現(xiàn)資源的快速釋放和提供[9]。
本文通過虛擬化技術(shù),將信關(guān)站基帶處理單元虛擬化,進(jìn)行資源整合,構(gòu)建資源池?;谠朴?jì)算平臺,實(shí)現(xiàn)對虛擬基帶資源池的管控,支持根據(jù)硬件負(fù)載情況的動(dòng)態(tài)遷移功能。
基于內(nèi)核的虛擬機(jī)(Kernel-based Virtual Machine,KVM)是一款Linux的開源虛擬化軟件。在KVM中,虛擬機(jī)被視為常規(guī)的Linux進(jìn)程,由標(biāo)準(zhǔn)Linux調(diào)度程序進(jìn)行調(diào)度,虛擬機(jī)的每個(gè)虛擬CPU(vCPU)被視為一個(gè)常規(guī)的Linux進(jìn)程。本質(zhì)上,KVM是管理虛擬硬件設(shè)備的驅(qū)動(dòng),該驅(qū)動(dòng)作為管理接口,負(fù)責(zé)虛擬處理器的創(chuàng)建、虛擬內(nèi)存的分配、寄存器的讀寫以及虛擬處理器的運(yùn)行[10-11]。
基于KVM的虛擬化技術(shù)的信關(guān)站總體架構(gòu)如圖1所示。部分基帶處理以及協(xié)議與交換處理可通過KVM在基于X86架構(gòu)的通用服務(wù)器集群上創(chuàng)建虛擬機(jī),屏蔽物理設(shè)備的差異性,從而構(gòu)建虛擬基帶資源池。這不僅提高了物理設(shè)備資源的使用效率,還降低了衛(wèi)星移動(dòng)通信系統(tǒng)中信關(guān)站的能源開銷,減少其建設(shè)費(fèi)用和運(yùn)營費(fèi)用。
圖1 虛擬化信關(guān)站總體架構(gòu)Fig.1 Virtual gateway architecture
本文介紹基于KVM技術(shù)的信關(guān)站虛擬化平臺架構(gòu)和部署方式,并構(gòu)建了測試平臺,通過對虛擬化平臺的負(fù)載性能測試和動(dòng)態(tài)遷移性能測試驗(yàn)證了該虛擬化平臺的資源和運(yùn)行管控能力。
圖2為信關(guān)站基帶處理單元虛擬管控平臺的架構(gòu)圖,圖中管控平臺是在基帶處理通用服務(wù)器集群上構(gòu)建虛擬層,并通過動(dòng)態(tài)遷移實(shí)現(xiàn)資源管控。虛擬層上可運(yùn)行多個(gè)虛擬機(jī),一個(gè)虛擬機(jī)可處理一個(gè)BBU單元,也可處理L2/L3單元,虛擬機(jī)按照不同的粒度進(jìn)行功能劃分,有利于提高基帶處理資源的利用率,從而提升虛擬化信關(guān)站的總體效能。
圖2 信關(guān)站虛擬化架構(gòu)圖 Fig.2 Virtualization architecture diagram of gateway station
本文設(shè)計(jì)的虛擬化基帶資源池通過OpenStack構(gòu)建虛擬資源管控平臺。OpenStack采用分布式架構(gòu),是一個(gè)開源的,旨在實(shí)現(xiàn)開放簡單、具有大規(guī)模可擴(kuò)展性及豐富特征集的云計(jì)算平臺[12-13],虛擬管控平臺按照功能的不同分為多個(gè)模塊項(xiàng)目,可以根據(jù)實(shí)際需求進(jìn)行項(xiàng)目組合,不同項(xiàng)目功能劃分明確且耦合性低,OpenStack包含以下基本組件:
計(jì)算服務(wù)(Nova)在OpenStack中負(fù)責(zé)向用戶按需提供不同規(guī)格的虛擬機(jī)。Nova的核心功能是將大量部署了KVM的物理服務(wù)器統(tǒng)一納入管理,組成一個(gè)具有完整資源視圖的邏輯資源池。在此基礎(chǔ)上,Nova通過接收不同用戶發(fā)起的請求,對資源池中的資源進(jìn)行生命周期管理操作。
鏡像服務(wù)(Glance)負(fù)責(zé)對系統(tǒng)中提供的各類鏡像的元數(shù)據(jù)進(jìn)行管理,并提供鏡像的創(chuàng)建、刪除、查詢、上傳及下載等能力。
身份認(rèn)證服務(wù)(Keystone)負(fù)責(zé)對用戶進(jìn)行身份認(rèn)證,并向被認(rèn)定為合法的用戶發(fā)放令牌。用戶持Keystone發(fā)放的令牌訪問 OpenStack的其他項(xiàng)目,以使用其提供的服務(wù)。
網(wǎng)絡(luò)管理(Neutron)為用戶提供不同層次的多種網(wǎng)絡(luò)服務(wù)功能,包括L2組網(wǎng)、L3組網(wǎng)、內(nèi)網(wǎng)DHCP管理、Internet浮動(dòng)IP管理、內(nèi)外網(wǎng)防火墻、負(fù)載均衡及VPN等。
用戶界面(Horizon)提供基于Web自助服務(wù)入口連接底層的云計(jì)算服務(wù),管理員可以管理云端服務(wù)當(dāng)前的部署與狀態(tài)[14-15]。
合理的部署架構(gòu)是基帶虛擬資源池穩(wěn)定高效的基礎(chǔ),針對信關(guān)站基帶處理單元多服務(wù)器環(huán)境,本文采用多節(jié)點(diǎn)的OpenStack部署架構(gòu)。虛擬管控平臺包含一個(gè)控制節(jié)點(diǎn)和兩個(gè)計(jì)算節(jié)點(diǎn)共3臺服務(wù)器。通過控制節(jié)點(diǎn)的Web界面對虛擬基帶資源池進(jìn)行管控。OpenStack的安裝部署流程如圖3所示。步驟1為基本準(zhǔn)備階段,需要網(wǎng)絡(luò)時(shí)間協(xié)議、數(shù)據(jù)庫等配置,以保證后續(xù)的服務(wù)模塊正常運(yùn)作。步驟2~5分別為添加身份認(rèn)證、鏡像服務(wù),計(jì)算服務(wù)和用戶界面,計(jì)算節(jié)點(diǎn)只需安裝計(jì)算服務(wù)和網(wǎng)絡(luò)服務(wù)的部分模塊[16]。
圖3 OpenStack部署流程 Fig.3 Deployment process of OpenStack
信關(guān)站虛擬資源池目的在于資源池內(nèi)的資源共享,能夠進(jìn)行靈活調(diào)度,為此需要研究虛擬管控平臺中的動(dòng)態(tài)遷移方案。動(dòng)態(tài)遷移是為了確保正常運(yùn)行通過將虛擬機(jī)從一個(gè)物理機(jī)移動(dòng)到另一個(gè)物理機(jī)時(shí)不會對虛擬機(jī)用戶造成太大的影響[17],即保證資源靈活調(diào)度過程中,信關(guān)站服務(wù)的用戶能夠保持接續(xù)。本文將動(dòng)態(tài)遷移所需要的源平臺和目的平臺的共用磁盤文件放置在一個(gè)共享存儲節(jié)點(diǎn)(控制節(jié)點(diǎn)),實(shí)現(xiàn)數(shù)據(jù)的集中訪問,減少調(diào)用過程中頻繁傳輸對遷移性能造成的影響。本平臺采用基于的客戶端/服務(wù)器架構(gòu)的NFS(Network File System)網(wǎng)絡(luò)文件系統(tǒng),支持通過網(wǎng)絡(luò)實(shí)現(xiàn)跨物理機(jī)分享文件。動(dòng)態(tài)遷移的實(shí)現(xiàn)主要涉及OpenStack的計(jì)算服務(wù)Nova。在遷移之前需要做好如下配置:① 指定vncserver_listen=0.0.0.0,以保證動(dòng)態(tài)遷移正常工作;② 節(jié)點(diǎn)之間能夠互相執(zhí)行名稱解析;③ 確保Nova和libvirt用戶的UID和GID在各個(gè)節(jié)點(diǎn)之間相同;④ 確??梢悦饷艽a通過SSH實(shí)現(xiàn)節(jié)點(diǎn)的互通[18]。
本節(jié)構(gòu)建了信關(guān)站虛擬化基帶資源池的測試環(huán)境,組建了虛擬化管控平臺,分別測試同時(shí)運(yùn)行1臺、2臺和4臺虛擬機(jī)時(shí),平臺處理器、內(nèi)存和磁盤I/O的性能。虛擬化平臺的配置如下:
① 控制節(jié)點(diǎn):處理器為Intel Core i5-6500,內(nèi)存12 G,雙網(wǎng)卡,ubuntu16.04操作系統(tǒng);
② 計(jì)算節(jié)點(diǎn):處理器為Intel Core i7-4770,內(nèi)存8 G,雙網(wǎng)卡,ubuntu16.04操作系統(tǒng);
③ 虛擬客戶機(jī):vCPU均為1核,內(nèi)存均為1 G,磁盤大小均為20 G,操作系統(tǒng)均為Ubuntu14.04。
本次測試將選取如下性能指標(biāo)做分析:
① 處理器性能損耗:其中real time表示編譯從開始到結(jié)束的總時(shí)間,包括期間其他進(jìn)程所占用的時(shí)間和進(jìn)程被阻塞的時(shí)間;user time表示被測試程序在用戶模式下所占用的CPU時(shí)間,即進(jìn)程執(zhí)行的真正CPU時(shí)間;sys time表示進(jìn)程在內(nèi)核調(diào)用中所占用的CPU時(shí)間。
② 內(nèi)存性能:內(nèi)存的通信帶寬表示內(nèi)存的讀取速度,訪問操作時(shí)延表示存儲數(shù)據(jù)的訪問完成時(shí)產(chǎn)生的延遲,帶寬值越大、延遲越低、內(nèi)存性能就越好。
③ 磁盤IOPS和負(fù)載性能:IOPS指每秒的輸入輸出量或讀寫次數(shù),是衡量磁盤性能的主要指標(biāo)之一;負(fù)載性能是指在某項(xiàng)服務(wù)運(yùn)行時(shí),系統(tǒng)資源的使用情況,能反映出虛擬化平臺在運(yùn)行測試過程中不同負(fù)載情況下的承受能力。
3.1.1 處理器性能損耗測試
虛擬化平臺中分別同時(shí)運(yùn)行1臺、2臺、4臺虛擬客戶機(jī),每個(gè)客戶機(jī)同時(shí)運(yùn)行內(nèi)核編譯使CPU處于密集狀態(tài),觀測虛擬化平臺中內(nèi)存的使用率由36.9%增長到76.6%,CPU的使用率由1.8%增加到24.7%,客戶機(jī)的編譯時(shí)間也逐漸增加。表1為虛擬化平臺同時(shí)運(yùn)行4臺客戶機(jī)編譯所需時(shí)間。
表1 負(fù)載4臺虛擬機(jī)的內(nèi)核編譯時(shí)間Tab.1 Kernel compilation time for 4 virtual machines
由于不同負(fù)載下每臺客戶機(jī)的編譯所需時(shí)間相近,選取VM1的數(shù)據(jù)進(jìn)行對比分析,如圖4所示。每臺虛擬機(jī)均處于CPU密集狀態(tài),隨著負(fù)載數(shù)量增加,客戶機(jī)編譯內(nèi)核的時(shí)間有所增加。對于虛擬機(jī),同時(shí)運(yùn)行4臺虛擬機(jī)比運(yùn)行1臺虛擬機(jī)時(shí)處理器的性能有所下降,對于虛擬化平臺,負(fù)載能力和內(nèi)存及CPU利用率有所提高。
圖4 不同負(fù)載下的VM1編譯時(shí)間Fig.4 VM1 compile time under different loads
3.1.2 內(nèi)存性能測試
選取內(nèi)存測試工具LMbench,基于不同負(fù)載情況的虛擬化平臺做測試,統(tǒng)計(jì)本地通信帶寬、內(nèi)存隨機(jī)訪問操作時(shí)延的數(shù)據(jù)。測試過程中,CPU空閑率從平臺負(fù)載最小時(shí)的約81.6%到平臺負(fù)載最大時(shí)的37.2%,有較大差距,說明在進(jìn)行測試的過程中,負(fù)載的增加對平臺的處理器性能產(chǎn)生較大影響。針對不同的負(fù)載平臺,對本地通信帶寬和操作時(shí)延兩項(xiàng)數(shù)據(jù)進(jìn)行分析,測試結(jié)果如圖5和圖6所示。
圖5 不同負(fù)載下的本地通信帶寬Fig.5 Local communication bandwidth under different loads
圖6 不同負(fù)載下的內(nèi)存隨機(jī)訪問操作時(shí)延Fig.6 Memory random access operation delay under different loads
以VM1為例,隨著負(fù)載的增加,本地通信帶寬呈現(xiàn)下降的趨勢,而操作時(shí)延呈上升趨勢。在高負(fù)載平臺下,多個(gè)虛擬機(jī)同時(shí)進(jìn)行頁面的數(shù)據(jù)更新,相比于低負(fù)載平臺情況產(chǎn)生了更多開銷,出現(xiàn)較大時(shí)延,平臺性能也會下降。
3.1.3 磁盤IO負(fù)載性能測試
在不同負(fù)載情況的虛擬化平臺中,分別以大小為4 kbit,8 kbit,16 kbit,100 kbit,1 Mbit的數(shù)據(jù)塊進(jìn)行讀寫操作,并對IOPS和CPU空閑率這兩項(xiàng)的數(shù)據(jù)做統(tǒng)計(jì)。由于不同負(fù)載下的每臺客戶機(jī)的IOPS相近,故對于VM1基于不同負(fù)載環(huán)境下的IOPS值進(jìn)行統(tǒng)計(jì),如圖7所示。
圖7 不同負(fù)載下磁盤性能指標(biāo)Fig.7 Disk performance index under different loads
隨著虛擬化平臺中負(fù)載的增加,CPU空閑率逐漸降低,說明當(dāng)負(fù)載越高,虛擬化平臺的處理器能力越處于高負(fù)荷狀態(tài)。在相同負(fù)載情況下,單次I/O塊文件越大,存儲每秒主機(jī)訪問次數(shù)就越少,IOPS越小;當(dāng)負(fù)載增加時(shí),出現(xiàn)不同虛擬機(jī)同時(shí)訪問磁盤I/O的情況,從而導(dǎo)致通信阻塞,每個(gè)虛擬機(jī)的存儲主機(jī)訪問次數(shù)降低,IOPS值有不同程度的減小。說明虛擬化平臺中,磁盤性能在一定程度上影響了數(shù)據(jù)讀寫。
本文選取OpenStack作為虛擬基帶資源池的管控平臺,基于NFS共享存儲的動(dòng)態(tài)遷移,分別針對不同配置的客戶機(jī)進(jìn)行動(dòng)態(tài)遷移,分析該管控平臺中動(dòng)態(tài)遷移性能。為減少誤差,如表2所示虛擬機(jī)的配置,分別選取內(nèi)存1 024 Mbit,2 048 Mbit及磁盤容量10 Gbit和20 Gbit的4種類型虛擬機(jī)作為測試樣本,操作系統(tǒng)均為Centos7。針對虛擬機(jī)空閑狀態(tài)和有負(fù)載(CPU使用率95%,內(nèi)存使用率75%)的情況下,動(dòng)態(tài)遷移性能測試。表3和表4是不同情況下的虛擬機(jī)動(dòng)態(tài)遷移過程中對遷移總時(shí)間、宕機(jī)時(shí)間和傳輸數(shù)據(jù)量的統(tǒng)計(jì)。
表2 虛擬機(jī)配置Tab.2 Configuration of virtual machine
表3 空閑態(tài)下的動(dòng)態(tài)遷移數(shù)據(jù)統(tǒng)計(jì)Tab.3 Statistics of dynamic migration data in idle state
表4 負(fù)載情況下的動(dòng)態(tài)遷移數(shù)據(jù)統(tǒng)計(jì)Tab.4 Statistics of dynamic migration data under load
由圖8和圖9可知,虛擬機(jī)的內(nèi)存大小和磁盤容量對遷移總時(shí)間和傳輸數(shù)據(jù)量均有一定的影響,而對于宕機(jī)時(shí)間影響不大。有負(fù)載的情況會導(dǎo)致相同配置的虛擬機(jī)在總遷移時(shí)間、宕機(jī)時(shí)間和傳輸數(shù)據(jù)量上存在較大差異。
圖8 動(dòng)態(tài)遷移總時(shí)間和傳輸數(shù)據(jù)量Fig.8 Total time of dynamic migration and the amount of data transferred
圖9 動(dòng)態(tài)遷移宕機(jī)時(shí)間和傳輸數(shù)據(jù)量Fig.9 Dynamic migration downtime and the amount of data transferred
基于KVM虛擬化技術(shù),對信關(guān)站基帶處理單元虛擬化進(jìn)而構(gòu)建虛擬基帶資源池,可屏蔽物理設(shè)備之間的差異性,提高物理設(shè)備的使用效率。本文針對虛擬基帶資源池的管控,提出基于OpenStack云計(jì)算平臺的管控架構(gòu)設(shè)計(jì),可為信關(guān)站基帶處理單元的實(shí)時(shí)管理和動(dòng)態(tài)調(diào)度提供平臺支撐。通過對虛擬平臺性能測試和管控平臺中動(dòng)態(tài)遷移測試,驗(yàn)證了該方案具有一定的有效性與穩(wěn)定性,從而可以有效降低設(shè)備的能耗和成本費(fèi)用,增強(qiáng)對基帶處理單元資源的靈活管控,本文的工作可為我國衛(wèi)星移動(dòng)通信系統(tǒng)信關(guān)站的建設(shè)提供技術(shù)和方案上的支持。