李張娟
(四川大學計算機學院,成都 610065)
基于重復數據刪除的虛擬機鏡像存儲優化的研究與實現
李張娟
(四川大學計算機學院,成都610065)
隨著云計算的快速發展,需要配置大量不同版本和配置的虛擬機來靈活滿足不同用戶和應用的需求,這就需要在云中存儲大量不同版本,不同配置的虛擬機鏡像文件。有關這些數量巨大的虛擬機鏡像文件的存儲對管理員來說就是一個巨大的挑戰。增加存儲設備固然能夠解決虛擬機鏡像的存儲問題,但同時也會增加IT部署運行成本,增大人工維護成本和電力、冷卻等能耗。由于存在大量相同的系統數據,同一操作系統的不同發行版本中存在40%以上重復數據[1]。既然虛擬機鏡像存在著大量的數據冗余,那么利用重復數據刪除技術來提高存儲服務器利用率就變得可行。但是經過數據重刪后,數據塊變為不連續存儲,在啟動虛擬機時,需要花費大量時間進行磁盤尋址,大大降低了讀取性能。為此本文利用重復數據刪除技術來優化虛擬機鏡像存儲,并采取預取機制結合固態硬盤來進行讀數據加速,有效提升磁盤讀取速度,加速虛擬機啟動。
1.1重復數據刪除技術
重復數據刪除技術(Deduplication)是一種容量優化(Capacity Optimization)技術,它通過消除存儲系統中重復的數據,縮減系統中實際存儲的數據或通過網絡傳輸的數據[2],降低能耗與運營成本。根據重刪發生的時間不同,可分為在線(in-line),近線(out-of-line)和離線(off-line);根據重刪的粒度不同,可將其分為文件級,數據塊級。根據數據塊的大小是否固定,可將分塊策略分為固定分塊與可變分塊。根據文獻[3],利用固定分塊大小與可變分塊大小對虛擬機鏡像存儲進行重刪的重刪效率是一樣的,本文選用固定分塊策略來進行虛擬機鏡像存儲的重刪操作。
目前,重復數據刪除已廣泛應用于云環境和虛擬機環境中,Liguori等人比較了各操作系統的虛擬機鏡像的重刪效果,同時測試了重刪以后的鏡像對虛擬機啟動和讀性能方面的影響[4]。本文中主要專注于云中虛擬機鏡像存儲的效率提升及重刪后的數據還原時的讀取性能優化的研究。
1.2基于Flash的固態存儲設備
基于Flash的固態硬盤是由半導體構成的存儲設備[5],與傳統的硬盤相比較,有更高的隨機讀取速度,更好的抗震性及更低的能耗,正被運用到越來越多的數碼產品上。但是,由于寫入之前需要對數據進行擦除操作,其寫性能低于其讀性能。在數據密集型的應用中,固態硬盤以其高性價比倍受青睞。
隨著虛擬化技術日趨成熟,虛擬機應用環境也越來越普遍,隨著也產生了大量需要存儲的虛擬機鏡像文件。通常本地服務器達不到如此高的容量要求,需要將這些鏡像文件放置到共享的存儲服務器中,供多個服務器共享。在需要啟動虛擬機時,從共享存儲服務器中讀取相應數據至本地來完成相應操作。由于相同版本虛擬機鏡像中存在著相當的冗余部分,可以通過重復數據刪除技術來對數據進行縮減,提高存儲設備的利用率。使用固定分塊策略進行重復數據刪除與使用可變分塊策略的效果相當,固選取固定分塊的重復數據刪除技術來實現對虛擬機鏡像共享存儲的優化。其基本流程如圖1所示,主要過程為:(1)用固定分塊策略對對象進行分塊;(2)計算每個數據塊的哈希值作為指紋進行標記,維護指紋索引表;(3)對比已有指紋,判斷數據塊是否已存在;(4)若不存在則存儲新的數據塊,并利用數據壓縮算法在塊內進行進一步壓縮,縮減數據量,同時更新索引表信息;存在則更新索引表信息,只在磁盤上保留一個副本。

