摘 要: 將GlusterFS應用于OpenStack中替代swift模塊,并針對讀寫性能進行測試,實驗證明在GlusterFS下虛擬機讀寫性能指標IOPS明顯提高。
關鍵詞: 云計算;OpenStack;虛擬化;GlusterFS
云計算[1]是近年來商業和科研機構關注的熱點,云數據中心通過虛擬化技術將計算資源、存儲資源和網絡資源構建成動態的虛擬資源池,從而實現了有效整合資源、提高資源利用率、節約能源,降低了運行成本。
虛擬資源管理技術實現云計算資源自動部署、動態擴展、按需分配。OpenStack作為目前最大的開源云計算管理平臺,實現了對虛擬化平臺的管理。目前OpenStack還不夠成熟,因此各方的關注點集中在功能的完善和性能的優化提升上。因此研究OpenStack的功能和性能將對虛擬資源的有效利用產生重要影響,同時也對教育和科研具有深遠的意義。
1 OpenStack[2]云計算虛擬化平臺
1.1 OpenStack簡介
當前云環境中的資源都是通過虛擬化技術將底層的硬件資源進行虛擬化,形成一個龐大的虛擬資源池之后,再通過動態伸縮的部署方式以服務的形式提供給用戶。隨著使用云計算的用戶持續增加,云數據中心的規模也不斷加大,高效利用云中的虛擬化資源并快速提供給用戶,減少用戶等待時間,已經成為目前云計算環境中虛擬機的重要研究問題之一。
OpenStack允許客戶通過部署虛擬機來創建資源,在節點上通過使用KVM鏡像等對虛擬機進行一系列配置,客戶端用戶只需申請自己需要的虛擬資源即可。OpenStack完成資源虛擬化后,提供對虛擬資源進行管理的功能,負責在云上部署各種應用和文件,同時還要提供對應用和文件的檢索,創建和分配虛擬機。當虛擬機用完之后要進行撤銷,要提供用戶和管理員接口,用戶要能知道自己應用的情況,管理員也要能知道整個資源池的占用情況,負責資源的分配、檢索和收回。
1.2 Swift模塊的作用
Swift[3]是OpenStack的存儲模塊,主要負責大規模數據對象管理,包括冗余存儲管理、備份數據管理、數據容量預測等,存儲對象包括存檔數據、圖像或視頻等多種應用的數據,存儲能力可以達到PB級別。
Swift具有很高的數據持久性、持續的可擴展性、無單點故障等優點,Swift架構的優越性使其能夠對外提供良好的對象存儲服務能力,但在公有云的構建上,其功能存在不足之處。本文提出了采用GlusterFS替換Swift模塊,旨在為OpenStack提供更加快速、可靠、穩定的服務。
1.3 OpenStack現狀及Swift的乏力表現
OpenStack部署云環境的優點是靈活,因此OpenStack的虛擬化應用越來越廣泛,同時廣泛地應用也就意味著要求的多樣和嚴格。部署在OpenStack上的應用,比如GIS應用的對小文件(小于4 KB)的快速隨機讀寫要求,Web應用中對視頻的這種高度壓縮的大文件的存儲,以及網絡中對廉價大量存儲的要求,都使得虛擬化平臺數據傳輸的問題日益凸顯出來。Swift目前在應對不同要求上表現不盡如人意,其發展腳步也略慢于OpenStack。OpenStack中數據的快速讀寫問題帶來的影響已經超過計算問題。
2 GlusterFS
2.1 GlusterFS[4]已經為OpenStack做好準備
2013年5月9日GlusterFS3.4發行,該版本主要是增強了云、虛擬化和性能,支持KVM鏡像在Glusterfs上的部署和運行,從而支持OpenStack虛擬化平臺與Glusterfs的結合。GlusterFS3.4為用戶和應用開發者帶來了高可靠性、數據機動性等方面的特性。GlusterFS的諸多特性,都可以作為OpenStack的強大后盾。
GlusterFS完全由軟件實現,完全獨立于硬件和操作系統,GlusterFS大量部署在基于廉價硬件的各種操作系統上,構成集中統一的虛擬存儲資源池。
GlusterFS存儲服務支持NFS、CIFS、HTTP、FTP以及Gluster原生協議,完全與POSIX標準兼容。這與正在發展的OpenStack非常契合,所以在OpenStack上的二次開發更加靈活,在拓展其虛擬化應用時,不用考慮其存儲服務的限制。
2.2 GlusterFS與OpenStack結合的優勢及難點
Glusterfs作為分布式文件系統始終致力于多要求下性能提升。所以廉價大量冗余,小文件高速隨機讀寫,視頻等大文件快速寫入都作為不斷被攻克的問題。直至現在有了比較全面的性能優勢,作為OpenStack后盾可以強化對各種應用的支持。
在OpenStack[5]與Glusterfs結合中,有很多結合方式,本文主要通過修改Compute節點配置文件,根據虛擬機實例、鏡像的存儲區域和虛擬機虛擬硬盤、存儲區的不同,對比完成四種虛擬機部署。
這些部署設計各有優劣,針對不同的應用要求,綜合考慮可靠性、可用性,以及數據的讀寫速度、冗余等。可靠性、可用性可以通過Glusterfs完全保障,但是在OpenStack虛擬化平臺下讀寫的數據的讀寫速度不明確。于是通過實驗,利用FIO存儲壓力測試工具,模擬GIS應用和數據庫應用對數據的讀寫要求,對不同部署設計進行測試,并最終通過實驗結果說明部署場景對不同應用的支持力度。
3 實驗測試
在OpenStack虛擬平臺下,修改其計算節點的配置文件,從而使OpenStack計算節點啟動虛擬機的鏡像和實例部署在GlusterFS[5]之上,并分別測試虛擬機對虛擬機自身機虛擬硬盤和直接訪問GlusterFS做對比。
主要針對以下四種部署環境進行研究:
場景1:虛擬機實例和鏡像部署在OpenStack計算節點,并且訪問虛擬機自身存儲區。
場景2:虛擬機實例和鏡像部署在GlusterFS上面,并且訪問虛擬機自身存儲區。
場景3:虛擬機實例和鏡像部署在OpenStack計算節點,并訪問掛載的GlusterFS作為其存儲區。
場景4:虛擬機實例和鏡像部署在GlusterFS上面,并且訪問掛載GlusterFS作為其存儲區。
以下在OpenStack虛擬機的4種部署場景中,分別選取大小為4 kB和4 MB的文件,對其隨機寫性能進行測試。實驗架構圖如圖1所示。
3.2 實驗結果
實驗結果分析如下:
(1)場景1:這是OpenStack傳統的虛擬機部署方式,并且訪問虛擬機本身的虛擬硬盤空間,用這種方式來做為基準衡量其他方式的讀寫性能。
(2)場景2:這種部署方式是相對較好的,因為對虛擬機用戶透明,存儲的部署也對用戶透明,同時在GlusterFS的保障下能保證虛擬機的高可用性。但是其讀寫性能比直接對GlusterFS差,比場景1要好,這主要是受制于數據要通過虛擬機完成對虛擬硬盤的讀寫,其后數據再寫入到GlusterFS,整個數據流轉多了虛擬機這一中間層。這表明虛擬機部署在GlusterFS沒有造成讀寫上的延遲。
?。?)場景3:讀寫性能在場景2之上,因為越過了虛擬層,數據直接流轉到GlusterFS,有很高的讀寫性能,但是不能保證虛擬機的高可用性,因為鏡像和實例沒有部署在GlusterFS上面。
?。?)場景4:讀寫性能也在場景2之上,并且讀寫性能跟場景3基本相當。也是因為越過了虛擬層,而且也可以保證虛擬機的高可用性。但是對于虛擬機用戶的要求高一點,因為需要用戶虛擬機在部署過程中掛載GlusterFS作為存儲區。這也表明虛擬機部署在GlusterFS沒有造成讀寫上的延遲。
實驗結果表明,OpenStack將虛擬機部署在GlusterFS之上,沒有帶來讀寫上的延遲,反而有了更加優越的讀寫性能,同時憑借GlusterFS自身的優勢,能保障虛擬機資源的高可用性。四種場景的寫性能測試如圖2、圖3所示。
在云計算中,虛擬化資源的管理是一項關鍵技術,它能夠有效整合資源、提高資源利用率、節約能源、降低運行成本。而現在市場占有率和支持陣營最大的云計算管理平臺OpenStack已經體現出其開源的優勢,功能日趨完善,性能日益提高。本文在OpenStack的基礎之上,采用性能更加優越的GlusterFS代替其Swift模塊,使讀寫性能、擴展能力有了較高的提升,并通過實驗驗證了策略的可行性和有效性。提升了OpenStack對虛擬化的高效管理,同時也對教育和科研具有重要意義。
參考文獻
[1] 鄧倩妮,陳全.云計算及其關鍵技術[J].計算機應用,2009,29(9):2562-2567.
[2] OpenStack[EB/OL].[2013-07-22].http://www.OpenStack.org.
[3] 程輝.Swift:OpenStack對象存儲[J].程序員,2012(7),112-115.
[4] GlusterFS[EB/OL].[2013-07-22].http://www.gluster.org.
[5] 吳聯盟,王洪波,程時端.OpenStack虛擬機啟動機制研究[J].中國科技論文在線,2012(11):263-265.