袁 超,岳 敏,馬 濤,茍世哲,王永平,張 瑋
(中國(guó)科學(xué)院 近代物理研究所,甘肅 蘭州 730000)
隨著蘭州重離子加速器(HIRFL)信息化程度的提高,HIRFL數(shù)據(jù)中心內(nèi)服務(wù)器數(shù)量也在近幾年快速增長(zhǎng)。目前HIRFL各類型應(yīng)用程序的運(yùn)行方法是,將每個(gè)應(yīng)用程序都分布到各自專用的服務(wù)器上,在該服務(wù)器上安裝相應(yīng)的操作系統(tǒng),然后運(yùn)行1個(gè)應(yīng)用程序或1組兼容的應(yīng)用程序[1-3]。這種運(yùn)行模式的好處在于,因系統(tǒng)升級(jí)或配置更改而實(shí)行的停機(jī)只會(huì)影響到少數(shù)應(yīng)用程序。
近年來數(shù)據(jù)中心業(yè)務(wù)量越來越多,該方法的弊端逐漸顯現(xiàn)。1) 目前的服務(wù)器都已使用了3~5年,超出了質(zhì)保的時(shí)間,很容易出現(xiàn)硬件故障導(dǎo)致業(yè)務(wù)中斷。為實(shí)現(xiàn)業(yè)務(wù)系統(tǒng)的高可用性,必須使用多個(gè)服務(wù)器。因此會(huì)導(dǎo)致大量的硬件資源和資金浪費(fèi)。2) 當(dāng)數(shù)據(jù)中心需要新增一項(xiàng)業(yè)務(wù)系統(tǒng)時(shí),需要投入大量的人力和財(cái)力來購(gòu)置軟硬件設(shè)備。網(wǎng)絡(luò)交換機(jī)、存儲(chǔ)和服務(wù)器等設(shè)備的不斷擴(kuò)增,給數(shù)據(jù)中心的制冷系統(tǒng)、電力系統(tǒng)造成了嚴(yán)重的壓力。同時(shí)數(shù)據(jù)中心龐大致使硬件上線、升級(jí)、業(yè)務(wù)遷移等工作會(huì)導(dǎo)致長(zhǎng)時(shí)間業(yè)務(wù)中斷。3) 目前HIRFL應(yīng)用程序僅使用物理服務(wù)器所能提供的CPU和內(nèi)存資源的一小部分,平均利用率為5%~10%。服務(wù)器利用率低下而支持?jǐn)?shù)據(jù)中心工作負(fù)載的服務(wù)器數(shù)量眾多,這使得HIRFL數(shù)據(jù)中心基礎(chǔ)結(jié)構(gòu)缺乏可管理性和靈活性,維護(hù)成本居高不下。
根據(jù)以上問題,本文使用Fusion Compute云計(jì)算技術(shù)來實(shí)現(xiàn)數(shù)據(jù)中心服務(wù)器虛擬化平臺(tái)。將數(shù)據(jù)中心的服務(wù)器物理資源抽象成邏輯資源,以便于對(duì)CPU、內(nèi)存、磁盤、I/O等資源進(jìn)行統(tǒng)一調(diào)度和管理。
Fusion Compute是華為公司開發(fā)的一款云操作系統(tǒng)軟件,利用開源的Xen虛擬化技術(shù)以及英特爾和AMD的輔助虛擬化技術(shù),實(shí)現(xiàn)對(duì)硬件資源的虛擬化。同時(shí)可對(duì)虛擬資源、業(yè)務(wù)資源、用戶資源進(jìn)行集中調(diào)度和管理,滿足HIRFL系統(tǒng)關(guān)鍵應(yīng)用高可靠性、高性能和高安全性的需求。
在基礎(chǔ)架構(gòu)層中,F(xiàn)usion Compute采用虛擬計(jì)算、虛擬存儲(chǔ)、虛擬網(wǎng)絡(luò)等技術(shù),完成計(jì)算資源、存儲(chǔ)資源和網(wǎng)絡(luò)資源的虛擬化。其包含的模塊主要有計(jì)算節(jié)點(diǎn)代理(CNA)和虛擬資源管理(VRM)。CNA部署在需要虛擬化的X86服務(wù)器上,主要用于管理計(jì)算節(jié)點(diǎn)上的資源。VRM可作為一個(gè)虛擬機(jī)進(jìn)行部署,也可部署在物理服務(wù)器上,管理集群資源,并對(duì)外提供彈性計(jì)算、存儲(chǔ)、IP等服務(wù),同時(shí)為運(yùn)維人員提供統(tǒng)一的操作維護(hù)管理接口。Fusion Compute在計(jì)算虛擬化上利用GPU直通和GPU軟件虛擬化技術(shù),內(nèi)存氣泡和內(nèi)存交互的復(fù)用策略為用戶提供不斷優(yōu)化的性能體驗(yàn)。存儲(chǔ)虛擬化上利用連接克隆、精簡(jiǎn)配置、存儲(chǔ)遷移技術(shù),異構(gòu)各種廠商設(shè)備,從而有效降低設(shè)備的采購(gòu)成本。網(wǎng)絡(luò)虛擬化上利用VMDQ虛擬機(jī)設(shè)備隊(duì)列技術(shù)和SR-IOV網(wǎng)絡(luò)直通技術(shù),大幅提升虛擬機(jī)的網(wǎng)絡(luò)通信性能。在應(yīng)用程序服務(wù)層,F(xiàn)usion Compute的虛擬機(jī)熱遷移、故障遷移(HA)、熱備份、VLAN隔離等技術(shù),可為HIRFL數(shù)據(jù)庫(kù)應(yīng)用提供最大的安全和穩(wěn)定性保障。

