齊嬋穎 李育超 房 謹 吳海東
基于云服務提供商的云存儲系統性能評測方法
齊嬋穎 李育超 房 謹 吳海東
云存儲系統目前應用廣泛,但性能直接影響著云存儲服務的質量,成為云用戶的一個瓶頸。而提供云存儲服務的兩個角色云存儲設備提供商和云存儲服務提供商都迫切希望通過改進自己的設備和服務,進而提供給云存儲用戶更高的性能。針對目前云服務提供商難以較好的定位云存儲系統性能瓶頸的問題,本文提出了基于云服務提供商的云存儲系統性能評測方法。該方法針對云存儲系統的四個層次,從數據中心邊緣分別對其進行評測,逐層確定性能瓶頸,為云服務提供商提供了改進參考依據,且為云用戶選用云存儲系統提供了可靠指導。
云服務提供商關注的不僅是用戶對云存儲系統的滿意度,還關注云存儲系統設備的性能,追求云存儲系統服務的利益最大化。因此,云存儲服務提供商關注云存儲系統的各個層次。通過OpenStack Swift集群搭建了一個本地私有云存儲系統,從云服務商角度出發,針對該系統從各個層次進行測試。通過對測試結果進行分析,找到影響云存儲系統性能的重要因素,探索基于云存儲服務提供商的性能瓶頸,同時給存儲設備提供商和云存儲服務提供商提供了改進方向,并為用戶選擇云存儲系統提供了參考。
與云存儲系統密切相關的角色有3個:云存儲設備提供商、云存儲服務提供商和最終用戶。云存儲設備提供商和云存儲服務提供商統稱為云服務提供商。
設備提供商是指為云存儲系統提供磁盤陣列、服務器等存儲設備的廠商,關注的云存儲系統性能層次為存儲層和基礎管理層。
云存儲服務提供商購買服務器及存儲設備,搭建云存儲系統,給終端提供云存儲服務,關注系統每一部分的性能。測試位置位于數據中心內部或者邊緣,性能數據更穩定可信。此外,服務提供商還關注云存儲系統的實時性能。通過分別測試CPU性能、IO性能以及網絡性能與用戶數量的關系,分別得出CPU、IO和網絡與用戶數的關系,從而依次估測在CPU性能最佳、IO性能最佳及網絡性能最佳時的極限負載。
設備提供商和最終用戶對云存儲系統的評測是通過網絡進行的,而云存儲服務提供商是在數據中心邊緣直接對云存儲系統性能進行評測,評測結果也更接近真實性能。
云存儲系統評測是云存儲系統研究的一個重要方面,是云存儲系統研究與應用的重要理論基礎和支撐技術。伴隨著云存儲系統的發展,對云存儲性能的研究,已經成為學術界對云存儲和云計算研究的一個熱點。
云存儲系統由存儲設備層、基礎管理層、云存儲服務接口層和應用訪問層四個層次組成。目前,對云存儲系統存儲設備層和基礎管理層的性能研究比較成熟,業界有通用的性能評測基準,而對云存儲服務接口層和用戶訪問層的研究不是很多,尚未有統一的評測標準,不同云服務提供商提供的云存儲系統很難進行橫向對比,用戶也很難分辨選擇適合自己的云存儲系統。下面我們分別從云存儲系統的層次結構對云存儲系統基準測試研究現狀進行分析。
(1)存儲設備層測試研究
存儲設備層可以用現有的云存儲系統基準測試工具進行評測。最常用的的測試云存儲系統I/O操作性能的最常用基準工具是IOMeter、IOZone。IOMeter通過模擬各種常用的負載情況對云存儲系統進行性能測量和評估,模擬種類包括文件服務器、工作站、在線事務處理、WEB服務器等。它是一個單一或集群系統的I/O子系統的測量及特征描述工具。IOZone主要特點是定義和實現了各種文件I/O操作,其最大的缺點是無法模擬Internet模式下的Web、Email和其他應用程序的工作負載特征。
存儲設備層的性能評測相對成熟,可用現有工具進行評測。
(2)基礎管理層測試研究
基礎管理層目前最常用的基準測試工具是FSPoly和LZPack。
FSPoly通過測試存儲系統中文件系統的聚合帶寬及并發連接數兩項性能指標,為整個系統的評測提供強有力的建議。
LZPack是我們在海量存儲性能測試中根據POSIX的文件接口改造IOZone開發的使其能適用于POSIX接口的測試工具,支持并行測試。通過反復執行少數幾種系統操作來獲取目標系統在特定操作方面的性能差異。該項評測主要測試的是應用程序可見的元數據和數據API的效率,可為評價使用該文件操作API集合的應用程序設計者提供性能評價的依據。
(3)云存儲服務接口層和用戶訪問層測試研究
云存儲服務接口層和用戶訪問層的性能評測業界也有一些研究。YCSB(Yahoo Cloud Serving Benchmark)是Yahoo開發的面向key/value的云存儲系統評估。Postmark是一種基于特定操作的基準測試工具,該工具根據Email和Netnews服務器的訪問特性定制了特殊的處理方式來模擬實際的IO操作。
目前,業界對云存儲系統各個層次的性能均有研究,但尚未有從云服務提供商角度出發的完整的性能測試,用戶很難在單一選擇云服務提供商的情況下保證性能的最優化。由于云存儲系統需要使用計費模式,用戶需要根據自己的使用量進行付費,用戶的體驗滿意度對云存儲系統的發展尤為重要,而性能直接影響著用戶的感受。因此,研究如何幫助用戶快速的從眾多的云服務提供商中做出選擇,具有很高的研究價值。
評測需求分析
云存儲系統的存儲設備層和基礎管理層可以用成熟的基準性能評測工具進行測試,然而,目前尚未有統一衡量云存儲系統云存儲服務接口層和用戶訪問層性能的評測工具,且不同廠商提供的云存儲系統不具有可比性,用戶很難選擇對自己性價比最高的云存儲系統,對于一部分云存儲廠商,由于無法說服用戶自己提供的云存儲服務質量最優而失去了一部分客戶,對廠商也是一種損失。因此,如何評測云存儲系統的性能,用戶和云服務提供商都特別關心。而不同云存儲系統的性能只能通過統一的指標去衡量。因此,如何針對云存儲系統確定通用的評測指標,以及研究如何進行不同云存儲系統的橫向指標對比具有重要意義。
評測指標體系研究
云存儲系統有四個層次,使用對象對性能的要求也不一樣,因此,需要探索統一的涵蓋云存儲系統特點的通用評測體系,針對該評測體系,明確具體的評測指標,并給出評測標準,才可以使云存儲系統性能評測有章可循。
云存儲系統評測指標體系涵蓋了各個層次,圖1給出了性能評測指標體系的構成圖。
從圖可以看出,指標體系分為三個層次。
第一層,目標層。該層在本圖中即為性能指標體系,表明本評測體系是針對云存儲系統的性能進行評測的。
第二層,系統層。該層根據云存儲系統從上到下的層次關系,將性能指標體系按層次進行了分類。
第三層,指標層。該層給出了各子系統層面需要完成的測試和得到的評測指標,可用于對云存儲系統進行多個層次的性能測試。
本評測體系各層的評測既可單獨實施,也可結合起來作為一個整體來評測。例如,既可以單獨評測存儲設備的IOPS,也可以把IOPS和數據傳輸率結合起來評測存儲設備的性能,進而判斷存儲設備是否使當前云存儲系統性能發揮最優。

