齊嬋穎,李育超,聶 睿,覃楊森
(中國飛行試驗研究院 陜西 西安 710089)
基于開放云存儲協議的云存儲系統性能評測方法研究
齊嬋穎,李育超,聶 睿,覃楊森
(中國飛行試驗研究院 陜西 西安 710089)
云存儲系統的廣泛應用帶來了數據存儲方式和商業模式的重大變革。然而,不同的云存儲系統有不同的協議,橫向之間尚無統一的評測基準,面對眾多的云存儲系統用戶難以擇優選擇,云服務提供商也難以進一步改進設備和服務。本文針對基于開放云存儲協議的云存儲系統性能評測方法沒有通用標準的問題,在分析開放云存儲協議的基礎上,分別研制了基于兩種常用開放云存儲協議(基于API接口和基于RESTFul接口)的性能測試工具。并應用這兩種測試工具對比測試了基于API接口的開放云存儲系統金山快盤和基于RESTFul接口的本地私有云存儲系統OpenStack Swift的性能,分析了影響云存儲系統性能的因素,為云存儲廠商改進云存儲服務提供了參考依據,同時,為用戶選購基于開放云存儲協議的云存儲系統提供了理論指導。
云存儲系統;開放云存儲協議;性能評測方案;性能指標
云存儲系統是一種以數據存儲和管理為核心的云計算系統。構建云存儲平臺的各類應用和網絡存儲能否成功,很大程度上取決于云存儲服務提供的性能。而有些廠商提供的云存儲服務協議是對外開放的,這樣的云存儲系統是基于開放云存儲協議的,開放云存儲服務可以低成本提供大量的文件存儲,供應商可以保持每個客戶的存儲、應用都是獨立的、私有的[1]。因此,研究基于開放云存儲協議的性能評測方法具有重要的研究價值。
開放存儲服務(Open Storage Service,OSS)為用戶提供大容量的云存儲服務。用戶可以調用OSS提供的API接口通過網絡進行數據的上傳和下載,并可通過Web控制臺對數據進行管理。OSS的存儲容量支持彈性擴容,并提供基于云計算模式的按使用量付費的結算功能[2]。開放式存儲服務OSS適用于非結構化數據存儲,底層采用分布式存儲機制。
基于開放云存儲協議的云存儲系統是指協議對外公開的云存儲系統,用戶可以在其上開發自己的應用,也可以通過調用其API接口來實現相應的功能。
哈佛大學在網絡云存儲系統的研究中采集了NFS trace[3]。YCSB[4](Yahoo Cloud Serving Benchmark)是Yahoo開發的,是面向key/value的云存儲系統評估。此外,NoSQL針對大型數據存儲機制,出現了許多存儲解決方案,包括Google BigTable、CouchDB和MongoDB等。NoSQL數據庫系統與傳統數據庫相比,具有更好的擴展性和更高的可用性,能夠管理更大規模的數據。NoSQL數據庫是采用一種非關系型的方式解決數據的存儲和計算問題[5]。
Eucalyptus(ElasticUtilityComputingArchitecture forLinking Your Programs To Useful Systems)[6]可以有效評估云計算的網絡性能。M Armbrust等人在云計算的看法一文中提出了對API性能的查詢,通過改進架構和操作系統有效地虛擬化中斷和I/O通道技術來實現性能優化[7]。
目前,業界對基于開放云存儲協議的云存儲系統性能評測有眾多研究,但存在一些問題:1)當前云存儲系統沒有統一的評測基準,不同云存儲系統之間很難進行橫向對比。2)對應用層的研究尚不成熟,并且現有的研究主要是面向任務的,不具有通用性。3)云服務提供商提供的云存儲系統是基于不同的協議的,協議內和協議間的云存儲系統很難進行對比測試。4)云存儲系統在不同環境下的性能表現尚無衡量標準,需要進一步研究。5)與云存儲系統相關的角色有多種,每種角色關注性能層次不同,沒有通用的多角色評測方案,不同角色之間評測很難對比。
針對云存儲系統多角色、多層次、服務對象不確定、訪問規模大的特點,選擇適合通用云存儲系統的性能評測體系至關重要,采用何種可兼顧云存儲系統結構特點的通用評測架構和評測方案是一個值得研究的問題。此外,采用何種評測指標來對云存儲系統做出準確的評價,為用戶和云提供商選購和改進云存儲服務質量提供了依據,具有很高的研究價值。與此同時,對云存儲系統性能測試是對整個存儲系統性能評測的重要組成部分,測得云存儲系統各個環節的性能指標,對于存儲系統整體性能的優化也具有重大意義。
3.1評測方法
用戶通過網絡測試云存儲系統應用訪問層和云存儲服務接口層的性能,云存儲服務提供商處在數據中心邊緣,直接測試云存儲系統應用訪問層、云存儲服務接口層、基礎管理層和存儲設備層4個層次的性能,數據也更真實。測試方法按照4個層次分別逐層進行。
1)應用訪問層性能測試
應用訪問層主要測試典型應用的性能,測試方法如下:
①測試目標:測試不同文件類型、不同網絡環境、不同時間點下目標云存儲系統的典型應用的性能。
②測試原理:不同文件類型、不同網絡環境、不同時間點都會對典型文件性能造成影響,通過控制變量法測試典型應用的性能。
2)應用接口層性能測試
應用接口層主要測試云存儲系統的訪問接口性能、服務拒絕率和數據傳輸率。測試方法如下:
①測試目標:通過測試云存儲系統API響應時間測試目標云存儲系統API返回性能。通過記錄請求失敗的次數,統計服務拒絕率,評測接口性能。通過控制文件類型來測定不同文件大小的數據讀寫性能。
②測試原理:云存儲提供開放的API接口。通過測試API響應時間可測試云存儲系統訪問接口性能。然而,每次API請求不一定被響應,這樣就存在了服務被拒絕的情況,服務拒絕率能夠準確衡量服務不被響應的概率。
3)基礎管理層性能測試
基礎管理層主要測試文件系統的元數據吞吐率、和聚合帶寬。其中,元數據吞吐率用LZpack測試,聚合帶寬用IOMeter測試。
①測試目標:元數據吞吐率測試存儲系統對元數據的處理速率來衡量網絡存儲系統對文件或目錄操作的支持能力。聚合帶寬測試并行文件系統能夠達到的聚合帶寬的最大值,進而分析、評估文件系統的性能。
②測試原理:最大元數據吞吐率是當系統達到穩定時的峰值結果。平均元數據吞吐率是求得吞吐率的加權平均值。FSPoly基于客戶端/服務器結構,其目標是并行測試文件系統的聚合帶寬、并發連接數等性能指標。
4)存儲設備層性能測試
存儲設備層主要測試IOPS和數據傳輸率,測試工具用IOPMeter。測試方法如下:
①測試目標:測試存儲設備在單位時間內的IO操作數和數據傳輸速率。
②測試原理:每個物理存儲設備處理的IOPS是有限制的,如果超過限制的理論值,響應可能會變得非常緩慢而不能正常提供業務。而數據讀寫比例、讀寫塊大小,及順序讀寫/隨機讀寫比例都會影響存儲性能,通過IOmeter控制參數變化,可以測出影響存儲設備的數據傳輸率因素。
3.2基于S3協議的工具研發
CSPTS(Cloud Storage Performance Test System)是自主研發的基于開放云存儲協議S3協議的云存儲系統性能評測工具,可針對目標云存儲系統的應用接口層和應用訪問層進行性能測試,通過直接調用API接口實現對應的功能,具體測試指標為訪問接口性能、服務拒絕率、數據傳輸率和典型應用性能。
3.3基于RESTFul協議的工具研發
另外一種常用的開放云存儲協議是基于RESTFul協議的,接口提供模式不同于基于S3協議的云存儲系統。我們自主研發的云存儲性能評測工具CST(Cloud Storage Test)可通過發送url請求實現對應API接口的調用。我們開發的CST功能模塊劃分如圖1所示。

