齊嬋穎 李育超 房 謹(jǐn) 吳海東
基于云服務(wù)提供商的云存儲系統(tǒng)性能評測方法
齊嬋穎 李育超 房 謹(jǐn) 吳海東
云存儲系統(tǒng)目前應(yīng)用廣泛,但性能直接影響著云存儲服務(wù)的質(zhì)量,成為云用戶的一個(gè)瓶頸。而提供云存儲服務(wù)的兩個(gè)角色云存儲設(shè)備提供商和云存儲服務(wù)提供商都迫切希望通過改進(jìn)自己的設(shè)備和服務(wù),進(jìn)而提供給云存儲用戶更高的性能。針對目前云服務(wù)提供商難以較好的定位云存儲系統(tǒng)性能瓶頸的問題,本文提出了基于云服務(wù)提供商的云存儲系統(tǒng)性能評測方法。該方法針對云存儲系統(tǒng)的四個(gè)層次,從數(shù)據(jù)中心邊緣分別對其進(jìn)行評測,逐層確定性能瓶頸,為云服務(wù)提供商提供了改進(jìn)參考依據(jù),且為云用戶選用云存儲系統(tǒng)提供了可靠指導(dǎo)。
云服務(wù)提供商關(guān)注的不僅是用戶對云存儲系統(tǒng)的滿意度,還關(guān)注云存儲系統(tǒng)設(shè)備的性能,追求云存儲系統(tǒng)服務(wù)的利益最大化。因此,云存儲服務(wù)提供商關(guān)注云存儲系統(tǒng)的各個(gè)層次。通過OpenStack Swift集群搭建了一個(gè)本地私有云存儲系統(tǒng),從云服務(wù)商角度出發(fā),針對該系統(tǒng)從各個(gè)層次進(jìn)行測試。通過對測試結(jié)果進(jìn)行分析,找到影響云存儲系統(tǒng)性能的重要因素,探索基于云存儲服務(wù)提供商的性能瓶頸,同時(shí)給存儲設(shè)備提供商和云存儲服務(wù)提供商提供了改進(jìn)方向,并為用戶選擇云存儲系統(tǒng)提供了參考。
與云存儲系統(tǒng)密切相關(guān)的角色有3個(gè):云存儲設(shè)備提供商、云存儲服務(wù)提供商和最終用戶。云存儲設(shè)備提供商和云存儲服務(wù)提供商統(tǒng)稱為云服務(wù)提供商。
設(shè)備提供商是指為云存儲系統(tǒng)提供磁盤陣列、服務(wù)器等存儲設(shè)備的廠商,關(guān)注的云存儲系統(tǒng)性能層次為存儲層和基礎(chǔ)管理層。
云存儲服務(wù)提供商購買服務(wù)器及存儲設(shè)備,搭建云存儲系統(tǒng),給終端提供云存儲服務(wù),關(guān)注系統(tǒng)每一部分的性能。測試位置位于數(shù)據(jù)中心內(nèi)部或者邊緣,性能數(shù)據(jù)更穩(wěn)定可信。此外,服務(wù)提供商還關(guān)注云存儲系統(tǒng)的實(shí)時(shí)性能。通過分別測試CPU性能、IO性能以及網(wǎng)絡(luò)性能與用戶數(shù)量的關(guān)系,分別得出CPU、IO和網(wǎng)絡(luò)與用戶數(shù)的關(guān)系,從而依次估測在CPU性能最佳、IO性能最佳及網(wǎng)絡(luò)性能最佳時(shí)的極限負(fù)載。
設(shè)備提供商和最終用戶對云存儲系統(tǒng)的評測是通過網(wǎng)絡(luò)進(jìn)行的,而云存儲服務(wù)提供商是在數(shù)據(jù)中心邊緣直接對云存儲系統(tǒng)性能進(jìn)行評測,評測結(jié)果也更接近真實(shí)性能。
云存儲系統(tǒng)評測是云存儲系統(tǒng)研究的一個(gè)重要方面,是云存儲系統(tǒng)研究與應(yīng)用的重要理論基礎(chǔ)和支撐技術(shù)。伴隨著云存儲系統(tǒng)的發(fā)展,對云存儲性能的研究,已經(jīng)成為學(xué)術(shù)界對云存儲和云計(jì)算研究的一個(gè)熱點(diǎn)。
云存儲系統(tǒng)由存儲設(shè)備層、基礎(chǔ)管理層、云存儲服務(wù)接口層和應(yīng)用訪問層四個(gè)層次組成。目前,對云存儲系統(tǒng)存儲設(shè)備層和基礎(chǔ)管理層的性能研究比較成熟,業(yè)界有通用的性能評測基準(zhǔn),而對云存儲服務(wù)接口層和用戶訪問層的研究不是很多,尚未有統(tǒng)一的評測標(biāo)準(zhǔn),不同云服務(wù)提供商提供的云存儲系統(tǒng)很難進(jìn)行橫向?qū)Ρ?,用戶也很難分辨選擇適合自己的云存儲系統(tǒng)。下面我們分別從云存儲系統(tǒng)的層次結(jié)構(gòu)對云存儲系統(tǒng)基準(zhǔn)測試研究現(xiàn)狀進(jìn)行分析。
(1)存儲設(shè)備層測試研究
存儲設(shè)備層可以用現(xiàn)有的云存儲系統(tǒng)基準(zhǔn)測試工具進(jìn)行評測。最常用的的測試云存儲系統(tǒng)I/O操作性能的最常用基準(zhǔn)工具是IOMeter、IOZone。IOMeter通過模擬各種常用的負(fù)載情況對云存儲系統(tǒng)進(jìn)行性能測量和評估,模擬種類包括文件服務(wù)器、工作站、在線事務(wù)處理、WEB服務(wù)器等。它是一個(gè)單一或集群系統(tǒng)的I/O子系統(tǒng)的測量及特征描述工具。IOZone主要特點(diǎn)是定義和實(shí)現(xiàn)了各種文件I/O操作,其最大的缺點(diǎn)是無法模擬Internet模式下的Web、Email和其他應(yīng)用程序的工作負(fù)載特征。
存儲設(shè)備層的性能評測相對成熟,可用現(xiàn)有工具進(jìn)行評測。
(2)基礎(chǔ)管理層測試研究
基礎(chǔ)管理層目前最常用的基準(zhǔn)測試工具是FSPoly和LZPack。
FSPoly通過測試存儲系統(tǒng)中文件系統(tǒng)的聚合帶寬及并發(fā)連接數(shù)兩項(xiàng)性能指標(biāo),為整個(gè)系統(tǒng)的評測提供強(qiáng)有力的建議。
LZPack是我們在海量存儲性能測試中根據(jù)POSIX的文件接口改造IOZone開發(fā)的使其能適用于POSIX接口的測試工具,支持并行測試。通過反復(fù)執(zhí)行少數(shù)幾種系統(tǒng)操作來獲取目標(biāo)系統(tǒng)在特定操作方面的性能差異。該項(xiàng)評測主要測試的是應(yīng)用程序可見的元數(shù)據(jù)和數(shù)據(jù)API的效率,可為評價(jià)使用該文件操作API集合的應(yīng)用程序設(shè)計(jì)者提供性能評價(jià)的依據(jù)。
(3)云存儲服務(wù)接口層和用戶訪問層測試研究
云存儲服務(wù)接口層和用戶訪問層的性能評測業(yè)界也有一些研究。YCSB(Yahoo Cloud Serving Benchmark)是Yahoo開發(fā)的面向key/value的云存儲系統(tǒng)評估。Postmark是一種基于特定操作的基準(zhǔn)測試工具,該工具根據(jù)Email和Netnews服務(wù)器的訪問特性定制了特殊的處理方式來模擬實(shí)際的IO操作。
目前,業(yè)界對云存儲系統(tǒng)各個(gè)層次的性能均有研究,但尚未有從云服務(wù)提供商角度出發(fā)的完整的性能測試,用戶很難在單一選擇云服務(wù)提供商的情況下保證性能的最優(yōu)化。由于云存儲系統(tǒng)需要使用計(jì)費(fèi)模式,用戶需要根據(jù)自己的使用量進(jìn)行付費(fèi),用戶的體驗(yàn)滿意度對云存儲系統(tǒng)的發(fā)展尤為重要,而性能直接影響著用戶的感受。因此,研究如何幫助用戶快速的從眾多的云服務(wù)提供商中做出選擇,具有很高的研究價(jià)值。
評測需求分析
云存儲系統(tǒng)的存儲設(shè)備層和基礎(chǔ)管理層可以用成熟的基準(zhǔn)性能評測工具進(jìn)行測試,然而,目前尚未有統(tǒng)一衡量云存儲系統(tǒng)云存儲服務(wù)接口層和用戶訪問層性能的評測工具,且不同廠商提供的云存儲系統(tǒng)不具有可比性,用戶很難選擇對自己性價(jià)比最高的云存儲系統(tǒng),對于一部分云存儲廠商,由于無法說服用戶自己提供的云存儲服務(wù)質(zhì)量最優(yōu)而失去了一部分客戶,對廠商也是一種損失。因此,如何評測云存儲系統(tǒng)的性能,用戶和云服務(wù)提供商都特別關(guān)心。而不同云存儲系統(tǒng)的性能只能通過統(tǒng)一的指標(biāo)去衡量。因此,如何針對云存儲系統(tǒng)確定通用的評測指標(biāo),以及研究如何進(jìn)行不同云存儲系統(tǒng)的橫向指標(biāo)對比具有重要意義。
評測指標(biāo)體系研究
云存儲系統(tǒng)有四個(gè)層次,使用對象對性能的要求也不一樣,因此,需要探索統(tǒng)一的涵蓋云存儲系統(tǒng)特點(diǎn)的通用評測體系,針對該評測體系,明確具體的評測指標(biāo),并給出評測標(biāo)準(zhǔn),才可以使云存儲系統(tǒng)性能評測有章可循。
云存儲系統(tǒng)評測指標(biāo)體系涵蓋了各個(gè)層次,圖1給出了性能評測指標(biāo)體系的構(gòu)成圖。
從圖可以看出,指標(biāo)體系分為三個(gè)層次。
第一層,目標(biāo)層。該層在本圖中即為性能指標(biāo)體系,表明本評測體系是針對云存儲系統(tǒng)的性能進(jìn)行評測的。
第二層,系統(tǒng)層。該層根據(jù)云存儲系統(tǒng)從上到下的層次關(guān)系,將性能指標(biāo)體系按層次進(jìn)行了分類。
第三層,指標(biāo)層。該層給出了各子系統(tǒng)層面需要完成的測試和得到的評測指標(biāo),可用于對云存儲系統(tǒng)進(jìn)行多個(gè)層次的性能測試。
本評測體系各層的評測既可單獨(dú)實(shí)施,也可結(jié)合起來作為一個(gè)整體來評測。例如,既可以單獨(dú)評測存儲設(shè)備的IOPS,也可以把IOPS和數(shù)據(jù)傳輸率結(jié)合起來評測存儲設(shè)備的性能,進(jìn)而判斷存儲設(shè)備是否使當(dāng)前云存儲系統(tǒng)性能發(fā)揮最優(yōu)。
圖1 性能評測指標(biāo)
性能指標(biāo)說明
根據(jù)性能指標(biāo)體系,可以看出,云存儲系統(tǒng)不同的層次有不同的指標(biāo),各個(gè)層次主要的指標(biāo)說明如表1所示。
評測環(huán)境
基于云服務(wù)提供商的云存儲系統(tǒng)性能需要對云存儲系統(tǒng)進(jìn)行整體的評測,即從存儲設(shè)備層、基礎(chǔ)管理層、服務(wù)接口層和用戶訪問層分別進(jìn)行評測。評測目標(biāo)如圖2所示。
針對云存儲系統(tǒng)的四個(gè)層次,逐層提出性能評測指標(biāo),明確每個(gè)指標(biāo)的評測對象和評測標(biāo)準(zhǔn),并給出確定可行的評測思路參考。通過逐層評測可以及時(shí)發(fā)現(xiàn)性能瓶頸,有效的給各個(gè)角色及時(shí)反饋評測效果,幫助提升性能。
我們的云存儲系統(tǒng)是通過在本地搭建OpenStack Swift集群來實(shí)現(xiàn),評測環(huán)境如圖3所示。
本系統(tǒng)由三臺PC機(jī)搭建,其中PC1安裝Keystone,作為OpenStack Swift認(rèn)證服務(wù)器,PC2 和PC3并列作為代理服務(wù)器和存儲服務(wù)器,且可以并行擴(kuò)展,詳細(xì)配置信息如表2所示。
表2 OpenStack Swift集群詳細(xì)配置信息
表1 云存儲系統(tǒng)各層次性能指標(biāo)說明
圖2 評測方案
圖3 OpenStack Swift集群部署
存儲設(shè)備層用IOmeter測試,為了對比分析,存儲設(shè)備分別用A和B進(jìn)行對比測試。其中,A設(shè)備是本機(jī)自帶的,B設(shè)備是8塊大小2T的希捷硬盤組成的RAID60組成的浪潮磁盤陣列。
存儲設(shè)備層測試
云存儲系統(tǒng)的存儲設(shè)備層主要是由磁盤陣列、服務(wù)器硬盤等物理設(shè)備組成,測試的主要性能指標(biāo)為IOPS和數(shù)據(jù)傳輸率。
IOPS測試
IOPS是指裸盤或者磁盤陣列提供給云存儲系統(tǒng)的邏輯盤在單位時(shí)間內(nèi)能夠處理的IO請求數(shù),分為讀和寫兩個(gè)指標(biāo),它反映了存儲設(shè)備控制器的性能。存儲設(shè)備IOPS的大小在最底層決定了系統(tǒng)整體的IOPS能力。實(shí)驗(yàn)中數(shù)據(jù)塊大小設(shè)置為512B。
在100% Read時(shí),IOPS測試結(jié)果如圖4所示。
單獨(dú)觀察設(shè)備A或設(shè)備B的IOPS,會發(fā)現(xiàn)在實(shí)驗(yàn)配置完全相同的連續(xù)測試的9組數(shù)據(jù)中,最大峰值和最小峰值差異較大,例如設(shè)備A的第2組數(shù)據(jù)和第7組數(shù)據(jù),相差2000多,占到了平均值的50%。出現(xiàn)這種狀況,主要與存儲設(shè)備使用的IO調(diào)度策略、cache命中率,以及IOmeter具體實(shí)現(xiàn)相關(guān),而IOmeter具體實(shí)現(xiàn)模擬了用戶操作,故用多次平均值來抵消這種影響。對比設(shè)備A與設(shè)備B的IOPS平均值,顯然單就此測試項(xiàng)目來看,設(shè)備B優(yōu)于設(shè)備A。
在100% Write時(shí),IOPS測試結(jié)果如圖5所示。
由上圖知,在順序?qū)憯?shù)據(jù)方面,設(shè)備A的IOPS明顯優(yōu)于設(shè)備B,這與設(shè)備B使用RAID60有關(guān),RAID60的缺點(diǎn)就是寫入速度很慢。因此,當(dāng)系統(tǒng)事務(wù)類型與此測試項(xiàng)目相似時(shí),設(shè)備A明顯優(yōu)于設(shè)備B。
綜上所述,在數(shù)據(jù)塊大小恒定512B,全部順序讀與全部順序?qū)憰r(shí),設(shè)備A與設(shè)備B各有所長,這就需要根據(jù)系統(tǒng)的事務(wù)類型更傾向于讀操作還是寫操作來進(jìn)行判斷。
圖4 100%Read時(shí)IOPS測試
圖5 100%Write時(shí)IOPS測試結(jié)果
數(shù)據(jù)傳輸率測試
存儲設(shè)備數(shù)據(jù)傳輸率是指裸盤或者磁盤陣列提供給云存儲系統(tǒng)的邏輯盤在單位時(shí)間內(nèi)能夠傳輸?shù)臄?shù)據(jù)量,分為讀和寫兩個(gè)指標(biāo)。存儲設(shè)備數(shù)據(jù)傳輸率在最底層限制了系統(tǒng)整體的數(shù)據(jù)傳輸率。
實(shí)驗(yàn)中數(shù)據(jù)塊大小設(shè)置為256KB。在100% Read時(shí),數(shù)據(jù)傳輸率測試結(jié)果如圖6所示。
由上圖可見,相同環(huán)境下,對于數(shù)據(jù)塊為256KB的順序讀,不同存儲設(shè)備數(shù)據(jù)傳輸率不同。單就此測試項(xiàng)目來看,設(shè)備A略優(yōu)于設(shè)備B。
在100% Write時(shí),測試結(jié)果如圖7所示。
由上圖可知,相同環(huán)境下,對于數(shù)據(jù)塊為256KB的順序?qū)?,不同存儲設(shè)備讀數(shù)據(jù)傳輸率不同。單就此測試項(xiàng)目來看,設(shè)備A優(yōu)于設(shè)備B。
綜上所述,本機(jī)存儲設(shè)備在讀寫數(shù)據(jù)傳輸率方面都優(yōu)于外接磁盤陣列。
基礎(chǔ)管理層測試
云存儲系統(tǒng)的數(shù)據(jù)管理層即狹義的文件系統(tǒng)層,主要測試元數(shù)據(jù)吞吐率。
測試環(huán)境
基礎(chǔ)管理層測試環(huán)境如圖8所示。
測試中,主節(jié)點(diǎn)負(fù)責(zé)發(fā)送測試命令到各測試節(jié)點(diǎn),并收集結(jié)果;各個(gè)測試節(jié)點(diǎn)分別負(fù)責(zé)通過網(wǎng)絡(luò)在NFS服務(wù)器提供的掛載點(diǎn)上生成負(fù)載;而NFS服務(wù)器負(fù)責(zé)給測試節(jié)點(diǎn)提供共用的NFS掛載點(diǎn)。
元數(shù)據(jù)吞吐率測試
基礎(chǔ)管理層元數(shù)據(jù)吞吐量主要是指云存儲系統(tǒng)所使用的文件系統(tǒng)在單位時(shí)間內(nèi)能夠操作的元數(shù)據(jù)量。通過測試存儲系統(tǒng)對元數(shù)據(jù)的處理速率,進(jìn)而衡量網(wǎng)絡(luò)存儲系統(tǒng)對文件或目錄操作的支持能力。測試結(jié)果如表3所示。
圖6 100%Read時(shí)數(shù)據(jù)傳輸率測試
圖7 100%Write時(shí)數(shù)據(jù)傳輸率測試
表3 元數(shù)據(jù)吞吐率測試
從表3可見,當(dāng)數(shù)據(jù)塊大小不同時(shí),相同元數(shù)據(jù)操作每秒執(zhí)行次數(shù)相差不大。一般來說,元數(shù)據(jù)結(jié)構(gòu)體大小隨數(shù)據(jù)大小變化不大,這也決定了元數(shù)據(jù)每秒操作數(shù)隨數(shù)據(jù)塊大小變化不大。
云存儲服務(wù)接口層測試
云存儲系統(tǒng)服務(wù)接口層把各種操作封裝成API接口,由服務(wù)接口層統(tǒng)一對外提供,該層主要測試數(shù)據(jù)傳輸率。
云存儲服務(wù)接口層數(shù)據(jù)傳輸率通過調(diào)用上傳下載API計(jì)算出數(shù)據(jù)傳輸率,進(jìn)而推導(dǎo)出文件的讀寫性能。
本測試旨在測試Swift數(shù)據(jù)傳輸率。我們針對特定文件,分別測試不同文件大小時(shí),調(diào)用Swift的上傳下載API,通過運(yùn)行時(shí)間計(jì)算出數(shù)據(jù)傳輸率,分析網(wǎng)絡(luò)對讀寫性能的影響。測試中,文件格式為.doc。測試結(jié)果如圖9所示。
圖8 實(shí)驗(yàn)拓?fù)鋱D
圖9 數(shù)據(jù)傳輸率測試
從圖可以看出,Swift的上傳速率與文件大小正相關(guān)。同樣的網(wǎng)絡(luò)環(huán)境下,文件越大,上傳速率越大。下載速率與文件大小關(guān)系不大,同樣的網(wǎng)絡(luò)環(huán)境,下載速率變化不大,浮動在1M左右。可見,網(wǎng)絡(luò)對下載有一定的影響。
用戶訪問層測試
云存儲系統(tǒng)的用戶訪問層對外提供典型應(yīng)用服務(wù),其性能通過測試不同文件類型、不同文件大小、不同時(shí)間點(diǎn)下目標(biāo)云存儲系統(tǒng)的典型應(yīng)用的性能來測試。
典型應(yīng)用性能測試通過控制變量法測試,通過設(shè)計(jì)不同的變量變化來測試不同文件類型、不同文件大小以及不同時(shí)間點(diǎn)對目標(biāo)云存儲系統(tǒng)的性能影響,從而尋找性能瓶頸。
不同文件類型測試
固定文件大小,變化文件類型,測試文件類型對云存儲系統(tǒng)性能的影響。實(shí)驗(yàn)中,文件大小設(shè)定為1286KB,針對不同文件類型,分別調(diào)用上傳下載API,運(yùn)行200次,用分段統(tǒng)計(jì)的方式,分別對比前25次、前50次等的平均值,測試結(jié)果如圖10和圖11所示。
從圖中可以看出,文件格式對讀寫性能有一定影響,其中寫性能高于讀性能。對于寫性能,文本文檔的速率小于圖形圖像和壓縮文本的速率。其中文本文件和視頻文件的上傳速率低于1M,而圖形圖像和壓縮包的上傳速率大于1M。對于讀性能,整個(gè)讀過程比較穩(wěn)定,文本文檔及圖形圖像的速率都遠(yuǎn)低于視頻文件的速率,且所有的下載速率都低于1M。
不同文件大小測試
固定文件類型,變化文件大小,測試文件大小對云存儲系統(tǒng)性能的影響。實(shí)驗(yàn)中,文件類型選用doc,文件大小依次增大,分別調(diào)用上傳下載API,運(yùn)行200次,用分段統(tǒng)計(jì)的方式,分別對比前25次、前50次等的平均值,
測試結(jié)果如圖上12和圖13所示。
圖10 文件類型VS上傳速率
圖11 文件類型VS下載速率
圖12 文件大小VS上傳速率
圖13 文件類型VS下載速率
從圖可以看出,文件大小對寫性能有較大影響。文件越大,寫性能越高,文件大小與寫速率成正比。文件大小對讀性能影響不大,小文件讀性能也可以很高,大文件讀性能也可以不高,一般讀性能在一個(gè)范圍浮動。
不同時(shí)間點(diǎn)測試
圖14 不同時(shí)間VS上傳速率
圖15 不同時(shí)間VS下載速率
固定文件類型和文件大小,測試不同時(shí)間點(diǎn)云存儲系統(tǒng)的性能,從而判斷網(wǎng)絡(luò)環(huán)境對云存儲系統(tǒng)性能的影響。實(shí)驗(yàn)中,文件類型選用doc,文件大小設(shè)定為16MB,測試結(jié)果如圖14和圖15所示。
從圖可以看出,不同時(shí)間點(diǎn)的讀寫性能有一定的差異,但在一定范圍內(nèi)浮動。其中,寫性能遠(yuǎn)遠(yuǎn)高于從云端讀性能,寫性能在8M左右浮動,讀性能在1M左右浮動。
本文分析了云服務(wù)提供商的特點(diǎn),搭建了OpenStack Swift本地云存儲系統(tǒng),并從云服務(wù)商角度出發(fā),針對云存儲系統(tǒng)的四個(gè)層次分別在數(shù)據(jù)中心進(jìn)行了測試。實(shí)驗(yàn)結(jié)果表明,云存儲系統(tǒng)的各個(gè)層次都存在影響性能的因素,這些瓶頸為云存儲設(shè)備提供商和云存儲服務(wù)提供商提供了改進(jìn)參考依據(jù)。此外,用戶可以根據(jù)自己的需求橫向?qū)Ρ炔煌拼鎯ο到y(tǒng)的性能,根據(jù)自己的側(cè)重點(diǎn)選取最適合的云存儲系統(tǒng)。
齊嬋穎 李育超 房 謹(jǐn) 吳海東
中國飛行試驗(yàn)研究院
齊嬋穎(1990-)女,陜西西安人,碩士研究生,助理工程師,主要研究方向:數(shù)據(jù)管理。
10.3969/j.issn.1001-8972.2015.07.001