圖1虛擬桌面計算架構(gòu)

虛擬桌面架構(gòu)面臨服務(wù)器虛擬化所帶來的存儲代價和性能上的挑戰(zhàn)。由于幾十或上百個虛擬桌面整合到一臺物理服務(wù)器上,隨著用戶數(shù)目的增長和用戶需求的提高,服務(wù)器的存儲空間需求會迅速擴展;如果一臺物理服務(wù)器上有100個虛擬桌面,每個40 GB的容量就需要創(chuàng)建和維護100個虛擬磁盤鏡像,總共需要4TB的存儲容量。另外,一臺物理服務(wù)器往往需要同時啟動和運行多個虛擬機,如何優(yōu)化虛擬機I/O訪問來提高存儲性能也是亟待解決的問題,利用虛擬磁盤鏡像中存在大量數(shù)據(jù)冗余的特性;本文應(yīng)用重復(fù)數(shù)據(jù)刪除技術(shù)來優(yōu)化虛擬桌面架構(gòu)的存儲空間利用率,由于數(shù)據(jù)消重后,數(shù)據(jù)塊被重復(fù)引用頻率不同;本文將被頻繁引用的數(shù)據(jù)塊存放在數(shù)據(jù)中心中較傳統(tǒng)硬盤性能高的基于閃存的固態(tài)硬盤上,并同時在服務(wù)器端通過本地磁盤緩存熱數(shù)據(jù)以提高虛擬桌面的訪間性能。

相關(guān)工作

1. 1重復(fù)數(shù)據(jù)刪除技術(shù)

重復(fù)數(shù)據(jù)刪除技術(shù)是一種基于數(shù)據(jù)冗余度的數(shù)據(jù)縮減技術(shù)。它首先利用一定的數(shù)據(jù)分塊策略將大的數(shù)據(jù)對象劃分為若干較小的數(shù)據(jù)塊,并用數(shù)據(jù)塊的加密哈希值作為指紋來標(biāo)識它們;通過比對數(shù)據(jù)塊的指紋,我們可以提高存儲系統(tǒng)的空間利用率和網(wǎng)絡(luò)系統(tǒng)的帶寬利用率。按重復(fù)數(shù)據(jù)刪除操作時機的不同??梢苑譃樵诰€重復(fù)數(shù)據(jù)刪除和離線重復(fù)數(shù)據(jù)刪除。在虛擬桌面架構(gòu)中,由于即時縮減數(shù)據(jù)能夠避免不必要的數(shù)據(jù)傳輸和寫操作,使得在線重復(fù)數(shù)據(jù)刪除更具有優(yōu)勢。按重復(fù)數(shù)據(jù)刪除操作粒度的差異,可以分為文件級、塊級甚至字節(jié)級重復(fù)數(shù)據(jù)刪除。根據(jù)虛擬機磁盤鏡像特點,我們發(fā)現(xiàn)塊級在線重復(fù)數(shù)據(jù)刪除技術(shù)更適合虛擬桌面存儲的優(yōu)化。

目前,重復(fù)數(shù)據(jù)刪除技術(shù)已被廣泛應(yīng)用于虛擬機環(huán)境。通過分析虛擬機磁盤鏡像的消重效果,發(fā)現(xiàn)重復(fù)數(shù)據(jù)刪除技術(shù)能夠大量地縮減虛擬機磁盤鏡像存儲空間。 Nath等人發(fā)現(xiàn)在基于虛擬機的存儲系統(tǒng)中進(jìn)行塊級重復(fù)數(shù)據(jù)刪除能夠充分利用存儲和網(wǎng)絡(luò)資源,Liguori等人對不同操作系統(tǒng)的虛擬機磁盤鏡像進(jìn)行重復(fù)數(shù)據(jù)刪除效果比較分析,并測試重復(fù)數(shù)據(jù)刪除技術(shù)對虛擬機啟動和讀性能的影響, Zhang等人研究了重復(fù)數(shù)據(jù)刪除技術(shù)對虛擬機在線遷移的加速效果。本文主要研究如何利用重復(fù)數(shù)據(jù)刪除技術(shù)來優(yōu)化虛擬桌面存儲系統(tǒng)的存儲利用率和I/ O性能。

1.2基于閃存的固態(tài)硬盤