圖1 虛擬機鏡像重復數據刪除基本過程
經過重復數據刪除以后的數據,在存儲服務器中不再是連續的存儲,在讀取過程需要將數據塊裝載入內存中進行解壓操作,性能將會受到較大的影響。針對此種情況,難以通過簡單增加讀線程數的方法來縮短磁盤讀取的數據塊的時間。對此可以通過預取機制的機制來縮短平均磁盤讀取時間。如圖2所示,假設讀數據塊閾值為thres,當一次請求讀取的數據塊數量小于thres時,可以從用戶請求的數據塊開始,連續讀取thres塊數據塊到內存中,在以后的數據塊請求中,若已裝入內存中,則無需再從磁盤讀取數據,減少大量I/O操作,從整個過程來看,能夠在增大系統的吞吐率的同時減少數據塊的讀取時間,使得單位時間內讀取的數據量顯著提高。

圖2 重復數據刪除系統讀取數據塊基本流程
重復數據刪除技術是一種I/O密集型操作,其需要頻繁訪問數據塊索引和元數據,帶來大量的I/O操作。基于固態硬盤卓越的讀性能,將重復數據刪除系統中的數據塊索引和元數據存儲于其上,相較于傳統的磁盤,能夠加快讀取速度和命中速度,提升存儲系統的訪問性能。本文利用基于Flash的固態硬盤的隨機讀性能優勢來加快經過重復數據刪除后的虛擬機鏡像存儲的讀取速度,增大系統讀取數據時的吞吐量。
本文采用定長分塊策略來對虛擬機鏡像文件進行分塊,實驗選取了CentOS 7,CentOS 6.2,Ubuntu 14.04,Ubutun 12.04,Windows Server 2012,Windows Server 2008六種鏡像,對其進行不同分塊大小的實驗,期望通過實驗來選出重刪效率相對較好的分塊策略。
實驗環境為處理器:Intel Core i5 CPU@2.6 GHz;內存:8GB;操作系統:Ubuntu 14.04。
首先研究各操作系統數據冗余度,來選取數據分塊實驗的基礎虛擬機鏡像。經實驗,結果如圖3顯示,相同的操作系統不同版本之間,存在著一定的數據冗余,Windows操作系統的冗余度相對較小,Ubuntu操作系統的冗余度相對較大,CentOS操作系統則位于兩者中間。
選取數據冗余度較大的Ubuntu操作系統虛擬機鏡像作為實驗對象,進行分塊大小分別為1KB,4KB,8KB,16KB,32KB和64KB的重復數據刪除。一個好的重復數據刪除系統,應注重重刪率與系統性能間的平衡,數據分塊越小,則重刪率越高,相對應的計算也越大;數據分塊越大,則重刪率越低,相應的計算開銷也較小,本文選取二者間的中間平衡,以期達到較為理想的重刪率和系統吞吐率。由圖4可知,當分塊大小為4KB時,重刪效果最為理想。

圖3 不同操作系統虛擬機鏡像冗余度

圖4 不同分塊大小重刪吞吐率
利用4KB的固定分塊大小進一步實驗多個虛擬機鏡像的重復數據刪除效果,結果如圖4,隨著虛擬機鏡像個數的增加,冗余數據越多,重復數據刪除縮減的數據量越大。
通過上述實驗進行重復數據刪除以后,存儲系統中的虛擬機鏡像不再是連續存儲的數據塊,在需要通過鏡像來啟動虛擬機時,會大大增加數據塊讀取的時間,采用基于Flash的固態硬盤來進行數據讀取,相較于傳統硬盤,能有較大的速度提升;同時采用數據預取機制,設置讀取數據塊閾值為1000塊,當一次讀操作讀取的數據塊大小小于1000時,從請求的數據塊開始,連續讀取1000塊數據塊進入內存當中,平均地減少I/O操作,提升讀性能。