圖1 性能評測指標
性能指標說明
根據性能指標體系,可以看出,云存儲系統不同的層次有不同的指標,各個層次主要的指標說明如表1所示。
評測環境
基于云服務提供商的云存儲系統性能需要對云存儲系統進行整體的評測,即從存儲設備層、基礎管理層、服務接口層和用戶訪問層分別進行評測。評測目標如圖2所示。
針對云存儲系統的四個層次,逐層提出性能評測指標,明確每個指標的評測對象和評測標準,并給出確定可行的評測思路參考。通過逐層評測可以及時發現性能瓶頸,有效的給各個角色及時反饋評測效果,幫助提升性能。
我們的云存儲系統是通過在本地搭建OpenStack Swift集群來實現,評測環境如圖3所示。
本系統由三臺PC機搭建,其中PC1安裝Keystone,作為OpenStack Swift認證服務器,PC2 和PC3并列作為代理服務器和存儲服務器,且可以并行擴展,詳細配置信息如表2所示。

表2 OpenStack Swift集群詳細配置信息

表1 云存儲系統各層次性能指標說明

圖2 評測方案

圖3 OpenStack Swift集群部署
存儲設備層用IOmeter測試,為了對比分析,存儲設備分別用A和B進行對比測試。其中,A設備是本機自帶的,B設備是8塊大小2T的希捷硬盤組成的RAID60組成的浪潮磁盤陣列。
存儲設備層測試
云存儲系統的存儲設備層主要是由磁盤陣列、服務器硬盤等物理設備組成,測試的主要性能指標為IOPS和數據傳輸率。
IOPS測試
IOPS是指裸盤或者磁盤陣列提供給云存儲系統的邏輯盤在單位時間內能夠處理的IO請求數,分為讀和寫兩個指標,它反映了存儲設備控制器的性能。存儲設備IOPS的大小在最底層決定了系統整體的IOPS能力。實驗中數據塊大小設置為512B。
在100% Read時,IOPS測試結果如圖4所示。
單獨觀察設備A或設備B的IOPS,會發現在實驗配置完全相同的連續測試的9組數據中,最大峰值和最小峰值差異較大,例如設備A的第2組數據和第7組數據,相差2000多,占到了平均值的50%。出現這種狀況,主要與存儲設備使用的IO調度策略、cache命中率,以及IOmeter具體實現相關,而IOmeter具體實現模擬了用戶操作,故用多次平均值來抵消這種影響。對比設備A與設備B的IOPS平均值,顯然單就此測試項目來看,設備B優于設備A。
在100% Write時,IOPS測試結果如圖5所示。
由上圖知,在順序寫數據方面,設備A的IOPS明顯優于設備B,這與設備B使用RAID60有關,RAID60的缺點就是寫入速度很慢。因此,當系統事務類型與此測試項目相似時,設備A明顯優于設備B。
綜上所述,在數據塊大小恒定512B,全部順序讀與全部順序寫時,設備A與設備B各有所長,這就需要根據系統的事務類型更傾向于讀操作還是寫操作來進行判斷。

