王競爭
摘 要:隨著國家網絡信息體系的不斷建設,云計算及相關領域的技術發(fā)展迅速。通過虛擬化技術將計算、存儲、網絡等資源抽象成計算資源池、網絡資源池和存儲資源池,并將這些資源池進行統一劃分和管理,為用戶提供虛擬資源及虛擬服務能力。在X86體系架構中云平臺已較為普及,基于國產申威架構的云計算資源管理技術目前還未出現,本文通過適配優(yōu)化了基于申威架構的國產化設備與操作系統,成功研發(fā)了基于申威架構的云資源管理平臺,并在此平臺上進行了大規(guī)模應用測試,驗證了本技術方案的可行性。
關鍵詞:申威架構;虛擬化;云計算資源管理
中圖分類號:TP311.52 文獻標識碼:A 文章編號:1001-5922(2021)04-0082-05
Abstract:With the continuous construction of the national network information system, cloud computing and related fields have developed rapidly. Through virtualization technology, computing, storage, network resources are abstracted into computing resource pool, network resource pool and storage resource pool. These resource pools are divided and managed uniformly to provide users with virtual resources and virtual service capabilities. In x86 architecture, cloud platform has become more popular, and cloud computing resource management technology based on domestic Shenwei architecture has not yet appeared. In this paper, we optimized the domestic equipment and operating system based on Shenwei architecture, successfully developed the cloud resource management platform based on Shenwei architecture, and carried out large-scale application test on this platform to verify the feasibility of the technical scheme.
Key words:Shenwei architecture; virtualization; cloud computing resource management
近年來,國產CPU架構服務器蓬勃發(fā)展,出現了基于ARM架構、MIPS架構、ALPHA架構等多種架構、多種型號的服務器。而且,國產服務器的性能也在不斷提升,逐漸能夠滿足復雜的應用模式,大規(guī)模業(yè)務服務遷移到國產服務器成為了可能。另一方面,基于國產服務器的應用生態(tài)也不斷完善,從操作系統、數據庫、消息中間件到web中間件,已經初步具備業(yè)務部署的基礎環(huán)境。國內涌現了大量的廠商在支持基于國產服務器的生態(tài)建設,如深度、普華、達夢、金倉、金蝶等。與此同時,云計算技術改變了傳統的應用部署模式,云的模式不僅大大提高了資源的利用率,還給業(yè)務系統帶來了彈性和高可用能力,業(yè)務系統的抗毀能力和自動運維的能力大大增強,傳統應用逐漸從云下遷移到云上。自主性和安全性逐漸被認可為云計算平臺的兩大核心能力,基于國產服務器的云平臺能夠很好的滿足這兩個核心能力,目前對安全要求較高的業(yè)務應用逐漸遷移到國產云上。因此,本研究嘗試將構建基于國產申威服務器的云計算資源管理平臺,并對該平臺進行詳細設計與測試。
1 關鍵技術
1.1 申威架構簡介
申威處理器的研制受到國家重大專項支持,采用自主Alpha指令集,且具有完全的自主知識產權。以形成包含嵌入式、桌面處理器、計算處理器等在內的多種產品線。申威在超算領域成績優(yōu)異。申威26010處理器的浮點性能可達3.168TFLOPS,性能和英特爾的14nm工藝72核XeonPhi2(2015年年末Intel新推出的版本)類似。2016年6月,在第47屆世界超級計算機大會上公布的最新TOP500排名中,中國國產“神威·太湖之光”超級計算機成為新的世界冠軍并連續(xù)4屆蟬聯冠軍,“神威·太湖之光”超級計算機使用的處理器正是申威26010。2018年6月,美國憑借IBM、NVIDIA聯合研發(fā)的Summit超算成功奪回TOP500超算第一。目前國內有三套百億億次超算——天河3號、神威E級及中科曙光,其中神威E級的原型機今年已經安裝在濟南超算中心并通過驗收,使用的處理器是新一代申威26010+,是申威26010的升級版。在超算上取得成功后,SW開始把服務器作為發(fā)力的方向,2019年會有SW3231問世,2020年SW3232會問世,比PPT上的規(guī)劃時間晚一年。就單核性能來說,SW3232采用14/16nm工藝,并且有極大概率單核性能達到25分(SPECint2006),多核性能600+是起步水平,實際性能會明顯高于這個水平。SW3232在單核與多核性能上著實不俗,申威用實踐證明,獨立自主與CPU高性能可以兼得,沒必要一定依附于X86和ARM,中國人自主定義指令集完全走的通。
1.2 云計算資源管理技術
云計算是一種按需使用資源的模式,可以通過簡單的配置或自助服務就可以便捷的獲取到計算、存儲、網絡資源。如何將計算、存儲、網絡資源池化,如何動態(tài)的調度用戶的資源需求,如何提供穩(wěn)定高效的服務是云計算平臺要解決的關鍵問題。其中涉及到大量的技術棧,從底層到上層分別是服務器整機、CPU、RAID、操作系統、內核、虛擬化軟件、管理調度軟件等。
云計算資源管理技術通過認證管理、計算資源管理、網絡資源管理、鏡像管理、存儲資源管理等組件實現對基礎虛擬資源的統一調度管理。認證管理組件為其他組件提供認證服務,保障集群的認證管理功能;計算資源管理組件提供部署和計算能力;網絡資源管理組件保障云平臺內的網絡功能;鏡像管理組件提供鏡像服務;存儲資源管理組件為虛擬機提供云硬盤存儲功能,保障云平臺存儲功能。通過云計算資源管理技術,實現對物理資源虛擬化并合理調度管理虛擬資源的能力。
2 基于申威處理器的云計算資源管理平臺設計
2.1 CPU架構差異處理
申威服務器采用Alpha架構,指令集體系結構、內部寄存器、地址空間布局、中斷和異常處理機制等,均與X86存在較大差異。為解決該設計問題,采用云平臺標準化協議,打通操作系統和服務器以及云平臺直接的接口關系,對指令調用場景進行了深度定制,使得內核支持申威CPU架構,并把這些CPU架構的區(qū)別屏蔽在操作系統底層,使內核其他部分及應用程序在申威架構的CPU上都能成功執(zhí)行,確保操作系統中硬件無關部分能夠通過統一的接口訪問不同硬件平臺提供的資源和服務,確保用戶使用的透明性。針對CPU架構相關的內核模塊代碼,將申威架構獨立的內核模塊放在獨立的內核目錄下,該目錄下不存在其他架構的代碼,其他架構的內核編譯時不會編譯該目錄下的代碼模塊。針對CPU架構無關內核模塊(其中有些代碼可能由于CPU架構的不同而存在不同的實現方式)的CPU架構相關代碼,相關CPU架構的代碼必須用該CPU架構特定的內核編譯選項進行編譯預處理,以使當編譯其他架構的代碼時不會編譯本CPU架構的特定代碼,以此實現申威CPU架構內核模塊處理的特殊處理,并且為以后不同架構統一內核提供便利。
2.2 平臺整體架構設計
基于國產申威處理器上實現的云計算資源管理平臺包括認證管理服務、云計算資源管理控制服務、計算資源調度服務、網絡資源調度服務、存儲資源調度服務、鏡像資源調度服務等部分。認證管理服務為云計算資源管理平臺的組件提供用戶認證、權限控制和訪問策略服務;云計算資源管理控制服務是云計算資源管理平臺的調度控制角色,主要處理消息認證、資源管理和資源調度任務,為計算、存儲、網絡、鏡像等資源提供控制服務;計算資源調度服務提供裸金屬、虛擬機生命周期管理;網絡資源調度服務提供虛擬資源的網絡全生命周期管理能力;存儲資源調度服務提供云硬盤全生命周期管理能力;鏡像資源調度服務提供虛擬機鏡像全生命周期管理能力。具體結構如圖1所示。
3 各步驟具體實現設計
3.1 資源認證
用戶發(fā)出資源請求通過接口向認證管理服務獲取認證信息,認證管理服務通過用戶請求認證信息,并生成令牌返回給對應的認證請求,用戶訪問攜帶令牌便可向云計算資源管理控制服務發(fā)送資源調度請求,云計算資源管理控制服務接受請求后向認證管理服務發(fā)送認證請求,驗證令牌有效性,通過認證后在云計算資源管理控制服務進行數據庫通訊,查詢資源并獲取調度資源信息發(fā)送到消息隊列進行申威處理器上的資源調度工作。
3.2 資源調度
計算資源調度服務通過消息隊列拿到令牌和資源調度信息便會發(fā)送資源調度請求到鏡像資源調度服務、存儲資源調度服務、網絡資源調度服務等部分,鏡像、存儲、網絡資源調度服務各自調度可用資源返回到計算資源調度服務。針對申威CPU編寫資源調度服務組件源碼,開發(fā)驅動,封裝打包安裝文件、注冊數據庫并創(chuàng)建配置文件,代碼層面識別申威架構信息,根據申威虛擬化特性進行對應的特殊化處理,以滿足申威虛擬化實現邏輯。在這個過程中需要針對申威處理器對底層計算資源調度服務組件做專門處理,面向提供硬件輔助虛擬化能力的申威CPU,借助KVM虛擬化監(jiān)視器進行管控,KVM虛擬化監(jiān)視器是內核級虛擬機技術的核心,運行在操作系統內核層,擁有最高的特權級。在提供硬件輔助虛擬化能力的國產CPU平臺上,通過改造并復用操作系統內核的任務調度、內存管理、中斷管理、時鐘管理等模塊,使虛擬機監(jiān)視器控制、管理、隔離運行在操作系統用戶空間的虛擬機進程。
3.3 資源創(chuàng)建
各資源調度服務根據用戶請求調用的資源配置信息通過虛擬化驅動進行資源創(chuàng)建,要在國產申威處理器上運行計算服務創(chuàng)建資源需要對接底層內核上的libvirt組件,通過libvirt再調用KVM實現虛擬化。KVM虛擬機libvirt組件是一系列庫函數,提供給其他技術架構調用,幫助管理機器上的虛擬機。libvirt采用面向驅動的架構設計,提供多種語言的編程接口,可調用libvirt提供的對外接口實現虛擬機操作。申威KVM虛擬機是一款國產全功能虛擬機,在宿主機的支持下可運行獨立的操作系統,具備虛擬磁盤、虛擬網絡、虛擬顯示和直連部分PCI設備的能力,但由于基于申威的KVM實現方式及相應的組件針對CPU架構有特殊的參數配置,需要對計算資源管理組件中創(chuàng)建虛擬機相關的網絡、磁盤等驅動調用命令參數配置進行匹配,宿主機內核需要加入KVM相關功能,同時對KVM模塊針對申威系列CPU進行適配,主要匹配硬件相關代碼,對應申威處理器中PCI-E接口部件和集中控制部件的配置。以此在申威平臺之上實現KVM虛擬化運行環(huán)境。另外申威KVM虛擬機本身缺少云計算資源管理平臺組件中的部分虛擬化能力,本文針對計算、存儲、網絡調度服務所涉及的相關內核模塊通過反復試驗驗證提出內核模塊增強和優(yōu)化的解決方案,以便基于申威CPU定制虛擬化內核,支持云計算資源管理平臺的云計算服務能力。
3.4 資源管理
申威處理器上的云計算資源管理同樣需要通過虛擬化驅動實現,針對申威處理器上的虛擬化驅動組件,適配依賴包、內核模塊、業(yè)務邏輯等內容以識別申威架構,使得計算資源調度服務、存儲資源調度服務、網絡資源調度服務、鏡像資源調度服務等服務正常運行,支持裸金屬服務器創(chuàng)建、刪除、啟動、關閉、重啟等,支持虛擬機的創(chuàng)建、編輯、創(chuàng)建快照、啟動、關閉、掛起、恢復、暫停、恢復暫停、重啟、綁定公網IP、解綁公網IP、連接網絡、斷開網絡、編輯安全組、監(jiān)控等,支持網絡的創(chuàng)建、刪除、編輯、創(chuàng)建子網、編輯子網、刪除子網等,支持云硬盤創(chuàng)建、刪除、編輯等,支持鏡像的創(chuàng)建、刪除、編輯等。
4 實驗驗證
基于申威架構的國產云平臺計算資源管理、網絡資源管理和存儲資源管理等功能,能夠正常工作,通過國產云平臺自助申請?zhí)摂M機,對虛擬機測試結果如下:
4.1 CPU測試
SpecCPU2006主要用于測量和對比浮點性能。本文通過該測試工具,得到表1不同場景應用下的處理器性能測試結果。
4.2 內存測試
STREAM是一套綜合性能測試程序集,通過fortran和C兩種高級且高效的語言編寫完成,由于這兩種語言在數學計算方面的高效率,使得STREAM測試例程可以充分發(fā)揮出內存的能力。STREAM測試得到的是可持續(xù)運行的內存帶寬最大值,而并不是一般的硬件廠商提供的理論最大值。虛擬機的內存速度相比宿主機,性能損失情況見表2所示。
4.3 硬盤測試
iozone是一個文件系統的基準程序,可以用來模擬多種不同的硬盤訪問模式。IOzone的配置非常豐富,所以可以比較準確的模擬特定負載。通過使用不同的塊大小,IOzone可以寫一個或多個不同大小的文件。單線程(數據單位為kBytes/sec)測試結果如下:
4.4 綜合測試
UnixBench是linux、unix平臺測試系統基準性能的經典工具,可以根據多項參數最后給你一個最后得分。UnixBench測試系統CPU運算能力,包含了系統調用、讀寫、進程、2D、3D、管道、運算、C庫等系統基準性能,它的優(yōu)點在于提供了對系統性能的一種評價體系,為系統評分,方便對系統作對比測試。虛擬機的Unixbench綜合情況相比宿主機,情況如下:
從以上測試結果分析,基于申威的虛擬機和物理機相比,CPU平均性能下降約為20%。虛擬機的內存性能與宿主機基本一致,磁盤讀的性能基本與物理機一致,寫的性能較差。
5 結語
綜合來看,首次實現國產申威架構處理器上云計算資源管理技術的應用,針對申威架構的特殊性通過源碼定制、配置優(yōu)化、虛擬化指令適配等關鍵技術實現了申威處理器虛擬化的技術突破,成功對接特權指令固件、kvm虛擬化內核、虛擬機管理工具、客戶端管理界面等底層虛擬化核心組件,實現云計算資源管理技術在國產申威平臺上的應用,自主可控率可達100%,促進了云平臺技術在國產架構的發(fā)展,為國產云平臺生態(tài)建設奠定基礎。
參考文獻
[1]洪文杰. 基于申威處理器的PETSc異構并行算法設計和研究[D].長沙:湖南大學,2018.
[2]賈迅,胡向東,尹飛.申威處理器硬件數據預取技術的實現[J].計算機工程與科學,2015,37(11):2013-2017.
[3]池亞平,李欣,王艷,等.基于KVM的可信虛擬化平臺設計與實現[J].計算機工程與設計,2016,37(06):1451-1455.
[4]劉芳芳,楊超,袁欣輝,等.面向國產申威26010眾核處理器的SpMV實現與優(yōu)化[J].軟件學報,2018,29(12):3921-3932.
[5]王武,王舒揚,姜金榮,等.快速多極子方法在申威眾核處理器上的實現和優(yōu)化[J].計算機工程與科學,2019,41(07):1161-1167.
[6]劉侃,王欣亮,許平,等.申威眾核處理器上的三對角并行求解器[J].計算機科學與探索,2019,13(10):1654-1663.
[7]張江,賈玉潔,張曉宇.云計算環(huán)境下的內核虛擬機技術安全研究[J].計算機與網絡,2017,43(04):72-75.
[8]趙美婷,劉軼,劉銳,等.基于申威眾核處理器的HOG特征提取算法并行加速[J].計算機工程與科學,2017,39(04):611-618.
[9]高巖,林軍,云龍,等.云計算主機內核虛擬化技術框架及其性能分析[J].計算機系統應用,2017,26(08):278-283.
[10]李舟軍,沈東,蘇曉菁,等.基于ARM虛擬化擴展的安全防護技術[J].軟件學報,2017,28(09):2229-2247.
[11]劉垚,鄭琳,鄭凱,等.基于申威眾核處理器的NSGA-Ⅱ并行和優(yōu)化方法[J].計算機應用研究,2020,37(01):96-101.