圖1 云存儲系統性能測試軟件功能模塊劃分圖
4.1評測環境
基于開放云存儲協議的測試是通過在客戶端調用API來實現預期的功能,云存儲系統核心架構由存儲服務器或磁盤陣列、文件或元數據服務器集群,以及Web服務器集群組成。測試環境示意圖如圖2所示。

圖2 云存儲系統性能測試環境
用戶處在數據中心外面,通過互聯網,使用測試機來測試目標云存儲系統提供的開放API接口性能和Web服務器的典型應用性能。通過在web服務器上運行Lzpack、FSpoly測試并行文件系統的性能。通過在文件服務器上運行Iometer測試目標云存儲系統所使用的存儲設備的性能。
Web服務器、文件服務器和存儲服務器一起組成了數據中心,云存儲服務提供商處在數據中心邊緣,通過工具CSPTS測試典型應用和API性能。
在web服務器集群設置測試節點,通過LZpack和FSpoly測試文件系統層性能,在文件或元數據服務器集群設置測試節點,通過IOmeter測試目標云存儲系統使用的存儲設備性能。
4.2開放云存儲API接口
每種云存儲系統依托的開放云存儲協議是不同的,我們分別選取基于S3協議的公有云存儲系統的代表金山快盤和基于RESTFul協議的私有云存儲系統OpenStack Swift進行分析對比。金山快盤和Swift的API接口對比如表1所示。
表中共羅列了常用的16種API接口,金山快盤和OpenStack Swift若提供某個開放的API接口,則在該接口后面用“■”表示,否則用“×”表示。從表1可以看出,雖然金山快盤和OpenStack Swift開放API接口實現的功能不完全一致,但均有13個開放API接口。