圖1 HIRFL虛擬化平臺(tái)設(shè)備連接圖Fig.1 HIRFL virtualization platform device connection diagram
圖1為HIRFL虛擬化平臺(tái)設(shè)備連接圖,使用2臺(tái)HP ProLiant DL380 gen9服務(wù)器作為CNA節(jié)點(diǎn),CPU為Intel(R) Xeon(R) E5-2620,內(nèi)存32 GB,硬盤600 GB,IP地址分別為10.10.2.116和10.10.2.117。VRM管理節(jié)點(diǎn)采用虛擬機(jī)部署方式,IP地址為10.10.2.118。使用HP 3PAR 7200c存儲(chǔ)存放虛擬機(jī)所有數(shù)據(jù)文件,容量為20 TB,計(jì)算節(jié)點(diǎn)與存儲(chǔ)均劃分在同一個(gè)業(yè)務(wù)VLAN,VLAN號(hào)為4000,二者之間采用FC-SAN方式連接,傳輸速率為8 GB/s。管理網(wǎng)絡(luò)和業(yè)務(wù)網(wǎng)絡(luò)使用同一網(wǎng)段,均使用H3C的S5120交換機(jī)與外部網(wǎng)絡(luò)相連接。
HIRFL數(shù)據(jù)庫(kù)使用的是Oracle 11g[4-6],由于源機(jī)器和目的設(shè)備環(huán)境相同,所以本次遷移采用冷備份的方式,遷移步驟如下:
1) 查看源主機(jī)上HIRFL數(shù)據(jù)庫(kù)控制文件、參數(shù)文件、密碼文件、數(shù)據(jù)文件、聯(lián)機(jī)重做日志文件的文件位置,然后拷貝;
2) 在目標(biāo)虛擬機(jī)上建1個(gè)與源主機(jī)同名的數(shù)據(jù)庫(kù)hirflDB1,裝完數(shù)據(jù)庫(kù)后實(shí)例默認(rèn)為啟動(dòng)狀態(tài),使用shutdown immediate命令關(guān)閉;
3) 復(fù)制源主機(jī)上備份的文件到目標(biāo)虛擬主機(jī)相應(yīng)的目錄,直至此冷備份還原成功,然后啟動(dòng)監(jiān)聽程序,最后啟動(dòng)數(shù)據(jù)庫(kù),更改網(wǎng)絡(luò)配置。
HIRFL數(shù)據(jù)庫(kù)業(yè)務(wù)遷移到虛擬機(jī)后,必須進(jìn)行相應(yīng)的優(yōu)化才能發(fā)揮虛擬機(jī)的最大性能[7-8]。本方案主要從物理主機(jī)和虛擬機(jī)兩個(gè)層面進(jìn)行性能優(yōu)化[9-10]。
物理主機(jī)優(yōu)化主要從CPU和內(nèi)存兩個(gè)方面進(jìn)行。
1) 啟用超線程技術(shù)。Intel超線程技術(shù)能提升處理器核心的指令隊(duì)列工作效率,能為虛擬機(jī)提供之前2倍的虛擬處理器數(shù)量,為hypervisor提供更多的靈活性,因此能提升虛擬服務(wù)器的工作效率。
2) 啟用CPU VT虛擬化技術(shù)。Intel VT-x技術(shù)能從硬件上極大地改善虛擬機(jī)的安全性和性能,降低多個(gè)虛擬機(jī)操作系統(tǒng)之間的資源爭(zhēng)奪和限制,提高虛擬機(jī)的靈活性與穩(wěn)定性。
3) 啟用非統(tǒng)一內(nèi)存訪問(NUMA)。Fusion Compute能使得虛擬機(jī)內(nèi)部程序運(yùn)行時(shí)針對(duì)NUMA結(jié)構(gòu)進(jìn)行優(yōu)化,CPU會(huì)優(yōu)先使用同一節(jié)點(diǎn)上的內(nèi)存,從而可減小內(nèi)存訪問延時(shí)、提高訪問效率,提升Oracle數(shù)據(jù)庫(kù)的應(yīng)用性能。
虛擬機(jī)優(yōu)化主要從以下4個(gè)方面進(jìn)行。
1) 圖2為虛擬機(jī)CPU優(yōu)化界面,本研究為虛擬機(jī)分配8個(gè)vCPU,避免賓客操作系統(tǒng)在內(nèi)核遷移過程中引起CPU過載,同時(shí)啟用NUMA特性,提升CPU對(duì)內(nèi)存的訪問效率。關(guān)閉CPU關(guān)聯(lián)和熱插拔,CPU資源控制中為HIRFL數(shù)據(jù)庫(kù)預(yù)留CPU資源選擇高份額,不限制數(shù)據(jù)庫(kù)虛擬機(jī)占用CPU資源的上限,使其在競(jìng)爭(zhēng)物理CPU時(shí)獲取更多的資源,提升Hypervisor對(duì)物理主機(jī)資源的調(diào)度和分配效率。
2) 為避免各虛擬機(jī)之間內(nèi)存爭(zhēng)用,為數(shù)據(jù)庫(kù)虛擬機(jī)配置32 GB內(nèi)存,同時(shí)內(nèi)存預(yù)留資源選擇高份額,開啟內(nèi)存熱插拔,便于在系統(tǒng)不宕機(jī)的情況下修改內(nèi)存大小。開啟虛擬機(jī)內(nèi)存交互磁盤功能,便于內(nèi)存資源復(fù)用和快速恢復(fù)內(nèi)存數(shù)據(jù)。

