謝慧 張澎 王魯達
(湘南學院軟件與通信工程學院,湖南 郴州 423000)
虛擬機網(wǎng)絡存儲性能優(yōu)化技術研究
謝慧 張澎 王魯達
(湘南學院軟件與通信工程學院,湖南 郴州 423000)
隨著信息技術的快速發(fā)展以及全球數(shù)據(jù)信息量的暴增,企業(yè)和個人對數(shù)據(jù)存儲的需求空間越來越大。在服務虛擬化環(huán)境下,研究數(shù)據(jù)庫軟件和虛擬機系統(tǒng)相互配合的存儲性能優(yōu)化機制勢在必行。本文從應用程序自身的存儲I/O特征出發(fā),深入研究虛擬化數(shù)據(jù)庫寫操作處理技術、基于數(shù)據(jù)庫事務語義的虛擬化塊設備驅動技術,不斷優(yōu)化和完善虛擬機網(wǎng)絡存儲功能,推動存儲性能優(yōu)化技術進一步發(fā)展。
虛擬機;網(wǎng)絡存儲;性能優(yōu)化技術
當今,云計算、大數(shù)據(jù)技術飛速發(fā)展,為虛擬機網(wǎng)絡存儲性能的優(yōu)化提供了良好的平臺,解決了當前虛擬化環(huán)境中數(shù)據(jù)庫存儲協(xié)議棧的性能瓶頸問題,使虛擬機網(wǎng)絡存儲性能得到了進一步提升。
寫操作存儲模型采用“異步—同步”[1]的方式進行,突顯了兼容的優(yōu)勢,在虛擬機內(nèi)部采用異步方式使數(shù)據(jù)庫系統(tǒng)可以不經(jīng)過任何修改直接運行,同時VMM遵守數(shù)據(jù)庫的寫入語義進行同步處理,避免系統(tǒng)癱瘓時出現(xiàn)語義不一致的想象。
當上層應用程序發(fā)出讀寫請求時,被虛擬機內(nèi)部的塊設備前端驅動接收后會馬上將其發(fā)送給相應的虛擬機塊設備之中,然后產(chǎn)生CPU上下文切換,該I/O請求的后續(xù)處理控制權交由VMM全權處理。
目前,虛擬機內(nèi)部的數(shù)據(jù)庫系統(tǒng)還是采用傳統(tǒng)的異步I/O模式處理用戶的寫入操作,一旦在同一段時間內(nèi)有大量的用戶寫入時,就會在數(shù)據(jù)緩沖區(qū)消耗掉CPU的過多資源,造成不同虛擬機的CPU之間競爭,引發(fā)性能抖動。
在虛擬化環(huán)境下的數(shù)據(jù)庫寫操作存儲模型中,VMM在接收到存儲請求后,直接采用同步的方式與底層的共享存儲設備進行交互。然而,當同步的數(shù)據(jù)較大時,設備就會長期處于繁忙狀態(tài),導致此存儲設備受到其他數(shù)據(jù)庫實例的干擾。
當上級用戶連續(xù)發(fā)出讀寫操作時,CPU上下文切換過程就會反復發(fā)生,導致CPU快表、緩存結構頻繁刷新和填充,造成下一條存儲指令以及相關數(shù)據(jù)的處理時間延長,影響速度。
基于原“異步—同步”數(shù)據(jù)庫寫操作存儲模型存在的問題,提出一種“同步—異步”數(shù)據(jù)庫寫操作存儲新模型,如圖1所示。為了避開繁亂的異步I/O邏輯,對于用戶的寫入操作采用同步的方式在虛擬機內(nèi)部數(shù)據(jù)庫處理,節(jié)約CPU資源。同時,新存儲模型還能提高可靠性,排除臟數(shù)據(jù)在虛擬機的徘徊時間。在VMM層,來自上層虛擬機數(shù)據(jù)庫的同步寫入請求被塊設備后端驅動程序接收后,會將其放在塊級緩存結構中保存,之后向上層傳達完成的信息,再通過異步的模式將這個寫請求移動到最后的存儲位置。可見,數(shù)據(jù)庫的寫入操作由VMM來評斷交互的時機。
圖1 基于“同步—異步”的數(shù)據(jù)庫虛擬化存儲I/O新模型
在技術實現(xiàn)方面:①根據(jù)每個主流數(shù)據(jù)庫系統(tǒng)的配置文件,將虛擬機內(nèi)部的寫操作由異步轉換為同步;②新模型的硬件基礎使用基于相變存儲的存儲級內(nèi)存或多塊固態(tài)盤組成的RAID—O陣列等設備,使加入的緩存結構位于存儲子系統(tǒng)與虛擬機內(nèi)存子系統(tǒng)之間,且在VMM的軟件管轄范圍內(nèi),同時其存儲介質要確保數(shù)據(jù)庫ACID特性,必須要具備非易失特性才可實現(xiàn);③新模型為該緩存結構設計了一套先進先出的算法,保證上層數(shù)據(jù)庫實例的寫入按順序進行;④采用局部設計的辦法,防止繁亂的全局統(tǒng)籌開銷,實現(xiàn)塊級緩存結構在VMM層次內(nèi)高效、簡潔、可靠;⑤在內(nèi)存的分配上,將靜態(tài)的內(nèi)存池技術作為基本分配方式,緩解了內(nèi)存回收和動態(tài)分配造成的分外的CPU消耗問題;⑥采用基于數(shù)據(jù)庫事務語義的虛擬塊設備驅動技術,降低由數(shù)據(jù)庫內(nèi)部同步處理寫操作造成的反復的VMM與虛擬機之間的CPU上下文切換開銷。
當虛擬塊設備前后端驅動處理有關I/O操作交互時,半虛擬和全虛擬的驅動會根據(jù)自身的粒度進行VMM和虛擬機之間的上下文切換[2]。由于一條I/O請求需要多條I/O匯編指令構成,半虛擬塊設備驅動程序在解決繁雜的I/O請求流時能夠適當降低CPU上下文切換的次數(shù),提升系統(tǒng)的性能。根據(jù)此想法,對數(shù)據(jù)庫高級語義的塊設備驅動進行優(yōu)化,設計基于數(shù)據(jù)庫事務語義的塊設備驅動技術。數(shù)據(jù)庫事務最低由一條SQL語句構成,況且一條SQL語句就可以包含多個I/O請求,將I/O請求抽象到數(shù)據(jù)庫語義層次,優(yōu)化虛擬機塊設備驅動的處理單元,降低CPU在處理數(shù)據(jù)庫實例事務時產(chǎn)生的上下文切換次數(shù),使更多的CPU資源用于處理其他用戶的請求操作。
在技術實現(xiàn)方面:①通過重新設置塊設備的前端程序,來獲取數(shù)據(jù)庫事務語義;②優(yōu)化塊設備前后端程序之間的共享媒介,以便能夠準確地傳輸數(shù)據(jù)庫事務;③優(yōu)化塊設備后端驅動來接收數(shù)據(jù)庫事務。修正塊設備后端程序,保證上層的數(shù)據(jù)庫語義順利傳達給后端,同時后端驅動還要轉換接收到的事務元數(shù)據(jù)信息,以便SQL解析器接收并執(zhí)行;④對于軟件結構來說,新模型通過塊設備前后驅動將原有的數(shù)據(jù)庫程序進行分割,減輕VMM的運行壓力。
隨著大數(shù)據(jù)、云計算的普及,越來越多的用戶將自身的數(shù)據(jù)庫系統(tǒng)遷移至云端,為了更安全、便捷地存儲用戶數(shù)據(jù),分析存在的問題,采取有效的優(yōu)化方法,完善虛擬機網(wǎng)絡存儲性能,有效地適應了數(shù)據(jù)庫系統(tǒng)具備的特殊存儲I/O特征。
[1] 孫文波.基于Linux網(wǎng)絡計算機Java虛擬機的性能優(yōu)化經(jīng)驗談[J].無線互聯(lián)科技,2013(1):33.
[2] 李丁丁.虛擬機本地存儲寫性能優(yōu)化研究[D].武漢:華中科技大學,2013.
Researchon Storage Performance Optimization of Virtual Machine Network
Xie HuiZhangPengWang Luda
(School of Software&Communication Engineering,Xiangnan University,Chenzhou Hunan 423000)
With the rapid development of information technology and the explosion of global data informa?tion,the demand for data storage for enterprises and individuals is increasing.In the service virtualization environment,it is imperative to study the storage performance optimization mechanism that matches the data?base software and the virtual machine system.Based on the storage I/O characteristics of the application it?self,this paperstudied the virtualized database write operation processing technology,based on the virtual block device database transaction semantics drive technology,continuous improvement and optimization of the virtual machine network storage function,and promote the storage performance the further development of optimization technology.
virtual machine;network storage;performance optimization technology
TP302
A
1003-5168(2017)11-0041-02
2017-10-03
湖南省教育廳資助科研項目(No.16C1498,16B244,15C1288);郴州市社會科學規(guī)劃立項資助課題(No.czsskl2016027);湖南省自然科學基金項目(No.2017JJ3287)
謝慧(1982-),女,碩士,講師,研究方向:計算機應用與教學。