表1 金山快盤和Sw ift的API接口對比
4.3不同API響應時間對比
每種云存儲系統有不同的API,我們針對快盤和OpenStack Swift API,對比單個有相同功能的API運行時間,求出每秒的API操作數,判斷基于S3協議的公有云存儲系統和基于RESTFul協議的本地私有云存儲系統的性能差異。測試結果如圖3所示。

圖3 快盤API操作數VSSwift API操作數
從圖可以看出,本地搭建的OpenStack Swift查看用戶和顯示元數據操作快于金山快盤,每秒的操作數遠大于金山快盤,即該兩種操作響應時間快于金山快盤。而其余API操作響應時間均遠遠長于金山快盤API操作響應時間,每秒API操作數都小于2。而金山快盤的API操作花費時間整體差異不大,每秒完成的API操作數在30個左右??梢?,除了查看用戶信息和顯示元數據信息外,網盤的操作基本快于本地云存儲。
4.4不同文件類型讀寫性能
為了驗證文件類型是否對云存儲系統的讀寫性能造成影響,我們分別針對不同的文件類型,調用快盤API和OpenStack Swift API,對比其數據傳輸率,進而判斷文件類型是否影響讀寫性能。測試結果如圖4和圖5所示。

圖4 文件類型VS上傳速率

圖5 文件類型VS下載速率
從上圖可以看出,上傳和下載速率是一個動態變化的數值,因此,在統計這些數據的時候,所采用的平均值將更能反映出金山快盤和OpenStack Swift傳輸速率的快慢問題。測試之后,我們通過統計出來的數據分析,快盤的上傳速率在800 kB左右,而Swift的上傳速率有些差異,但均不超過1 M。下載中,快盤的速率在200 kB左右浮動,而Swift的下載速率在250 kB到350 kB之間,均大于快盤,但是整體速率波動不大??梢姡募愋蛯ψx寫性能影響不大,但是不同的云存儲系統,讀寫性能有一定的差異。
4.5不同文件大小讀寫性能
為了驗證文件大小是否對云存儲系統的讀寫性能造成影響,我們分別針對特定的文件類型,對比快盤和OpenStack Swift在文件大小不同時的數據傳輸率變化,進而判斷文件大小是否影響讀寫性能。實驗中文件類型固定為doc,測試結果如圖6和圖7所示。