基于閃存的固態(tài)硬盤是一種非易失性的存儲器,主要由閃存芯片和閃存轉(zhuǎn)換層構(gòu)成。它的數(shù)據(jù)訪問性能介于易失性存儲器DRAM和傳統(tǒng)硬盤之間,價格比DRAM更便宜。相比于傳統(tǒng)硬盤,因為沒有機械的磁頭運動,其隨機讀性能與順序讀性能同樣快;但由于寫操作之前需要進(jìn)行代價較高的數(shù)據(jù)擦除操作,使得寫性能低于讀性能。另外,基于閃存的固態(tài)硬盤較DRAM和傳統(tǒng)硬盤具有更低的能耗。

基于閃存的固態(tài)硬盤較DRAM具有更高的性價比以及能耗優(yōu)勢,使得其在數(shù)據(jù)中心的數(shù)據(jù)密集型應(yīng)用中很受青睞。重復(fù)數(shù)據(jù)刪除技術(shù)自身是一種密集型的應(yīng)用;特別是針對數(shù)據(jù)塊索引以及數(shù)據(jù)塊元數(shù)據(jù)的訪問操作,訪問數(shù)據(jù)量小但很頻繁。利用基于閃存固態(tài)硬盤隨機讀性能的優(yōu)勢,用其來存儲數(shù)據(jù)塊索引和元數(shù)據(jù)能夠極大地優(yōu)化存儲系統(tǒng)的訪問性能。由于虛擬磁盤鏡像文件在數(shù)據(jù)消重后文件數(shù)據(jù)存儲碎片化,在傳統(tǒng)硬盤上其讀性能很差;本文利用基于閃存的固態(tài)硬盤在隨機讀性能上的優(yōu)勢來優(yōu)化虛擬磁盤鏡像文件的讀性能。

 

2 虛擬桌面存儲優(yōu)化技術(shù)

為了節(jié)省硬件的采購成本和經(jīng)常性的管理開銷,虛擬化技術(shù)被廣泛應(yīng)用于企業(yè)數(shù)據(jù)中心的服務(wù)器資源管理,使得每臺物理服務(wù)器能夠整合幾十或上百臺虛擬機,從而提高IT資源的利用率。這使得每臺服務(wù)器需要管理大量的虛擬磁盤鏡像,而服務(wù)器的本地磁盤不足以提供如此大的存儲容量,需要將這些磁盤鏡像存放到一個集中的大容量存儲池,并由多臺服務(wù)器所共享。當(dāng)服務(wù)器需要啟動某個虛擬機時,需要從存儲池將虛擬磁盤鏡像讀到服務(wù)器的本地磁盤來運行。利用虛擬磁盤鏡像之間數(shù)據(jù)高度冗余的特性,我們應(yīng)用重復(fù)數(shù)據(jù)刪除技術(shù)來縮減虛擬磁盤鏡像的存儲空間需求,同時減少服務(wù)器與存儲池之間的I/O操作以提高虛擬機啟動性能。如圖2所示,基于重復(fù)數(shù)據(jù)刪除技術(shù)的虛擬桌面基礎(chǔ)架構(gòu)其I/O由4層構(gòu)成,包括最上層是虛擬機監(jiān)控器(也叫Hypervisar)實現(xiàn)的I/O虛擬層、重復(fù)數(shù)據(jù)刪除引擎構(gòu)成的重復(fù)數(shù)據(jù)刪除層、服務(wù)器本地磁盤實現(xiàn)的本地磁盤緩存層以及共享存儲池充當(dāng)?shù)闹鞔鎯印?/p>

基于重復(fù)數(shù)據(jù)刪除技術(shù)的虛擬桌面架構(gòu)

圖2基于重復(fù)數(shù)據(jù)刪除技術(shù)的虛擬桌面架構(gòu)

虛擬機監(jiān)控器Hypervisor是位于硬件資源和操作系統(tǒng)之間的系統(tǒng)軟件層,允許多個操作系統(tǒng)和應(yīng)用共享底層的硬件,使得同一物理服務(wù)器上能夠虛擬出多個虛擬桌面,Hypervisor不但協(xié)調(diào)著這些硬件資源的訪問,也同時通過資源隔離在各個虛擬機之間施加防護,目前市場主流的Hypervisor有VMware的ESX Server、微軟的Hype—V以及Citrix的Xen Server等。

