1引言
随着桌面虛拟化技術的普及,許多企業開始部署桌面虛拟化系統。虛拟化技術經過長期的發展,其虛拟機性能已經可以滿足很多應用需求,特别是對于處理器與記憶體的虛拟化處理,已經達到與實體主機相近的性能。但是,相對于輸入/輸出(input/output,I/O)裝置的虛拟化處理仍然差強人意。
現有的虛拟桌面系統大都采用單存儲服務系統,以獲得統一的存儲視圖以及較為低廉的價格。由于單一存儲服務的吞吐率有限,這樣的虛拟桌面往往隻能在一個存儲視圖下支援數十台虛拟機,并不能滿足中大型企業桌面虛拟化部署的要求。
采用分布式存儲結構可以有效地提高存儲系統的吞吐能力。本文在分布式結構的基礎上,采用直接塊索引的方式,提供高性能快照,并且實施去備援技術,可以在減少系統備援資料的同時為使用者提供存儲狀态和版本控制等功能。
2面向虛拟桌面的存儲系統
2.1虛拟桌面的體系結構
虛拟桌面的一般結構如圖l所示。每個使用者在終端中使用用戶端程式通路對應的虛拟桌面,虛拟桌面傳輸一般采用虛拟網絡計算機(virtual networkcomputer,VNC)或者遠端桌面協定(remote desktopprotocol,RDP)。這些虛拟桌面分别由一台在應用叢集中的虛拟機進行支援。所有的使用者資料和系統資料都存放在共享存儲區中,這個可以被虛拟機通路的共享存儲區一般稱為資料中心。管理節點協調各個部分的功能,為外界提供統一的服務。
2.2虛拟桌面的存儲需求
設計滿足虛拟桌面的存儲子系統需要基于以下三個基本特點。
(1)高性能快照
由于虛拟化所導緻的封裝性,快照成為虛拟機磁盤鏡像的一個特色。使用快照,虛拟機磁盤鏡像可以從錯誤的狀态恢複到任意時刻正确的狀态。
(2)虛拟機啟動性能優化
虛拟桌面系統中的應用叢集都需要從資料中心獲得資料。虛拟桌面系統用在企業中為員工提供統一的工作界面。大部分使用者都會在工作開始後的時間段内啟動他們的虛拟機。企業環境下,數百台虛拟機同時啟動會消耗掉大部分單存儲服務的吞吐能力。許多虛拟機桌面采用存儲區域網絡(storagearea network,SAN)解決這個問題,例如虛拟機檔案系統(virtual machine file system,VMFS)。
(3)更少的資料備援
目前的多虛拟機系統都采用了版本控制方法,這在一定程度上減少了備援,不過很多情況下,比如系統中存在着多種多樣的應用程式時,版本控制并不能減少備援資料。此外,使用版本控制的系統也會産生很多相同資料。是以,減少備援資料對于減少存儲系統成本是非常重要的。
3 VMStore總體設計
本章主要介紹虛拟機存儲系統(virtual machinestorage,VMStore)針對虛拟桌面環境而設計的分布式存儲架構。通過連接配接多個存儲服務節點,VMStore把單一的存儲服務重新部署成為分布式架構,同時為虛拟機提供透明接口來進行通路操作。
3.1 VMStore體系結構
圖2所展示的是VMStore的整體結構。和大多數分布式系統相似,VMStore中的存儲節點都是消費型實體主機,依靠運作輸入輸出服務程式提供網絡通路支援。每個存儲節點上的輸入輸出裝置不僅僅是應用程式和存儲資源交換資料的媒介,同時還提供附加的輔助服務。通過實作備援資料删除的機制,可以在重複資料産生時或者重複資料被傳回存儲伺服器之後減少不必要的存儲開銷。
在一些重量級的虛拟桌面産品中,例如Citrix公司的Virtual Desktops,虛拟化技術的基礎設施都依靠Xen或XenServer來完成。由于Xen的開源性和性能優勢,在本文的原型系統中也使用Xen來作為基礎架構。在Xen自身的工具中,塊工具(blktap)扮演了一個連接配接使用者和虛拟機存儲的角色。對開發者而言,塊工具則提供了部分接口,進而實作一種能夠索引虛拟磁盤中所有塊的鏡像格式。
3.3資料管理
VMStore為每次讀寫請求配置設定一個索引位址。每塊資料的全局位址都如圖4那樣,被分割成高33位和低31位兩個部分。其中,高33位作為一緻性哈希索引中的鍵值,低31位作為該資料塊在存儲節點上的索引位址。把所有高33位相同的資料塊存儲在一個以該33位位址命名的檔案中,然後利用低31位作為這些塊在存儲檔案中的索引位址。
3.4資料去備援
資料去備援是VMStore系統中不可或缺的一部分。目前這項技術大部分應用在重複資料删除工作中,在虛拟伺服器上,去備援技術也能展現出它的優勢。IBM公司曾經對虛拟機鏡像檔案的備援狀況進行了分析,結果表明資料備援在虛拟環境下是無法避免的。VMStore以使用者級背景程式的方式運作在存儲節點上,通過Xen的塊裝置驅動來處理資料塊的相關請求。在VMStore中采用了一種去備援塊結構。圖5展示了兩個檔案以這種結構儲存在存儲系統中的布局。利用稀疏索引和指紋索引的方式對資料進行抽樣,可以對備援資料進行預測。
4系統實作
4.1緩存機制
I/O緩存由一個超高速緩存網絡資料包模型和一個順序寫模型組成。由于資料塊的輕量型,當大量I/O請求産生時網絡擁擠的發生率會上升。為了緩解這種狀況,I/O請求會在網絡傳送前合并。是以采用512 KB作為緩沖長度來緩存資料,以達到記憶體超載和網絡效率之間的平衡。由于中繼資料存儲在存儲節點的硬碟上,并且與硬碟存取延遲和網絡延遲等同的索引延遲會降低I/O請求的性能,是以在存儲虛拟機上緩存了一部分索引結構來減少網絡存取中繼資料的比率,通過緩存索引、緩存中繼資料來加速資料索引過程。
4.2節點管理
為了避免存儲網絡低效的詢問,每個節點位址都存儲在所有的存儲虛拟機中。當一個節點想連接配接存儲伺服器,任何一個存儲虛拟機都是這個節點的入口,用以找到它的正确位置。節點會從存儲虛拟機上下載下傳所有的存儲位址,通過一緻性雜湊演算法計算它的鄰居節點,并利用加入信号通知它的兩個鄰居節點。該節點的前驅會傳送哈希值比新節點大的節點的資料,然後删除哈希值大于這個新節點的後繼節點的資料。在完成連接配接後,所有的存儲VM将會更新節點資訊。
5測試與評估
5.1測試環境
本文對VMStore進行了性能分析和評測。在所有的測試中,采用戴爾的PowerEdge 2950伺服器作為應用節點,每個節點有兩個1.6 GHz Xeon處理器,4 GB的記憶體和英特爾的E1000 GbE網絡接口。存儲資料節點是戴爾PowerEdgeT710伺服器,每個節點有兩個2.4 GHz Xeon處理器,24 GB記憶體,1 TB 7200轉SAS硬碟和一個Broadcom公司5709雙埠1GbE網絡接口。現有系統是基于Xen 3.2.0版本開發的。
5.2測試結果
為了擷取啟動過程的最優速率,需要計算所有存儲節點吞吐率的總和。圖6(a)表示的是多虛拟機啟動時的總讀取速率。隻有1台虛拟機啟動時,總速率是0.073 MB/s。5台虛拟機啟動時總速率達到了0.360 MB/s。圖6(b)對應的是多虛拟機啟動時的總寫入速率。IOZone測試的結果如圖7所示,4 KB大小時,虛拟磁盤的讀取性能比其他機關長度下的性能要好。因為加入了寫緩存,是以整體上寫性能比讀性能要高。圖8表示的是重複12次快照,并在每次快照之後讀取2 MB資料的延時。測試結果說明在VMStore中的快照性能,不像傳統的“鍊式”快照,會導緻延時線性增加。
6研究現狀
存儲是虛拟化環境中一個重要的問題。接下來将介紹幾種有代表性的虛拟存儲設計:
VMWare虛拟機檔案系統VMFS是一個高性能的叢集檔案系統。該系統為虛拟化應用設計了很多優化法,利用共享存儲可以使多個VMWare ESX執行個體同時讀寫相同存儲位置。VMFS通過共享存儲器(如光纖通道和iSCSI SAN)上存儲的虛拟機檔案,實作基于虛拟機的分布式基礎架構服務,可高效地存儲和通路整個虛拟機狀态,并實作接近本機SCSI的虛拟磁盤性能。
機器銀行是一個用戶端/伺服器的結構。伺服器端是BitVault,即為所有使用者提供虛拟機鏡像(virtual machine image,VMI)存儲的可靠背景服務系統。在用戶端按需下載下傳鏡像,并把鏡像檔案緩存在本地檔案系統中減少重複資料的傳輸。
Ventana是斯坦福大學提出的虛拟化感覺的檔案系統。它融合了虛拟磁盤和傳統分布式檔案系統的優點,在設計上包括分枝、視圖和通路控制三個概念。
7結論
VMStore由于采用分布式存儲體系結構,提高了存儲服務系統的吞吐能力。同時,分布式結構所具有的靈活性和擴充性也使得VMStore具有良好的可管理性和适應性。特别是在不同使用者規模的情況下可以有效提高整體系統的使用率。實驗結果表明,随着虛拟機數量的增加,VMStore的吞吐能力線性增加,很好地解決了系統中大部分虛拟機同時啟動時存儲吞吐率不足的問題。
本文轉自 wws5201985 51CTO部落格,原文連結:http://blog.51cto.com/wws5201985/785432,如需轉載請自行聯系原作者