冀 鳴 朱 江 曹 雄 楊志成
?
基于云計(jì)算的存儲(chǔ)虛擬化技術(shù)研究
冀 鳴 朱 江 曹 雄 楊志成
(廣東凱通科技股份有限公司 廣東 510000)
隨著信息技術(shù)的發(fā)展,云計(jì)算技術(shù)已經(jīng)成為當(dāng)今國(guó)內(nèi)外開發(fā)與研究的重點(diǎn)方向。基于云計(jì)算的虛擬化技術(shù)主要包括服務(wù)虛擬化、存儲(chǔ)虛擬化、應(yīng)用虛擬化、桌面虛擬化。對(duì)云計(jì)算下的存儲(chǔ)虛擬化技術(shù)的研究有利于更加合理地分配存儲(chǔ)資源,促進(jìn)云計(jì)算技術(shù)的研究發(fā)展。本文首先介紹了云計(jì)算的概念以及主要技術(shù)要點(diǎn),并結(jié)合云計(jì)算虛擬化技術(shù)對(duì)的存儲(chǔ)虛擬化的實(shí)現(xiàn)方式進(jìn)行分析,最后分析實(shí)現(xiàn)存儲(chǔ)虛擬化的關(guān)鍵技術(shù)及一些解決方法。
云計(jì)算;虛擬化;存儲(chǔ)虛擬化
隨著信息技術(shù)的發(fā)展,特別是大數(shù)據(jù)時(shí)代的到來,數(shù)據(jù)快速增長(zhǎng)對(duì)業(yè)務(wù)和應(yīng)用的要求不斷提高,IT系統(tǒng)規(guī)模日益龐大。而現(xiàn)有的服務(wù)器和存儲(chǔ)系統(tǒng)等設(shè)備都沒有被充分利用,采用的技術(shù)和基礎(chǔ)架構(gòu)不統(tǒng)一,造成系統(tǒng)資源不能有效適應(yīng)業(yè)務(wù)要求。針對(duì)這一現(xiàn)狀,云計(jì)算技術(shù)應(yīng)運(yùn)而生。
云計(jì)算將網(wǎng)絡(luò)中的硬件設(shè)施、軟件技術(shù)和計(jì)算機(jī)網(wǎng)絡(luò)應(yīng)用服務(wù)等各種資源整合成一個(gè)大的資源池,并以新的計(jì)算模式和方法,對(duì)用戶提供按需定制服務(wù),包括基礎(chǔ)設(shè)施服務(wù)、軟件服務(wù)、應(yīng)用服務(wù)。云計(jì)算的出現(xiàn),改變了傳統(tǒng)信息服務(wù)的提供方式,其資源可以無線擴(kuò)張,并及時(shí)獲取,按需使用,具有很大研究?jī)r(jià)值和商業(yè)價(jià)值。在云計(jì)算中,研究重點(diǎn)就是計(jì)算機(jī)的虛擬化,虛擬化技術(shù)是將各種計(jì)算及存儲(chǔ)資源充分整合和高效利用的關(guān)鍵技術(shù),通過虛擬化技術(shù)可以實(shí)現(xiàn)資源的虛擬計(jì)算[5][7]。
虛擬化技術(shù)是云計(jì)算的基礎(chǔ),是一種將各種計(jì)算及存儲(chǔ)資源整合后有效分配利用的方法。虛擬化技術(shù)將各種資源包括硬件、軟件、數(shù)據(jù)、網(wǎng)絡(luò)、存儲(chǔ)等統(tǒng)一抽象成虛擬資源。進(jìn)行虛擬化后的資源,可以實(shí)現(xiàn)容量擴(kuò)展和縮小、軟件配置簡(jiǎn)單以及架構(gòu)動(dòng)態(tài)化,并能集中管理和動(dòng)態(tài)使用物理資源及虛擬資源,從而提高系統(tǒng)結(jié)構(gòu)的彈性和靈活性[3]。
云環(huán)境中的虛擬化技術(shù)主要有服務(wù)器虛擬化、存儲(chǔ)虛擬化、應(yīng)用虛擬化和桌面虛擬化,不同種類的虛擬化技術(shù)從不同的角度解決不同的系統(tǒng)性能問題。在數(shù)據(jù)量快速增長(zhǎng)的今天,特別是在云環(huán)境下,存儲(chǔ)設(shè)備及數(shù)據(jù)存儲(chǔ)方式的多樣性,為了進(jìn)一步提高數(shù)據(jù)存儲(chǔ)系統(tǒng)的性能以保障數(shù)據(jù)的安全性和完整性,需要對(duì)存儲(chǔ)虛擬化技術(shù)的研究做進(jìn)一步加深。
云計(jì)算環(huán)境下的存儲(chǔ)虛擬化是把多個(gè)存儲(chǔ)介質(zhì)模塊通過虛擬化技術(shù)集中管理起來,將所有存儲(chǔ)模塊集中在一個(gè)存儲(chǔ)池中進(jìn)行統(tǒng)一管理,從而實(shí)現(xiàn)對(duì)同構(gòu)或異構(gòu)的多個(gè)存儲(chǔ)設(shè)備的統(tǒng)一管理存儲(chǔ)系統(tǒng),并能將存儲(chǔ)器的物理管理與邏輯管理進(jìn)行分離,達(dá)到存儲(chǔ)器的透明化訪問[6]。
在存儲(chǔ)虛擬化的實(shí)現(xiàn)上,可分為兩種方式:帶內(nèi)虛擬化和帶外虛擬化??稍谌齻€(gè)層次上實(shí)現(xiàn),分別為基于主機(jī)的存儲(chǔ)虛擬化、基于存儲(chǔ)設(shè)備的存儲(chǔ)虛擬化、基于網(wǎng)絡(luò)的存儲(chǔ)虛擬化。最終可實(shí)現(xiàn)的結(jié)果為:塊虛擬化、磁盤虛擬化、文件系統(tǒng)虛擬化、文件或記錄虛擬化和磁帶、磁帶驅(qū)動(dòng)器虛擬化。
圖1為云計(jì)算環(huán)境下存儲(chǔ)虛擬化的實(shí)現(xiàn)模式。
圖 1云計(jì)算環(huán)境下存儲(chǔ)虛擬化實(shí)現(xiàn)模式
云計(jì)算環(huán)境下的存儲(chǔ)虛擬化技術(shù)的特點(diǎn)包括以下三點(diǎn):
(1)管理集中化。云環(huán)境下的存儲(chǔ)虛擬化通過存儲(chǔ)軟件集中管理,既能簡(jiǎn)化管理操作又能提高存儲(chǔ)效率。
(2)通用性。云環(huán)境下的存儲(chǔ)虛擬化技術(shù)打破了各個(gè)存儲(chǔ)設(shè)備廠商之間的界線,用戶有更多的產(chǎn)品可以選擇。
(3)透明性。云計(jì)算環(huán)境下的存儲(chǔ)虛擬化技術(shù)將各種異構(gòu)存儲(chǔ)設(shè)備整合成統(tǒng)一資源池,使得用戶在使用存儲(chǔ)產(chǎn)品過程中無需太多考慮存儲(chǔ)容量等問題,虛擬化使得用戶的存儲(chǔ)空間可以動(dòng)態(tài)伸縮,提供了近乎于無限的存儲(chǔ)空間。
由于存儲(chǔ)設(shè)備的種類很多,不同設(shè)備使用方法不同,存儲(chǔ)數(shù)據(jù)的方式也有較大的差異,所以要高效的管理這些設(shè)備比較困難。而虛擬化技術(shù)剛好為解決存儲(chǔ)設(shè)備管理效率問題提供了一種有效的方案,通過虛擬化技術(shù)將各種異構(gòu)的存儲(chǔ)資源整合在一起,采用Striping、LUN Masking等技術(shù)對(duì)存儲(chǔ)資源池進(jìn)行操作,實(shí)現(xiàn)存儲(chǔ)池動(dòng)態(tài)增長(zhǎng)和按需分配,使存儲(chǔ)系統(tǒng)具備更好的兼容性、擴(kuò)展性和可靠性。
存儲(chǔ)虛擬化技術(shù)按照實(shí)現(xiàn)的原理可以分為三個(gè)層次,分別是:基于主機(jī)的存儲(chǔ)虛擬化、基于存儲(chǔ)設(shè)備的存儲(chǔ)虛擬化、基于網(wǎng)絡(luò)的存儲(chǔ)虛擬化[4]。
2.1 基于主機(jī)的存儲(chǔ)虛擬化
基于主機(jī)的存儲(chǔ)虛擬化是通過在服務(wù)器操作系統(tǒng)中安裝存儲(chǔ)虛擬化軟件來實(shí)現(xiàn)的,一般由服務(wù)器操作系統(tǒng)中的邏輯卷管理器(LVM)軟件完成,通過邏輯卷把分布在多機(jī)上的物理存儲(chǔ)設(shè)備映射成一個(gè)統(tǒng)一的邏輯虛擬存儲(chǔ)空間,可實(shí)現(xiàn)系統(tǒng)級(jí)和應(yīng)用級(jí)的多機(jī)間存儲(chǔ)共享。邏輯卷管理系統(tǒng)實(shí)際上是一個(gè)從物理存儲(chǔ)設(shè)備映射到邏輯卷的虛擬化存儲(chǔ)管理層,服務(wù)器只需要處理邏輯卷,而不需要直接去控制管理這些獨(dú)立的物理存儲(chǔ)設(shè)備。
圖2基于主機(jī)的存儲(chǔ)虛擬化
一種云計(jì)算環(huán)境下基于主機(jī)的存儲(chǔ)虛擬化結(jié)構(gòu)如圖2所示。
基于主機(jī)的存儲(chǔ)虛擬化只需在應(yīng)用服務(wù)器端安裝卷管理驅(qū)動(dòng)模塊就可以完成存儲(chǔ)虛擬化的過程,不需要任何附加硬件,使這種存儲(chǔ)虛擬化技術(shù)具有容易實(shí)現(xiàn)、設(shè)備成本低、同構(gòu)平臺(tái)下性能高等特點(diǎn)。
但是它也有缺點(diǎn):(1)安裝存儲(chǔ)虛擬化軟件會(huì)給操作系統(tǒng)帶來一定的開銷,降低應(yīng)用性能;(2)升級(jí)、維護(hù)和擴(kuò)展非常復(fù)雜,而且容易造成系統(tǒng)不穩(wěn)定;(3)對(duì)操作系統(tǒng)的依賴性較大,使得虛擬化系統(tǒng)不能兼容不同的平臺(tái),移植性較差。
2.2 基于存儲(chǔ)設(shè)備的存儲(chǔ)虛擬化
基于存儲(chǔ)設(shè)備的存儲(chǔ)虛擬化是在存儲(chǔ)控制器上添加虛擬化功能,通過特定的算法或者映射表把邏輯存儲(chǔ)單元映射到物理設(shè)備之上,將不同的存儲(chǔ)系統(tǒng)融合在一起,形成基于存儲(chǔ)設(shè)備控制器的存儲(chǔ)虛擬化應(yīng)用平臺(tái)。典型的例子是在智能磁盤子系統(tǒng)中的塊級(jí)虛擬化,通過采用邏輯單元號(hào)掩蓋和各樣的I/O通道向多個(gè)服務(wù)器提供存儲(chǔ)功能。
通過存儲(chǔ)設(shè)備控制器上存儲(chǔ)虛擬化平臺(tái)可以在存儲(chǔ)系統(tǒng)不停機(jī)的情況下,實(shí)現(xiàn)存儲(chǔ)資源池的遷移,并且可以在不同類型存儲(chǔ)設(shè)備之間進(jìn)行數(shù)據(jù)復(fù)制,使用戶在數(shù)據(jù)管理方面更簡(jiǎn)單透明。通常的企業(yè)級(jí)存儲(chǔ)陣列通過RAID和鏡像提供低級(jí)虛擬化,有些產(chǎn)品也支持高級(jí)功能,可以實(shí)現(xiàn)對(duì)服務(wù)器完全透明,并且無需在服務(wù)器上面安裝任何代理軟件。
一種云計(jì)算環(huán)境下基于存儲(chǔ)設(shè)備的存儲(chǔ)虛擬化結(jié)構(gòu)如圖3所示。
圖 3基于存儲(chǔ)設(shè)備的存儲(chǔ)虛擬化
由于這種虛擬化技術(shù)沒有統(tǒng)一標(biāo)準(zhǔn),一般只適用于特定廠商的產(chǎn)品,不同廠商的數(shù)據(jù)管理功能不能互相操作,使得異構(gòu)產(chǎn)品間很難實(shí)現(xiàn)存儲(chǔ)級(jí)聯(lián),所以這種存儲(chǔ)虛擬化產(chǎn)品的可擴(kuò)展性比較差,近期也有一些研究成果采用基于目錄的虛擬化方式[1]來克服這些不足。
2.3 基于網(wǎng)絡(luò)的存儲(chǔ)虛擬化
基于網(wǎng)絡(luò)的存儲(chǔ)虛擬化是在網(wǎng)絡(luò)層添加虛擬化管理設(shè)備,抽象化服務(wù)器與存儲(chǔ)陣列之間的實(shí)際存儲(chǔ)資源,使用得服務(wù)器可以靈活高效的使用共享存儲(chǔ)資源。比較典型的網(wǎng)絡(luò)虛擬存儲(chǔ)技術(shù)包括網(wǎng)絡(luò)附加存儲(chǔ)NAS(Network Attached Storage)和存儲(chǔ)區(qū)域網(wǎng)絡(luò)SAN(Storage Area Network)?;诰W(wǎng)路的虛擬存儲(chǔ)化技術(shù)是當(dāng)前存儲(chǔ)虛擬化的主流技術(shù),是實(shí)現(xiàn)虛擬存儲(chǔ)中最具有邏輯含義的部分,被認(rèn)為是存儲(chǔ)虛擬化中最為“開放”的虛擬化。近年來各家存儲(chǔ)廠商都研發(fā)了各自的基于網(wǎng)絡(luò)的存儲(chǔ)虛擬化設(shè)備[8][9]。
在實(shí)現(xiàn)上主要有三種方式:第一種是基于互聯(lián)設(shè)備的虛擬化,分為對(duì)稱虛擬化結(jié)構(gòu)和非對(duì)稱虛擬化結(jié)構(gòu);第二種是基于交換機(jī)的虛擬化,將虛擬化功能模塊嵌入到交換機(jī)固件中或者運(yùn)行在于交換機(jī)相連的主機(jī)上,對(duì)與交換機(jī)相連的存儲(chǔ)設(shè)備進(jìn)行管理;第三種是,基于路由器的虛擬化,通過將虛擬化功能模塊嵌入到路由器固件上,實(shí)現(xiàn)虛擬化。
圖 4基于網(wǎng)絡(luò)的存儲(chǔ)虛擬化
一種云計(jì)算環(huán)境下基于網(wǎng)絡(luò)的存儲(chǔ)虛擬化結(jié)構(gòu)如圖4所示。
基于網(wǎng)絡(luò)的存儲(chǔ)虛擬化技術(shù)提供了統(tǒng)一的異構(gòu)存儲(chǔ)管理接口,支持異構(gòu)主機(jī)、異構(gòu)存儲(chǔ)設(shè)備間的同步數(shù)據(jù)復(fù)制和遠(yuǎn)程異步數(shù)據(jù)復(fù)制,能使不同存儲(chǔ)設(shè)備的數(shù)據(jù)管理功能統(tǒng)一,可擴(kuò)展性比較好。但是也存在部分廠商數(shù)據(jù)管理功能弱,產(chǎn)品成熟度較低,使得數(shù)據(jù)管理難度增大,存儲(chǔ)設(shè)備與主機(jī)之間的不兼容等問題。
存儲(chǔ)虛擬化的核心工作是實(shí)現(xiàn)異構(gòu)存儲(chǔ)設(shè)備到虛擬存儲(chǔ)池的映射,屏蔽不同物理設(shè)備的特性,使用戶可以根據(jù)需求對(duì)資源池任意劃分,并分配給特定的主機(jī)和應(yīng)用程序。由于存儲(chǔ)網(wǎng)絡(luò)的復(fù)制性,存儲(chǔ)虛擬化技術(shù)在實(shí)現(xiàn)上的難度較大。下面是實(shí)現(xiàn)存儲(chǔ)虛擬化需要解決的幾個(gè)關(guān)鍵技術(shù):
(1)異構(gòu)存儲(chǔ)介質(zhì)的互聯(lián)和統(tǒng)一管理。存儲(chǔ)虛擬化的核心任務(wù)是實(shí)現(xiàn)真正意義上的存儲(chǔ)設(shè)備的透明性,及兼容多種類型的存儲(chǔ)設(shè)備,屏蔽它們的不同物理屬性并向用戶提供統(tǒng)一的訪問方式。但是,不同存儲(chǔ)網(wǎng)絡(luò)環(huán)境常包含不兼容的技術(shù)和標(biāo)準(zhǔn),即使是在同一個(gè)SAN內(nèi)都可能出現(xiàn)不同操作系統(tǒng)的服務(wù)器和不同類型存儲(chǔ)設(shè)備。要解決這個(gè)問題,則要選擇一個(gè)好的虛擬化系統(tǒng),能兼容多種協(xié)議并屏蔽各類設(shè)備的差異性,從而簡(jiǎn)化邏輯存儲(chǔ)設(shè)備的管理。
(2)數(shù)據(jù)的共享沖突與一致性。存儲(chǔ)虛擬化的另一個(gè)主要功能是實(shí)現(xiàn)數(shù)據(jù)共享,這就要求不同物理存儲(chǔ)設(shè)備間及不同操作系統(tǒng)間的數(shù)據(jù)能互相拷貝,此外還需防止不同操作系統(tǒng)所帶來的存儲(chǔ)共享沖突和并行I/O訪問沖突??梢栽谥鳈C(jī)與虛擬存儲(chǔ)池之間添加Cache以減少I/O次數(shù)。當(dāng)然Cache機(jī)制也存在一致性問題,所以需要良好的鎖機(jī)制算法和Cache一致性等技術(shù)來保證數(shù)據(jù)的完整性。
(3)數(shù)據(jù)的容錯(cuò)容災(zāi)。存儲(chǔ)虛擬化要保證數(shù)據(jù)的完整性必須建立容錯(cuò)容災(zāi)機(jī)制,當(dāng)存儲(chǔ)系統(tǒng)出現(xiàn)誤刪、單點(diǎn)失效甚至是意外災(zāi)難時(shí)都能保障數(shù)據(jù)恢復(fù),防止數(shù)據(jù)丟失。為此,應(yīng)實(shí)現(xiàn)多種機(jī)制下的數(shù)據(jù)備份或者基于糾刪碼機(jī)制對(duì)數(shù)據(jù)進(jìn)行編碼存儲(chǔ),以達(dá)到數(shù)據(jù)系統(tǒng)容錯(cuò)容災(zāi)及自動(dòng)恢復(fù)等功能。
(4)性能優(yōu)化和負(fù)載均衡。不同應(yīng)用有不同的數(shù)據(jù)訪問特性,存儲(chǔ)系統(tǒng)應(yīng)該從全局的觀點(diǎn)并根據(jù)不同的存儲(chǔ)設(shè)備的存儲(chǔ)特性來優(yōu)化存儲(chǔ)系統(tǒng),根據(jù)用戶對(duì)數(shù)據(jù)的請(qǐng)求,設(shè)計(jì)I/O均衡策略,實(shí)現(xiàn)對(duì)數(shù)據(jù)的按需存取??梢酝ㄟ^數(shù)據(jù)的主動(dòng)存儲(chǔ)和數(shù)據(jù)的過預(yù)取策略來提高用戶對(duì)數(shù)據(jù)的訪問效率,也可以采用基于存儲(chǔ)對(duì)象的存儲(chǔ)主動(dòng)服務(wù)策略來提高對(duì)數(shù)據(jù)存儲(chǔ)的預(yù)測(cè),從而優(yōu)化存儲(chǔ)系統(tǒng)的性能。
(5)數(shù)據(jù)安全。由于存儲(chǔ)網(wǎng)絡(luò)中數(shù)據(jù)的透明性,必須對(duì)數(shù)據(jù)的訪問加以控制,防止數(shù)據(jù)被越權(quán)訪問或者惡意攻擊。為了數(shù)據(jù)的安全性,虛擬化管理軟件可以通過多樣的訪問策略來保證安全,如基于密鑰的認(rèn)證管理和數(shù)據(jù)加密策略或者是在存儲(chǔ)體之上加入一層可信的管理層節(jié)點(diǎn)[2]。
雖然虛擬化技術(shù)已經(jīng)得到了較大的發(fā)展,但是不同企業(yè)的用戶類型不同,存儲(chǔ)策略也相應(yīng)的不同。企業(yè)需要把自己的現(xiàn)有的存儲(chǔ)資源、存儲(chǔ)技術(shù)和存儲(chǔ)虛擬化技術(shù)相關(guān)聯(lián)并應(yīng)用與云環(huán)境中,從而找到適合自己的存儲(chǔ)策略,以更好地利用資源、簡(jiǎn)化管理。有一點(diǎn)需要注意的是數(shù)據(jù)存儲(chǔ)的安全問題,特別是在大數(shù)據(jù)云計(jì)算環(huán)境中,數(shù)據(jù)的存儲(chǔ)地方與數(shù)據(jù)被誰訪問,數(shù)據(jù)的存放是否安全問題這些問題都是在云計(jì)算環(huán)境中需要進(jìn)一步解決的存儲(chǔ)安全問題。
[1] Joukov N,Krishnakumar A M,Patti C,et al. RAIF:Redundant Array of Independent Filesystems. IEEE Conference on MASS Storage Systems and Technologies. IEEE Computer Society,2007.
[2]Zhang M,Zhang D,Xian H,et al. Towards A Secure Distribute Storage System[J],2008.
[3]葉娟.試論云計(jì)算中虛擬化技術(shù)的應(yīng)用[J].計(jì)算機(jī)光盤軟件與應(yīng)用,2012.
[4]譚生龍.存儲(chǔ)虛擬化技術(shù)的研究[J].微計(jì)算機(jī)應(yīng)用,2010.
[5]朱光磊.云存儲(chǔ)技術(shù)的發(fā)展應(yīng)用趨勢(shì)探析[J].電腦知識(shí)與技術(shù),2011.
[6]Tom Clark. Storage Virtualization[J]. Addison-Wesley, 2007.
[7]Zhang S,Zhang S,Chen X,et al. Cloud Computing Research and Development Trend[C]// Second International Conference on Future Networks. IEEE Computer Society,2010.
[8]Li B,Shu J,Zheng W. Design and Implementation of a Storage Virtualization System Based on SCSI Target Simulator in SAN[J].清華大學(xué)學(xué)報(bào)自然科學(xué)版(英文版),2005.
[9]Xiao D,Shu J,Xue W,et al. TH-VSS:An Asymmetric Storage Virtualization System for the SAN Environment[J]. Lecture Notes in Computer Science,2005.