重復(fù)數(shù)據(jù)刪除引擎包括數(shù)據(jù)分塊、指紋計算、索引查詢/更新以及數(shù)據(jù)存儲4個模塊,由于塊級的重復(fù)數(shù)據(jù)刪除技術(shù)能夠很好地兼顧存儲空間利用率和系統(tǒng)開銷,本文采用塊級消重來優(yōu)化虛擬機磁盤鏡像存儲;并將重復(fù)數(shù)據(jù)刪除引擎設(shè)計為Hypervisor下的一個模塊,使得上層的數(shù)據(jù)I/O請求都必須經(jīng)過重復(fù)數(shù)據(jù)刪除層過濾,避免重復(fù)數(shù)據(jù)塊的寫操作,以及重復(fù)數(shù)據(jù)塊從共享存儲池到服務(wù)器的讀人操作,通過支持多個虛擬機磁盤鏡像進(jìn)行在線重復(fù)數(shù)據(jù)刪除,以優(yōu)化存儲利用率和虛擬機啟動性能,在多服務(wù)器環(huán)境下,還可以通過支持全局的數(shù)據(jù)塊指紋索引進(jìn)行全局重復(fù)數(shù)據(jù)刪除來迸一步提高數(shù)據(jù)縮減率。

虛擬桌面基礎(chǔ)架構(gòu)在啟動虛擬機時,需要從共享存儲池將虛擬磁盤鏡像讀人到服務(wù)器,而不是從本地磁盤讀取,往往因為受網(wǎng)絡(luò)帶寬或者存儲池I/0性能的影響,使得其啟動性能低,利用數(shù)據(jù)訪問的局部性原理,類似于Parallax系統(tǒng),我們允許虛擬機將數(shù)據(jù)寫到在服務(wù)器本地磁盤緩存上,而不需要與共享存儲池交互,直到本地磁盤緩存填滿才將一部分?jǐn)?shù)據(jù)寫到存儲池,利用重復(fù)數(shù)據(jù)刪除層帶來的優(yōu)勢,服務(wù)器本地磁盤能夠存放更多的虛擬機數(shù)據(jù)。這樣,可以降低重復(fù)數(shù)據(jù)刪除技術(shù)對虛擬機I/O性能的影響,極大地提高虛擬機的啟動速度。

重復(fù)數(shù)據(jù)刪除技術(shù)能夠消除虛擬機磁盤鏡像存儲中的大量冗余,提高存儲空間的利用率,但也使得虛擬機磁盤鏡像文件在存儲池內(nèi)的存放變得不連續(xù),從而嚴(yán)重影響其讀性能,基于閃存的固態(tài)硬盤,相比于傳統(tǒng)的硬盤具有很好的隨機讀性能以及能耗優(yōu)勢,使得固態(tài)硬盤被一些重復(fù)數(shù)據(jù)刪除系統(tǒng)所采用以優(yōu)化其吞吐量,另外,相似虛擬磁盤鏡像之間具有大量相同內(nèi)容的數(shù)據(jù)塊,使得重復(fù)數(shù)據(jù)刪除后,這些數(shù)據(jù)塊的重復(fù)引用次數(shù)較其他數(shù)據(jù)塊更高,利用固態(tài)硬盤較傳統(tǒng)硬盤在隨機讀性能上的明顯優(yōu)勢,我們在存儲池中采用基于閃存的固態(tài)硬盤來存儲重復(fù)引用次數(shù)較高的數(shù)據(jù)塊以優(yōu)化其讀性能。

3實驗結(jié)果與分析

我們通過2000多行C++代碼實現(xiàn)了重復(fù)數(shù)據(jù)刪除引擎模塊,并基于真實的虛擬機磁盤鏡像來測試重復(fù)數(shù)據(jù)刪除技術(shù)對基于VMware虛擬桌面原型系統(tǒng)下的存儲系統(tǒng)容量和性能的影響,在本文的實驗環(huán)境中,我們以一臺單機作為服務(wù)器,其配置為2.53 GHz Intel Core 2 Duo處理器,4GB內(nèi)存容量,250GB SATA硬盤;并通過千兆以太網(wǎng)連接個由2塊硬盤(Western Digital 160 GB WD1600AAJS SATA)、1塊固態(tài)硬盤(Kingston 64GB SSDNovgV100 Series 2.5”SATA II)構(gòu)成的RAIDo磁盤陣列系統(tǒng)作為存儲池,基于4種不同的操作系統(tǒng)虛擬機磁盤鏡像,采用了3種不同的重復(fù)數(shù)據(jù)刪除技術(shù)分別進(jìn)行測試。