圖4 100%Read時IOPS測試

圖5 100%Write時IOPS測試結果
數據傳輸率測試
存儲設備數據傳輸率是指裸盤或者磁盤陣列提供給云存儲系統的邏輯盤在單位時間內能夠傳輸的數據量,分為讀和寫兩個指標。存儲設備數據傳輸率在最底層限制了系統整體的數據傳輸率。
實驗中數據塊大小設置為256KB。在100% Read時,數據傳輸率測試結果如圖6所示。
由上圖可見,相同環境下,對于數據塊為256KB的順序讀,不同存儲設備數據傳輸率不同。單就此測試項目來看,設備A略優于設備B。
在100% Write時,測試結果如圖7所示。
由上圖可知,相同環境下,對于數據塊為256KB的順序寫,不同存儲設備讀數據傳輸率不同。單就此測試項目來看,設備A優于設備B。
綜上所述,本機存儲設備在讀寫數據傳輸率方面都優于外接磁盤陣列。
基礎管理層測試
云存儲系統的數據管理層即狹義的文件系統層,主要測試元數據吞吐率。
測試環境
基礎管理層測試環境如圖8所示。
測試中,主節點負責發送測試命令到各測試節點,并收集結果;各個測試節點分別負責通過網絡在NFS服務器提供的掛載點上生成負載;而NFS服務器負責給測試節點提供共用的NFS掛載點。
元數據吞吐率測試
基礎管理層元數據吞吐量主要是指云存儲系統所使用的文件系統在單位時間內能夠操作的元數據量。通過測試存儲系統對元數據的處理速率,進而衡量網絡存儲系統對文件或目錄操作的支持能力。測試結果如表3所示。

圖6 100%Read時數據傳輸率測試

圖7 100%Write時數據傳輸率測試