圖2 虛擬機(jī)CPU優(yōu)化界面Fig.2 Virtual machine CPU optimization interface
3) 關(guān)閉基本塊存儲(chǔ)設(shè)置,開啟多磁盤I/O性能加速設(shè)置,提升虛擬機(jī)對(duì)磁盤的I/O吞吐性能。
4) 將HIRFL數(shù)據(jù)庫(kù)虛擬機(jī)網(wǎng)卡類型修改為HW_V_NET類型,通過CPU多核并發(fā)能力為虛擬機(jī)提供較高的網(wǎng)絡(luò)帶寬,關(guān)閉填充TCP校驗(yàn)和,降低網(wǎng)絡(luò)延遲。
為驗(yàn)證本文所提出優(yōu)化方案的有效性,源物理主機(jī)和虛擬主機(jī)均采用同一硬件,使用Benchmark Factory數(shù)據(jù)庫(kù)性能測(cè)試工具對(duì)HIRFL數(shù)據(jù)庫(kù)進(jìn)行壓力測(cè)試。用TPC組織發(fā)布的TPC-C作為OLTP的基準(zhǔn)測(cè)試標(biāo)準(zhǔn)。TPC-C主要通過流量指標(biāo)(tpmC)、每秒交易數(shù)(TPS)、平均響應(yīng)時(shí)間來衡量數(shù)據(jù)庫(kù)性能的好壞。流量指標(biāo)是指數(shù)據(jù)庫(kù)系統(tǒng)在執(zhí)行付款、訂單狀態(tài)、發(fā)貨事務(wù)、庫(kù)存查詢這4種交易的同時(shí),每分鐘可處理的新訂單交易的數(shù)量。平均響應(yīng)時(shí)間是指從SQL語(yǔ)句發(fā)出到接收到系統(tǒng)響應(yīng)所消耗的時(shí)間,流量指標(biāo)和每秒處理的交易數(shù)越大,說明數(shù)據(jù)庫(kù)管理系統(tǒng)的性能越好。本文分虛擬機(jī)優(yōu)化前后2個(gè)場(chǎng)景依次對(duì)數(shù)據(jù)庫(kù)進(jìn)行測(cè)試。
1) 虛擬機(jī)優(yōu)化前測(cè)試及結(jié)果
新建數(shù)據(jù)庫(kù)用戶tpc用于本次測(cè)試,并指定默認(rèn)表空間和無(wú)限臨時(shí)表空間以避免出現(xiàn)性能問題。為模擬HIRFL數(shù)據(jù)庫(kù)實(shí)際場(chǎng)景,設(shè)定Benchmark scale參數(shù)為400,在數(shù)據(jù)庫(kù)中創(chuàng)建25.57 GB的測(cè)試數(shù)據(jù)。用戶負(fù)載從100到1 600分16個(gè)循環(huán)測(cè)試,每次測(cè)試持續(xù)30 min,其中前15 min為預(yù)采樣時(shí)間,當(dāng)系統(tǒng)達(dá)到穩(wěn)定狀態(tài)后,開始收集統(tǒng)計(jì)信息。圖3為虛擬機(jī)優(yōu)化前數(shù)據(jù)庫(kù)TPC-C測(cè)試結(jié)果。數(shù)據(jù)庫(kù)遷移到虛擬化平臺(tái)后,隨著用戶負(fù)載的不斷提升,TPS也不斷增長(zhǎng),在用戶負(fù)載為1 300之前,二者呈線性增長(zhǎng)。當(dāng)負(fù)載增加到1 500時(shí),數(shù)據(jù)庫(kù)平均響應(yīng)時(shí)間開始增加,TPS開始降低,因此虛擬化后的數(shù)據(jù)庫(kù)最大用戶負(fù)載為1 400,TPS為73.49。
2) 虛擬機(jī)優(yōu)化后測(cè)試及結(jié)果
圖4為虛擬機(jī)優(yōu)化前后流量指標(biāo)和平均響應(yīng)時(shí)間對(duì)比。用戶負(fù)載從100增加到700的過程中,虛擬機(jī)優(yōu)化前后的流量指標(biāo)基本持平。當(dāng)用戶負(fù)載大于800時(shí),優(yōu)化后的數(shù)據(jù)庫(kù)流量指標(biāo)有了明顯的提升,在用戶負(fù)載為1 400時(shí)達(dá)到最大tpmC為2 209.511 ,相比優(yōu)化前提升了9.80%。通過對(duì)物理主機(jī)和虛擬主機(jī)的全面優(yōu)化,HIRFL數(shù)據(jù)庫(kù)的平均響應(yīng)時(shí)間有了顯著降低。當(dāng)數(shù)據(jù)庫(kù)達(dá)到最大用戶負(fù)載1 400時(shí),系統(tǒng)的平均響應(yīng)時(shí)間為0.124 s,優(yōu)化后降為0.034 s,降低了約72.58%。表1為虛擬機(jī)優(yōu)化前后TPC-C測(cè)試數(shù)據(jù)對(duì)比。可看到,數(shù)據(jù)庫(kù)的最大每秒交易數(shù)在經(jīng)過優(yōu)化后提升了11.3%,說明本文提出的優(yōu)化方案具有可行性和有效性。