通過對Windows XP,Ubuntu,F(xiàn)edora和Centos等4種不同操作系統(tǒng)的虛擬機鏡像分別進(jìn)行全文件分塊(WFC)、靜態(tài)分塊(SC)以及基于內(nèi)容分塊(CDC)3種重復(fù)數(shù)據(jù)刪除技術(shù)測試;并為塊級重復(fù)數(shù)據(jù)刪除技術(shù)選取8 KB的平均分塊大小,對于變長分塊的CDC策略,我們采用TTTD算法,并且將分塊的大整除因子作為平均分塊大小,小整除因子設(shè)為平均分塊大小的一半,上界規(guī)定為平均塊大小的兩倍,下界為平均塊大小的1/4,如圖3所示,Base為消重前原始文件大小,WFC,SC和CDC分別代表3種重復(fù)數(shù)據(jù)刪除策略,從實驗結(jié)果中我們發(fā)現(xiàn)不同操作系統(tǒng)的虛擬磁盤鏡像自身的冗余度有差別;Windows XP的冗余度最高,而Centos的冗余度最低,不同的重復(fù)數(shù)據(jù)技術(shù)對虛擬機磁盤鏡像的消重效果差別較大;基于靜態(tài)分塊的重復(fù)數(shù)據(jù)刪除機制較其他兩種都具有更高的數(shù)據(jù)縮減率,基于全文件分塊的重復(fù)數(shù)據(jù)刪除技術(shù)消重效果最差,僅有極其微小的數(shù)據(jù)縮減量,通過分析這4種不同虛擬磁盤鏡像的重復(fù)引用計數(shù)與相應(yīng)分類中的數(shù)據(jù)容量關(guān)系,如圖4所示,我們發(fā)現(xiàn)虛擬機鏡像內(nèi)部數(shù)據(jù)塊的重復(fù)引用數(shù)與相應(yīng)的數(shù)據(jù)容量按對數(shù)成反比例。

單個虛擬磁盤鏡像的消重效果比較

圖3單個虛擬磁盤鏡像的消重效果比較

重復(fù)引用次數(shù)與數(shù)據(jù)存量的關(guān)系

圖4重復(fù)引用次數(shù)與數(shù)據(jù)存量的關(guān)系

由于文件級別的重復(fù)數(shù)據(jù)刪除技術(shù)對虛擬機磁盤鏡像的數(shù)據(jù)縮減效果很不明顯,我們來研究塊級別的重復(fù)數(shù)據(jù)刪除技術(shù),它相比于字節(jié)級別的數(shù)據(jù)縮減技術(shù)往往具有較小的開銷和更好的擴展性,如圖5所示,通過比較定長塊大小的靜態(tài)分塊(SC)策略和變長塊大小的基于內(nèi)容劃分(CDC)策略兩種重復(fù)數(shù)據(jù)刪除技術(shù)的數(shù)據(jù)縮減效果,發(fā)現(xiàn)隨著(平均)分塊大小的遞增,重復(fù)數(shù)據(jù)刪除的效果越差;相比于CDC策略,SC策略能獲得更高的數(shù)據(jù)縮減率,為了平衡重復(fù)數(shù)據(jù)刪除技術(shù)對存儲系統(tǒng)I/O吞吐量的影響,我們需要考慮重復(fù)數(shù)據(jù)刪除技術(shù)的效率,定義重復(fù)數(shù)據(jù)刪除效率為減少的數(shù)據(jù)量與消重過程的時間開銷之比,當(dāng)然這是在同一實驗平臺上進(jìn)行比較,如圖6所示,通過比較兩種重復(fù)數(shù)據(jù)刪除技術(shù)的消重效率,發(fā)現(xiàn)CDC的消重效率只有sc消重效率的1/6左右,SC的最優(yōu)分塊大小為4KB,而CDC的最優(yōu)分塊大小為2 KB,通過上述分析,我們發(fā)現(xiàn)SC策略較CDC策略更適合于虛擬機磁盤鏡像的重復(fù)數(shù)據(jù)刪除過程,具有更高的數(shù)據(jù)縮減率和重復(fù)數(shù)據(jù)刪除效率。

塊級重復(fù)數(shù)據(jù)刪除技術(shù)消重效果

圖5塊級重復(fù)數(shù)據(jù)刪除技術(shù)消重效果

塊級重復(fù)數(shù)據(jù)刪除技術(shù)消重效率

圖6塊級重復(fù)數(shù)據(jù)刪除技術(shù)消重效率