圖5 虛擬機鏡像數量與數據冗余關系
通過當前實驗的結果分析,本文利用重復數據刪除能夠有效提高虛擬機鏡像存儲設備的利用率,同時加快重刪后的數據讀取過程。
云計算的飛速發展,使按需索取計算和存儲資源成為IT部署趨勢,在不斷增加的虛擬機環境中,需要大量存儲虛擬機鏡像,更加虛擬機鏡像存在較大冗余的特性,本文研究了重復數據刪除技術,并將其應用于虛擬機鏡像存儲設備中,通過實驗表明,利用分塊大小為4KB的固定分塊策略能夠到達相當理想的重刪效率,能夠提高40%以上存儲設備利用率;同時經過重刪以后的數據塊在系統中不再是連續存儲,讀取時讀性能將會受到影響,本文通過預取一定數量的數據塊至內存中,減少整體平均的I/O次數,再結合固態硬盤的高效隨機讀性能,進一步加速讀取速度,提升20%以上的磁盤讀取速度。
在未來的工作中,將進一步研究如何有效組織數據索引來平衡重刪效率和I/O性能,提高恢復I/O吞吐率;同時將重復數據刪除的判斷是否重復步驟分布應用到云中的其他計算部件中,提高計算效率,提高存儲時的吞吐率;由于重刪后數據副本只保存一份,則系統的可靠性也亟待進一步驗證,今后的工作也將重點關注系統的安全可靠性。
[1]謝平.存儲系統重復數據刪除技術研究綜述[J].計算機科學,2014,41(1):22-30.
[2]敖莉,舒繼武,李明強.重復數據刪除技術[J].軟件學報,2010,21(5):916-929.
[3]Jin K,Miller E L.The Effectiveness of Deduplication on Virtual Machine Disk Images[C].Proceedings of SYSTOR 2009:The Israeli Experimental Systems Conference.ACM,2009:7.
[4]Liguori A,Van Hensbergen E.Experiences with Content Addressable Storage and Virtual Disk[C].Workshop on I/O Virtualization. 2008.
[5]付印金,肖儂,劉芳,等.基于重復數據刪除的虛擬桌面存儲優化技術[J].計算機研究與發展,2012(S1):125-130.
[6]Nath P,Kozuch M A,O'hallaron D R,et al.Design Tradeoffs in Applying Content Addressable Storage to Enterprise-Scale Systems Based on Virtual Machines[J].Management,2006,7(5):20
[7]Lillibridge M,Eshghi K,Bhagwat D,et al.Sparse Indexing:Large Scale,Inline Deduplication Using Sampling and Locality[C].Fast. 2009,9:111-123.
[8]Bhagwat D,Eshghi K,Long D D E,et al.Extreme Binning:Scalable,Parallel Deduplication for Chunk-Based File Backup[C].Modeling,Analysis&Simulation of Computer and Telecommunication Systems,2009.MASCOTS'09.IEEE International Symposium on. IEEE,2009:1-9.
Clouding Computing;De-Duplication;Virtual Machine Image;Reading Optimization
Research and Implementation of Virtual Machine Image Storage Optimization Based on De-Duplication
LI Zhang-juan
(College of Computer Science,Sichuan University,Chengdu610065)
1007-1423(2016)02-0029-04
10.3969/j.issn.1007-1423.2016.02.007
李張娟(1991-),女,重慶人,碩士研究生,本科,研究方向為網絡與信息安全
2015-12-01
2015-12-26
針對云環境中需要存儲大量虛擬機鏡像問題,提出運用重復數據刪除技術,來提高虛擬機鏡像的存儲設備利用率;同時針對虛擬機啟動的快速響應需求,采用預取機制結合固態硬盤進行磁盤讀取優化。通過原型實驗表明,利用4KB定長分塊策略的重復數據刪除技術能夠節省約40%的虛擬機鏡像存儲空間,利用預取機制及固態硬盤讀取能夠提升20%以上讀取速度,提升存儲效率和磁盤讀取速度。
云計算;重復數據刪除;虛擬機鏡像;讀取優化
For the need of mass storage for virtual machine image in cloud computing environment,proposes using de-duplication to improve the utilization of virtual machine image storage.For the demand of quick respond when virtual machine starting,uses pre-fetch mechanism combined with the use of SSD to optimize reading speed.By prototype experiments,it shows that blocking strategy with 4KB fixed length de-duplication technology can save about 40%of the virtual machine image storage space,the use of pre-fetch mechanism and SSD can speed up more than 20%when reading blocks,optimize utilization of storage device of virtual machine image and reading speed.