圖6 文件大小VS上傳速率

圖7 文件大小VS下載速率
從圖可以看出,在不同的文件大小下,快盤和Swift的上傳和下載速率也是一個動態變化的數值??毂P的上傳下載速率在不同文件大小時,均在1MB以下,而Swift的上傳速率與文件大小正相關,隨著文件的增大,上傳速率逐漸增大,而下載速率略有浮動??梢?,文件大小對快盤的讀寫性能影響不大,而對Swift的寫性能影響較大,對讀性能有一定影響。可見,文件大小是基于RESTFul接口的開放云存儲系統的寫瓶頸。
文中針對云存儲系統在性能評測方面沒有統一的針對基于開放云存儲協議的評測方法的問題,在分析開放云存儲協議的基礎上,分別研制了基于API接口和RESTFul接口的性能測試工具。應用研制的測試工具,對開放云存儲系統金山快盤和OpenStack Swift進行了對比測試,分析了影響云存儲系統性能的因素,從而確定了性能瓶頸,給用戶提供了橫向對比,為用戶選購、部署云存儲系統提供可靠的參考意見。
[1]方巍,文學志,潘吳斌,等.云計算概念,技術及應用研究綜述[J].南京信息工程大學學報自然科學版,2012,4(4):351-361.
[2]ArmbrustM,Fox A,Griffith R,etal.A view of cloud computing[J].Communicationsof the ACM,2010,53(4):50-58.
[3]Zhu N,Chen J,Chiueh T C,et al.TBBT:scalable and accurate trace replay for file server evaluation[C]//ACM SIGMETRICSPerformance Evaluation Review.ACM,2005,33(1):392-393.
[4]Cooper B F,Silberstein A,Tam E,et al.Benchmarking cloud serving systems with YCSB[C]//Proceedings of the 1st ACM symposium on Cloud computing.ACM,2010:143-154.
[5]權治,宋晶晶.基于 NoSQL的數據庫技術分析[J].無線電工程,2013,43(9):4-6.
[6]Nurmi D,Wolski R,Grzegorczyk C,et al.The eucalyptus open-source cloud-computing system[C]//Cluster Computing and the Grid,2009.CCGRID'09.9th IEEE/ACM International Symposium on.IEEE,2009:124-131.
[7]Armbrust M,Fox A,Griffith R,et al.A view of cloud computing[J].Communications of the ACM,2010,53(4):50-58.
Research on performance evaluation technology on open cloud storage protocols
QIChan-ying,LIYu-chao,NIE Rui,QIN Yang-sen
(China Flight Test Establishment,Xi'an 710089,China)
Cloud storage system is now widely used,which has brought significant changes in data storage and business models.However,differentcloud storage system corresponds to differentprotocol.There are no uniform benchmarks for them,so it's difficult for users to choose the optimal onewhen they are facing a large number of cloud storage systems.At the same time,it'salso difficult for cloud service providers to improve equipmentand service further.This paper focused on the problem ofperformance evaluation scheme based on open cloud storage protocolson the base ofanalyzing open cloud storage protocols,developing two common open cloud storage protocols(API interface and RESTFul interface),developed two different performance testing tools.This two kinds of testing tools are used to do performance comparison testbetween Kingsoft Cloud based on open cloud storage system and localprivate cloud storage system OpenStack Swiftbased on RESTFul interface.Then we analysis the factors those influence the performance of cloud storage system,which provides reference for companies to improve cloud storage service further,and offers guidance for customs to purchase cloud storage system based on open cloud storage protocolsmeanwhile.
cloud storage system;open cloud storage protocols;performance evaluation scheme;performance index
TN06
A
1674-6236(2016)19-0034-04
2015-10-20稿件編號:201510136
齊嬋穎(1990—),女,陜西西安人,碩士研究生,助理工程師。研究方向:數據管理。