為了研究重復(fù)數(shù)據(jù)刪除技術(shù)對虛擬桌面存儲空間的優(yōu)化效果,我們利用基于靜態(tài)分塊(SC)的重復(fù)數(shù)據(jù)刪除技術(shù)對7個相似Windows XP虛擬機磁盤鏡像進(jìn)行了消重,實驗結(jié)果如圖7所示,隨著相似虛擬機磁盤鏡像數(shù)目的增加,重復(fù)數(shù)據(jù)刪除技術(shù)能夠獲得越高的數(shù)據(jù)縮減率,并且能將7個虛擬機磁盤鏡像的存儲空間需求降低85%,隨著相似虛擬機磁盤鏡像數(shù)目的增加數(shù)據(jù)冗余度也隨之改變,如圖8所示,DT代表左邊的重復(fù)數(shù)據(jù)刪除吞吐量,DR代表右邊的數(shù)據(jù)縮減率;由于重復(fù)數(shù)據(jù)刪除技術(shù)能夠避免很多不必要的數(shù)據(jù)寫操作,使得虛擬機磁盤鏡像的寫吞吐量隨著冗余度的增(減)而升(降)。

靜態(tài)分塊消重優(yōu)化虛擬桌面存儲

圖7靜態(tài)分塊消重優(yōu)化虛擬桌面存儲

數(shù)據(jù)冗余度與重復(fù)數(shù)據(jù)刪除吞吐量的關(guān)系

圖8數(shù)據(jù)冗余度與重復(fù)數(shù)據(jù)刪除吞吐量的關(guān)系

通過測試虛擬機的啟動時間,我們來評估優(yōu)化策略對虛擬桌面存儲系統(tǒng)的性能影響,受服務(wù)器配置性能影響,我們只啟動前面連續(xù)存放了的7臺Windows XP虛擬機中的前3臺相似的虛擬機VM1,VM2和VM3,如圖9所示,對比沒有重復(fù)數(shù)據(jù)刪除技術(shù)支持且無任何優(yōu)化的虛擬桌面存儲系統(tǒng)(Naive),重復(fù)數(shù)據(jù)刪除技術(shù)(Dedupe)在節(jié)省存儲空間的同時影響了存儲系統(tǒng)性能,使得虛擬機的平均啟動時間增加了1倍;通過設(shè)置1 GB本地磁盤緩存(LDC)的優(yōu)化,基于重復(fù)數(shù)據(jù)刪除技術(shù)的虛擬桌面存儲系統(tǒng)能夠?qū)⑻摂M機的啟動時間減少30%,特別是對虛擬機VM1啟動速度的提升;而通過加入SSD存放重復(fù)引用次數(shù)大于等于7的數(shù)據(jù)塊來優(yōu)化存儲池I/O性能,即使不采用本地磁盤緩存,基于重復(fù)數(shù)據(jù)刪除的虛擬桌面存儲系統(tǒng)能夠提升28%的性能;如果將兩種優(yōu)化策略結(jié)合(Opt-Dedupe)來優(yōu)化基于重復(fù)數(shù)據(jù)刪除技術(shù)的虛擬桌面存儲系統(tǒng),總的性能提升可達(dá)到35%。

虛擬桌面存儲系統(tǒng)性能對比

圖9虛擬桌面存儲系統(tǒng)性能對比

4結(jié)論與展望

虛擬桌面技術(shù)已成為一種重要的云計算應(yīng)用,針對虛擬桌面存儲中具有大量數(shù)據(jù)冗余的特性,本文基于重復(fù)數(shù)據(jù)刪除來縮減虛擬桌面基礎(chǔ)架構(gòu)的存儲空間需求;為了改進(jìn)重復(fù)數(shù)據(jù)刪除技術(shù)自身的I/O性能瓶頸,我們通過服務(wù)器本地的磁盤緩存以及基于閃存的固態(tài)硬盤在共享存儲池內(nèi)存儲重復(fù)引用次數(shù)較高的數(shù)據(jù)塊以優(yōu)化虛擬機的性能,通過實驗測試我們總結(jié)出:靜態(tài)分塊策略較基于內(nèi)容分塊的策略更適合虛擬桌面存儲進(jìn)行重復(fù)數(shù)據(jù)刪除,其最優(yōu)的分塊大小為4 KB,可以縮減85%的存儲空間容量;通過服務(wù)器本地磁盤緩存和基于閃存的固態(tài)硬盤進(jìn)行I/O優(yōu)化,虛擬機的啟動速度能夠獲得35%的提升,下一步的研究工作我們將考慮在多個服務(wù)器環(huán)境下如何高效地進(jìn)行重復(fù)數(shù)據(jù)刪除,以及如何設(shè)計數(shù)據(jù)塊索引來提升I/O吞吐量。

分享到

zhouxiaoli

相關(guān)推薦