謝慧 張澎 王魯達
(湘南學院軟件與通信工程學院,湖南 郴州 423000)
虛擬機網絡存儲性能優化技術研究
謝慧 張澎 王魯達
(湘南學院軟件與通信工程學院,湖南 郴州 423000)
隨著信息技術的快速發展以及全球數據信息量的暴增,企業和個人對數據存儲的需求空間越來越大。在服務虛擬化環境下,研究數據庫軟件和虛擬機系統相互配合的存儲性能優化機制勢在必行。本文從應用程序自身的存儲I/O特征出發,深入研究虛擬化數據庫寫操作處理技術、基于數據庫事務語義的虛擬化塊設備驅動技術,不斷優化和完善虛擬機網絡存儲功能,推動存儲性能優化技術進一步發展。
虛擬機;網絡存儲;性能優化技術
當今,云計算、大數據技術飛速發展,為虛擬機網絡存儲性能的優化提供了良好的平臺,解決了當前虛擬化環境中數據庫存儲協議棧的性能瓶頸問題,使虛擬機網絡存儲性能得到了進一步提升。
寫操作存儲模型采用“異步—同步”[1]的方式進行,突顯了兼容的優勢,在虛擬機內部采用異步方式使數據庫系統可以不經過任何修改直接運行,同時VMM遵守數據庫的寫入語義進行同步處理,避免系統癱瘓時出現語義不一致的想象。
當上層應用程序發出讀寫請求時,被虛擬機內部的塊設備前端驅動接收后會馬上將其發送給相應的虛擬機塊設備之中,然后產生CPU上下文切換,該I/O請求的后續處理控制權交由VMM全權處理。
目前,虛擬機內部的數據庫系統還是采用傳統的異步I/O模式處理用戶的寫入操作,一旦在同一段時間內有大量的用戶寫入時,就會在數據緩沖區消耗掉CPU的過多資源,造成不同虛擬機的CPU之間競爭,引發性能抖動。
在虛擬化環境下的數據庫寫操作存儲模型中,VMM在接收到存儲請求后,直接采用同步的方式與底層的共享存儲設備進行交互。然而,當同步的數據較大時,設備就會長期處于繁忙狀態,導致此存儲設備受到其他數據庫實例的干擾。
當上級用戶連續發出讀寫操作時,CPU上下文切換過程就會反復發生,導致CPU快表、緩存結構頻繁刷新和填充,造成下一條存儲指令以及相關數據的處理時間延長,影響速度。
基于原“異步—同步”數據庫寫操作存儲模型存在的問題,提出一種“同步—異步”數據庫寫操作存儲新模型,如圖1所示。為了避開繁亂的異步I/O邏輯,對于用戶的寫入操作采用同步的方式在虛擬機內部數據庫處理,節約CPU資源。同時,新存儲模型還能提高可靠性,排除臟數據在虛擬機的徘徊時間。在VMM層,來自上層虛擬機數據庫的同步寫入請求被塊設備后端驅動程序接收后,會將其放在塊級緩存結構中保存,之后向上層傳達完成的信息,再通過異步的模式將這個寫請求移動到最后的存儲位置。可見,數據庫的寫入操作由VMM來評斷交互的時機。

圖1 基于“同步—異步”的數據庫虛擬化存儲I/O新模型
在技術實現方面:①根據每個主流數據庫系統的配置文件,將虛擬機內部的寫操作由異步轉換為同步;②新模型的硬件基礎使用基于相變存儲的存儲級內存或多塊固態盤組成的RAID—O陣列等設備,使加入的緩存結構位于存儲子系統與虛擬機內存子系統之間,且在VMM的軟件管轄范圍內,同時其存儲介質要確保數據庫ACID特性,必須要具備非易失特性才可實現;③新模型為該緩存結構設計了一套先進先出的算法,保證上層數據庫實例的寫入按順序進行;④采用局部設計的辦法,防止繁亂的全局統籌開銷,實現塊級緩存結構在VMM層次內高效、簡潔、可靠;⑤在內存的分配上,將靜態的內存池技術作為基本分配方式,緩解了內存回收和動態分配造成的分外的CPU消耗問題;⑥采用基于數據庫事務語義的虛擬塊設備驅動技術,降低由數據庫內部同步處理寫操作造成的反復的VMM與虛擬機之間的CPU上下文切換開銷。
當虛擬塊設備前后端驅動處理有關I/O操作交互時,半虛擬和全虛擬的驅動會根據自身的粒度進行VMM和虛擬機之間的上下文切換[2]。由于一條I/O請求需要多條I/O匯編指令構成,半虛擬塊設備驅動程序在解決繁雜的I/O請求流時能夠適當降低CPU上下文切換的次數,提升系統的性能。根據此想法,對數據庫高級語義的塊設備驅動進行優化,設計基于數據庫事務語義的塊設備驅動技術。數據庫事務最低由一條SQL語句構成,況且一條SQL語句就可以包含多個I/O請求,將I/O請求抽象到數據庫語義層次,優化虛擬機塊設備驅動的處理單元,降低CPU在處理數據庫實例事務時產生的上下文切換次數,使更多的CPU資源用于處理其他用戶的請求操作。
在技術實現方面:①通過重新設置塊設備的前端程序,來獲取數據庫事務語義;②優化塊設備前后端程序之間的共享媒介,以便能夠準確地傳輸數據庫事務;③優化塊設備后端驅動來接收數據庫事務。修正塊設備后端程序,保證上層的數據庫語義順利傳達給后端,同時后端驅動還要轉換接收到的事務元數據信息,以便SQL解析器接收并執行;④對于軟件結構來說,新模型通過塊設備前后驅動將原有的數據庫程序進行分割,減輕VMM的運行壓力。
隨著大數據、云計算的普及,越來越多的用戶將自身的數據庫系統遷移至云端,為了更安全、便捷地存儲用戶數據,分析存在的問題,采取有效的優化方法,完善虛擬機網絡存儲性能,有效地適應了數據庫系統具備的特殊存儲I/O特征。
[1] 孫文波.基于Linux網絡計算機Java虛擬機的性能優化經驗談[J].無線互聯科技,2013(1):33.
[2] 李丁丁.虛擬機本地存儲寫性能優化研究[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);郴州市社會科學規劃立項資助課題(No.czsskl2016027);湖南省自然科學基金項目(No.2017JJ3287)
謝慧(1982-),女,碩士,講師,研究方向:計算機應用與教學。