圖3 虛擬機(jī)優(yōu)化前數(shù)據(jù)庫(kù)TPC-C性能結(jié)果Fig.3 Performance results of database before virtual machine optimization

圖4 虛擬機(jī)優(yōu)化前后數(shù)據(jù)庫(kù)性能對(duì)比Fig.4 Performance comparison of database before and after virtual machine optimization
虛擬化技術(shù)在HIRFL上已得到廣泛的應(yīng)用。作為HIRFL數(shù)據(jù)中心向虛擬化集群模式遷移的一部分,本文以華為Fusion Compute虛擬化平臺(tái)為基礎(chǔ),構(gòu)建了HIRFL數(shù)據(jù)庫(kù)業(yè)務(wù)的遷移方案和優(yōu)化方案。實(shí)驗(yàn)表明,本文提出的方案具有有效性和可行性,有利于提升加速器運(yùn)維人員的工作效率,提高了HIRFL數(shù)據(jù)庫(kù)的穩(wěn)定性和安全性。下一步的工作內(nèi)容主要是依托Benchmark Factory的混合測(cè)試模塊,進(jìn)一步優(yōu)化HIRFL數(shù)據(jù)庫(kù)內(nèi)部結(jié)構(gòu),以滿足HIRFL大數(shù)據(jù)量實(shí)時(shí)存取的需求。

表1 虛擬機(jī)優(yōu)化前后TPC-C測(cè)試數(shù)據(jù)對(duì)比結(jié)果Table 1 Comparison of TPC-C test data before and after virtual machine optimization