表3 元數據吞吐率測試
從表3可見,當數據塊大小不同時,相同元數據操作每秒執行次數相差不大。一般來說,元數據結構體大小隨數據大小變化不大,這也決定了元數據每秒操作數隨數據塊大小變化不大。
云存儲服務接口層測試
云存儲系統服務接口層把各種操作封裝成API接口,由服務接口層統一對外提供,該層主要測試數據傳輸率。
云存儲服務接口層數據傳輸率通過調用上傳下載API計算出數據傳輸率,進而推導出文件的讀寫性能。
本測試旨在測試Swift數據傳輸率。我們針對特定文件,分別測試不同文件大小時,調用Swift的上傳下載API,通過運行時間計算出數據傳輸率,分析網絡對讀寫性能的影響。測試中,文件格式為.doc。測試結果如圖9所示。

圖8 實驗拓撲圖

圖9 數據傳輸率測試
從圖可以看出,Swift的上傳速率與文件大小正相關。同樣的網絡環境下,文件越大,上傳速率越大。下載速率與文件大小關系不大,同樣的網絡環境,下載速率變化不大,浮動在1M左右。可見,網絡對下載有一定的影響。
用戶訪問層測試
云存儲系統的用戶訪問層對外提供典型應用服務,其性能通過測試不同文件類型、不同文件大小、不同時間點下目標云存儲系統的典型應用的性能來測試。
典型應用性能測試通過控制變量法測試,通過設計不同的變量變化來測試不同文件類型、不同文件大小以及不同時間點對目標云存儲系統的性能影響,從而尋找性能瓶頸。
不同文件類型測試
固定文件大小,變化文件類型,測試文件類型對云存儲系統性能的影響。實驗中,文件大小設定為1286KB,針對不同文件類型,分別調用上傳下載API,運行200次,用分段統計的方式,分別對比前25次、前50次等的平均值,測試結果如圖10和圖11所示。
從圖中可以看出,文件格式對讀寫性能有一定影響,其中寫性能高于讀性能。對于寫性能,文本文檔的速率小于圖形圖像和壓縮文本的速率。其中文本文件和視頻文件的上傳速率低于1M,而圖形圖像和壓縮包的上傳速率大于1M。對于讀性能,整個讀過程比較穩定,文本文檔及圖形圖像的速率都遠低于視頻文件的速率,且所有的下載速率都低于1M。
不同文件大小測試
固定文件類型,變化文件大小,測試文件大小對云存儲系統性能的影響。實驗中,文件類型選用doc,文件大小依次增大,分別調用上傳下載API,運行200次,用分段統計的方式,分別對比前25次、前50次等的平均值,
測試結果如圖上12和圖13所示。

圖10 文件類型VS上傳速率

圖11 文件類型VS下載速率

圖12 文件大小VS上傳速率

圖13 文件類型VS下載速率
從圖可以看出,文件大小對寫性能有較大影響。文件越大,寫性能越高,文件大小與寫速率成正比。文件大小對讀性能影響不大,小文件讀性能也可以很高,大文件讀性能也可以不高,一般讀性能在一個范圍浮動。
不同時間點測試

圖14 不同時間VS上傳速率

圖15 不同時間VS下載速率
固定文件類型和文件大小,測試不同時間點云存儲系統的性能,從而判斷網絡環境對云存儲系統性能的影響。實驗中,文件類型選用doc,文件大小設定為16MB,測試結果如圖14和圖15所示。
從圖可以看出,不同時間點的讀寫性能有一定的差異,但在一定范圍內浮動。其中,寫性能遠遠高于從云端讀性能,寫性能在8M左右浮動,讀性能在1M左右浮動。
本文分析了云服務提供商的特點,搭建了OpenStack Swift本地云存儲系統,并從云服務商角度出發,針對云存儲系統的四個層次分別在數據中心進行了測試。實驗結果表明,云存儲系統的各個層次都存在影響性能的因素,這些瓶頸為云存儲設備提供商和云存儲服務提供商提供了改進參考依據。此外,用戶可以根據自己的需求橫向對比不同云存儲系統的性能,根據自己的側重點選取最適合的云存儲系統。
齊嬋穎 李育超 房 謹 吳海東
中國飛行試驗研究院
齊嬋穎(1990-)女,陜西西安人,碩士研究生,助理工程師,主要研究方向:數據管理。


10.3969/j.issn.1001-8972.2015.07.001