陳曉華,李春芝,張鵬宇
(湖州師范學(xué)院信息與工程學(xué)院 湖州 313000)
云存儲技術(shù)是一種虛擬化存儲技術(shù),將網(wǎng)絡(luò)中大量各種不同類型的存儲設(shè)備利用應(yīng)用軟件集合起來協(xié)同工作,對外提供數(shù)據(jù)存儲和業(yè)務(wù)訪問功能[1]。云存儲技術(shù)要面對復(fù)雜的廣域網(wǎng)環(huán)境提供服務(wù)保證,對于廣域網(wǎng)下的文件傳輸協(xié)議起著至關(guān)重要的作用。當(dāng)前各種不同的云存儲系統(tǒng)根據(jù)所采用的協(xié)議提供不同的API,如圖1所示。
Amazon Simple Storage Service(Amazon S3)[2]、Windows Azure[3]、Google Storage[4]、Mezeo Cloud Storage Platform[5]、Nirvanix SDN[6]和 CleverSafe[7]實(shí)現(xiàn)REST API,這些API是基于 REST原則和SOAP接口實(shí)現(xiàn)的。
Amazon S3(以下簡稱S3)具有低成本、低延遲、高可用性和安全的特點(diǎn),通過 S3存儲和檢索的資源被稱為對象,對象存儲在存儲段(bucket)中,對象和存儲段通過統(tǒng)一資源標(biāo)識符(URI)定位。S3同時提供 RESTful API和SOAP API,但是需要下載JetS3t庫才能使用這些API[2]。目前為了提高文件上傳和下載速度,Amazon支持Aspera開發(fā)的FASP協(xié)議(在UDP協(xié)議基礎(chǔ)上開發(fā)的新協(xié)議)[8]。
Windows Azure為應(yīng)用程序提供Blobs、Tables和Queues3種存儲機(jī)制,支持 SOAP、REST、XML和 HTTPS等。Windows Azure Storage由3個重要部分構(gòu)成:Windows Azure Blob(存儲大型數(shù)據(jù),包括二進(jìn)制數(shù)據(jù)和文件)、Windows Azure Table存儲表數(shù)據(jù)(類似于關(guān)系數(shù)據(jù)庫中的數(shù)據(jù)表)、Windows Azure Queue(為異步工作提供分派消息服務(wù))[3]。Windows Azure有文件、數(shù)據(jù)表和消息存儲能力,與開發(fā)平臺.net綁定在一起,通過庫RESTful API與Azure交互。
Google Storage提供RESTful的API訪問和管理文件,Google Storage API的實(shí)現(xiàn)依賴標(biāo)準(zhǔn)的HTTP方法,如delete、get、head、put[4]。
Mezeo Platform分為6個層次、3個概念(資源、表示法和方法)。Mezeo Platform提供的方法包括get、put、post、delete、lock、unlock、restore等。上述方法采用 REST 原則實(shí)現(xiàn),在HTTP上進(jìn)行傳輸,提供地理定位和地理復(fù)制能力,并提供安全保障[5]。
Nirvanix SDN的Web Service提供基于REST原則和SOAP接口的服務(wù),可以通過HTTP的Post上傳和下載文件[6]。
CleverSafe提供基于 HTTP/REST、Java SDK訪問 API,同時還支持FTP協(xié)議[7]。
主要包括NFS、CIFS和FTP協(xié)議。NFS是使用TCP/IP的應(yīng)用層協(xié)議,基于NFS的網(wǎng)絡(luò)文件服務(wù)器,可使多臺計(jì)算機(jī)透明地訪問彼此的目錄。CIFS基于SMB協(xié)議的開放跨平臺,使用戶可以方便地向支持SMB協(xié)議的網(wǎng)絡(luò)服務(wù)器請求文件和打印服務(wù)。FTP是遠(yuǎn)程文件傳輸協(xié)議,允許用戶管理遠(yuǎn)程主機(jī)的文件。IBM采用標(biāo)準(zhǔn)網(wǎng)絡(luò)文件協(xié)議,包括NFS、CIFS、HTTP 和 FTP[9]。Zetta用戶可通過 HTTP、NFS、FTP、sFTP、rsync和WebDAV等標(biāo)準(zhǔn)存儲協(xié)議進(jìn)行訪問[9,10]。
主要有iSCSI協(xié)議,該協(xié)議建立在TCP協(xié)議之上,是一種面向連接的協(xié)議,定義了 TCP/IP網(wǎng)絡(luò)發(fā)送、接收Block(數(shù)據(jù)塊)級的存儲數(shù)據(jù)的規(guī)則和方法,在用戶看來,使用遠(yuǎn)端的存儲設(shè)備就像訪問本地的SCSI設(shè)備一樣簡單。iSCSI可以實(shí)現(xiàn)在IP網(wǎng)絡(luò)上運(yùn)行SCSI協(xié)議,適合高速吉比特以太網(wǎng)應(yīng)用。Cloud Drive支持iSCSI協(xié)議[11]。
如基于 Web的分布式創(chuàng)作與版本控制(WebDAV IETF RFC 2518)。WebDAV基于 HTTP,將 Web作為一種可讀寫的資源加以啟用[9]。
BitDew是在網(wǎng)格環(huán)境下為大規(guī)模數(shù)據(jù)管理和分布提供的可編程環(huán)境。BitDew提出了融合多個文件傳輸協(xié)議進(jìn)行文件傳輸[12]。MetaCDN利用其他系統(tǒng)提供的Web Service、API和訪問接口,智能分配各種云存儲系統(tǒng)響應(yīng)用戶的傳輸請求[13]。
綜上所述,云存儲在廣域網(wǎng)中進(jìn)行網(wǎng)絡(luò)傳輸,主要采用 REST原則、iSCSI協(xié)議、WebDAV協(xié)議、SOAP接口、FASP協(xié)議、CIFS協(xié)議、NFS協(xié)議,通常在HTTP協(xié)議上建立API提供給不同的開發(fā)語言調(diào)用,需要在客戶端安裝相關(guān)軟件實(shí)現(xiàn)文件的傳輸與管理,部署不方便,而且與SaaS服務(wù)聯(lián)系不緊密,實(shí)驗(yàn)發(fā)現(xiàn)如果多人同時傳輸文件,云存儲網(wǎng)絡(luò)傳輸協(xié)議沒有考慮到當(dāng)前服務(wù)器的狀態(tài),分配同一服務(wù)器接收多用戶傳輸?shù)奈募?,?dǎo)致服務(wù)器無法同時滿足多用戶要求,文件傳輸失敗率較高。
當(dāng)前虛擬主機(jī)廠商提供的虛擬主機(jī)服務(wù)具有高可用性、價格低、易維護(hù)、分布廣等特點(diǎn),本文建立虛擬主機(jī)集群模型,設(shè)計(jì)文件傳輸控制協(xié)議VCFTP和基于虛擬主機(jī)集群的云存儲系統(tǒng)VCloudStorage,以提高文件傳輸性能和穩(wěn)定性。首先建立SaaS服務(wù)模型;利用HTTP數(shù)據(jù)流存儲技術(shù),建立虛擬主機(jī)存儲接口;接著建立虛擬主機(jī)傳輸能力、存儲能力和價格能力數(shù)學(xué)模型,并結(jié)合用戶的傳輸請求建立文件傳輸整數(shù)規(guī)劃數(shù)學(xué)模型及最優(yōu)化算法,最終以此為基礎(chǔ)采用Web Service、HTTP和Flash技術(shù)設(shè)計(jì)了文件傳輸控制協(xié)議VCFTP。VCFTP與SaaS服務(wù)兼容,且利用Flash跨平臺和富客戶端技術(shù)特點(diǎn),無需在客戶端部署其他程序;授權(quán)的用戶在VCloudStorage中根據(jù)傳輸請求、存儲要求、服務(wù)水平和當(dāng)前虛擬主機(jī)狀態(tài)等條件,根據(jù)整數(shù)規(guī)劃數(shù)學(xué)模型,以傳輸能力最優(yōu)化的方式進(jìn)行文件傳輸。
本節(jié)介紹VcloudStorage和文件傳輸協(xié)議VCFTP,利用虛擬主機(jī)集群技術(shù),創(chuàng)建一個綜合覆蓋網(wǎng)絡(luò),提供一個低成本、高性能、可擴(kuò)展的云存儲系統(tǒng)。
VCloudStorage系統(tǒng)采用基于B/S的Web Service分布式架構(gòu),包括 Client Web 瀏覽器、VVHashTable、Scheduler、VCloud File System、Node Manager、Web Service[1]??蛻舳擞脩敉ㄟ^Web瀏覽器中的Flash模塊實(shí)現(xiàn)文件上傳;網(wǎng)絡(luò)存儲統(tǒng)一平臺提供Web Service接口[1]。VCloud Storage系統(tǒng)架構(gòu)如圖2所示。
首先建立SaaS服務(wù)協(xié)議,利用HTTP數(shù)據(jù)流存儲技術(shù),建立虛擬主機(jī)數(shù)據(jù)存儲接口;然后在SaaS服務(wù)模型和虛擬主機(jī)數(shù)據(jù)存儲接口的基礎(chǔ)上,建立整數(shù)規(guī)劃數(shù)學(xué)模型及最優(yōu)化算法,設(shè)計(jì)文件傳輸控制協(xié)議VCFTP。
圖2 VCloud Storage系統(tǒng)架構(gòu)
2.2.1 文件傳輸控制協(xié)議對象
在文件傳輸過程中,為了建立Flash與Web Service之間的交互,對象的成員屬性為string類型。文件傳輸控制協(xié)議對象包括客戶端請求連接字Apply File Transfer Packet對象、服務(wù)器返回的控制連接字File Transfer Control Packet對象、返回的控制狀態(tài)字Response Info Packet對象。用戶隸屬于企業(yè),企業(yè)購買服務(wù)。
(1)客戶端請求連接字
(2)文件傳輸控制連接字
(3)返回的控制狀態(tài)字
2.2.2 文件傳輸控制模型及VCFTP
文件傳輸控制模型如圖3所示。由圖3可見,客戶端的文件傳輸?shù)教摂M主機(jī)存儲器中,用戶的文件存儲請求、查詢、更新、刪除都是同文件傳輸控制服務(wù)器進(jìn)行交互;SaaS服務(wù)控制器是管理用戶、購買服務(wù)等信息;虛擬主機(jī)管理器根據(jù)虛擬主機(jī)存儲器的Web Service,更新和維護(hù)虛擬主機(jī)存儲器狀態(tài)Hash Table;虛擬主機(jī)分配器根據(jù)虛擬主機(jī)存儲器的狀態(tài)和客戶端的請求最優(yōu)化分配虛擬主機(jī)存儲器給客戶端;虛擬主機(jī)存儲器提供接收客戶端文件接口、刪除文件接口、測試自身狀態(tài)的Web Service。
本文設(shè)計(jì)的文件傳輸協(xié)議VCFTP在文件傳輸過程中包括3個部分:請求建立連接控制字、傳輸文件、釋放連接控制字。
傳輸流程如下。
(1)Flash客戶端構(gòu)建請求連接控制字Apply File Transfer Packet對象,然后向文件傳輸控制服務(wù)器請求建立連接傳輸控制字。
(2)文件傳輸控制服務(wù)器接收到請求,向SaaS服務(wù)控制器請求合法性驗(yàn)證。
(3)SaaS服務(wù)控制器驗(yàn)證合法性,包括判斷用戶名、密碼是否正確和判斷企業(yè)是否合法、是否購買該服務(wù),將驗(yàn)證結(jié)果返回給文件傳輸控制服務(wù)器。
(4)文件傳輸控制服務(wù)器接收到合法性驗(yàn)證通過后,向虛擬主機(jī)分配器請求分配虛擬主機(jī)存儲器。
(5)虛擬主機(jī)分配器接收到請求后,根據(jù)最優(yōu)化算法,選擇最優(yōu)的虛擬主機(jī)存儲器,并更新Hash Table,返回選定的虛擬主機(jī)存儲器給文件傳輸控制服務(wù)器,并且采用加鎖機(jī)制選擇最優(yōu)虛擬主機(jī)存儲器。
(6)文件傳輸控制服務(wù)器構(gòu)造文件傳輸控制連接字 File Transfer Control Packet對象,包括分配的文件名、路徑名、域名、文件類型、此次連接的標(biāo)識符,構(gòu)造過程進(jìn)行加鎖控制,并記錄文件傳輸控制連接字。
(7)客戶端Flash接收到File Transfer Control Packet對象,通過HTTP向虛擬主機(jī)存儲器傳輸數(shù)據(jù)。
(8)客戶端文件傳輸完畢,向文件傳輸控制服務(wù)器釋放File Transfer Control Packet對象。文件傳輸控制服務(wù)器接收到釋放請求后,更新存儲的文件傳輸控制連接字。
文件傳輸協(xié)議涉及到的多個對象之間的通信順序如圖4所示。
2.2.3 文件傳輸控制協(xié)議
文件傳輸控制協(xié)議主要包括建立文件傳輸連接、傳輸文件、接收文件、釋放連接等過程。
(1)建立文件傳輸連接
File Transfer Control Packet Create File Transfer Connection(Apply File Transfer Packet clientPacket);
圖3 文件傳輸控制模型
表1 建立連接返回值
返回的狀態(tài)信息見表1。(2)傳輸和接收文件流客戶端Flash通過HTTP協(xié)議向服務(wù)器傳遞分配的文件信息和驗(yàn)證信息,并傳輸HTTP文件數(shù)據(jù)流;虛擬主機(jī)存儲器以.aspx、.php、.asp等形式出現(xiàn),首先判斷此次連接的合法性,然后接收數(shù)據(jù),存放到虛擬主機(jī)存儲器中。
(3)釋放文件傳輸連接
客戶端向服務(wù)器請求釋放連接,服務(wù)器接收到數(shù)據(jù),首先驗(yàn)證釋放信息,然后刪除本次傳輸控制連接字,釋放連接返回值見表2。
表2 釋放連接返回值
2.2.4 分配虛擬主機(jī)存儲器整數(shù)規(guī)劃建模
為了保證虛擬主機(jī)存儲云有足夠的存儲能力和傳輸能力執(zhí)行其任務(wù),有效地分配虛擬主機(jī)存儲和傳輸,定義了如下一些限制參數(shù)。
·Price[i]:第i個虛擬主機(jī)存儲云的價格能力指數(shù),類型是float,單位是元。
·Storage[i]:第i個虛擬主機(jī)存儲云的存儲能力指數(shù),類型是float,單位為字節(jié)。
·Transfer[i]:第i個虛擬主機(jī)存儲云的傳輸能力指數(shù),類型是float,取值為0~1,以百分比測量,由系統(tǒng)專門的接口定時(30 s)自動測量。
· Price:用戶端的價格能力指數(shù),類型是float,單位是元。
·Storage:用戶端的存儲要求指數(shù),類型是float,單位為字節(jié)。
· Transfer:用戶端的傳輸要求指數(shù),類型是float,取值為0~1。
·X[i]:第i個虛擬主機(jī)存儲云被分配,如果被分配則為 1,否則為 0。
為了讓系統(tǒng)擁有最大的傳輸能力,建立線性規(guī)劃模型,把分配虛擬主機(jī)存儲云的問題轉(zhuǎn)化為一類特殊的0-1整數(shù)規(guī)劃問題[1]。
系統(tǒng)傳輸能力最優(yōu)化方程(目標(biāo)函數(shù))為:
每當(dāng)用戶需要存儲內(nèi)容時,根據(jù)自己的需要提供Price、Storage和Transfer給系統(tǒng)Web Service的調(diào)用接口,系統(tǒng)調(diào)用接口根據(jù)式(1)和(2),因?yàn)閄[i]是一類特殊的0-1整數(shù)規(guī)劃問題,采用線性規(guī)劃解法中的枚舉算法,實(shí)現(xiàn)虛擬主機(jī)存儲的分配。
本文描述的協(xié)議運(yùn)行在VCloudStorage中。主站點(diǎn)和虛擬主機(jī)站點(diǎn)都是相同的配置,試驗(yàn)臺站點(diǎn)通過Internet連接,VCloudStorage集群了5個虛擬主機(jī),并布置了一臺本地服務(wù)器,用于管理、測試虛擬主機(jī)集群及更新虛擬主機(jī)集群的VHashTable[1]。每個虛擬主機(jī)硬件包括2個Intel XEON 5.4 GHz的 CPU、4 GB內(nèi)存,CPU利用率為 3%,布置在中國安徽合肥。實(shí)驗(yàn)客戶機(jī)包括10臺實(shí)驗(yàn)客戶機(jī),實(shí)驗(yàn)客戶機(jī)CPU為2 GHz、1 GB內(nèi)存。
為了評估該VCloudStorage系統(tǒng),部署10臺客戶機(jī),以1、3、6、10臺機(jī)器同時啟動傳輸1、10、20、30、40、50、60、70、80、90、100 MB文件為基礎(chǔ),測量系統(tǒng)的總吞吐量和平均吞吐量。這些文件同時從客戶端分別以騰訊QQ郵箱存儲、微軟SkyDrive、單個虛擬主機(jī)、VCloudStorage上傳到服務(wù)器上,分別記錄每個客戶端傳輸時間和傳輸文件大小??偼掏铝浚═otalThroughOut)和平 均吞吐量(AverageThroughOut)的計(jì)算式如下:
其中,F(xiàn)ileSize[i]為每次客戶端傳輸文件的大小,以KB為計(jì)算單位;Second[i]為每次客戶端傳輸文件的所用的時間,以s為計(jì)算單位;MaxTime為每次客戶端傳輸文件的最大傳輸時間。
測試集中在每天的下午3點(diǎn)到晚上9點(diǎn),用時兩個星期,經(jīng)歷了網(wǎng)絡(luò)高峰時期,記錄了每個客戶端每次傳輸文件的大小和時間。統(tǒng)計(jì)的吞吐量如圖5~9所示。測試失敗率見表3。
由圖5~9和表3可以看出,通過VCFTP協(xié)議構(gòu)建的VCloudStorage性能優(yōu)于單虛擬主機(jī)存儲、微軟SkyDrive、騰訊QQ郵箱存儲等系統(tǒng),得出以下結(jié)論。
圖8 6人測試總吞吐量
表3 測試失敗率
·VCFTP協(xié)議文件傳輸性能和傳輸成功率較高,構(gòu)建的虛擬主機(jī)云存儲VCloudStorage總吞吐量和平均傳輸速率均優(yōu)于騰訊QQ郵箱存儲、微軟SkyDrive、單個虛擬主機(jī),VCFTP使多人傳輸文件成功率達(dá)到100%。
·VCFTP協(xié)議具有負(fù)載均衡能力,能夠感知虛擬主機(jī)的當(dāng)前狀態(tài)信息,最優(yōu)化分配虛擬主機(jī)存儲器,客戶端平均傳輸速率能夠保證在150 kbit/s以上,總吞吐量保證在800 kbit/s,不受單個虛擬主機(jī)當(dāng)前運(yùn)行狀態(tài)的限制。
·VCFTP協(xié)議具有動態(tài)擴(kuò)展性,在運(yùn)行過程中,VCloudStorage能夠根據(jù)需要動態(tài)增加虛擬主機(jī)存儲器數(shù)量,達(dá)到動態(tài)擴(kuò)展文件存儲能力和傳輸能力的目的。實(shí)驗(yàn)結(jié)果表明,VCloudStorage文件傳輸能力可以從1個虛擬主機(jī)的100~400 kbit/s動態(tài)擴(kuò)展到5個虛擬主機(jī)的700~1200 kbit/s。
·VCFTP協(xié)議客戶端不需安裝其他軟件,通過Flash技術(shù)進(jìn)行文件傳輸,采用的是HTTP流技術(shù)上傳文件,傳輸文件成功率高。
本文提出基于Web Service、HTTP和Flash技術(shù)的文件傳輸協(xié)議VCFTP,開發(fā)了基于虛擬主機(jī)集群云存儲系統(tǒng)VCloudStorage。它與SaaS服務(wù)兼容,而且利用Flash的跨平臺和富客戶端技術(shù)特點(diǎn),無需在客戶端部署其他程序;授權(quán)的用戶在VCloudStorage中根據(jù)傳輸請求、存儲要求、服務(wù)水平和當(dāng)前虛擬主機(jī)狀態(tài)等條件,以傳輸能力最優(yōu)化的方式進(jìn)行文件傳輸。VCFTP通過Web Service建立連接和釋放連接,通過HTTP協(xié)議傳遞數(shù)據(jù),使用已有的服務(wù)器通信端口而不需要修改網(wǎng)絡(luò)防火墻配置,文件傳輸性能較高且穩(wěn)定,虛擬主機(jī)接收文件傳輸?shù)拇笮】梢愿鶕?jù)虛擬主機(jī)的配置而變化,是一種滿足應(yīng)用需求的云存儲文件傳輸協(xié)議。
1 陳曉華,李春芝,俞堅(jiān)奇.虛擬主機(jī)云存儲系統(tǒng)整數(shù)規(guī)劃模型及最優(yōu)化分配算法.電信科學(xué),2011,27(1):89~94
2 Amazon.Amazon simple storage service (Amazon s3).Retrieved from www.amazon.com/s3,2007
3 Microsoft.Windows azure service management REST API reference.http://msdn.microsoft.com/en-us/library/ee460799.aspx,2011
4 Google Storage.Google storage API for developers.http://code.google.com/intl/zh-CN/apis/storage/docs/developer-guide.html,2011
5 Mezeo.Cloud storage platform API v2 reference guide.http://developer.mezeo.com/wp-content/uploads/2010/06/Mezeo-API-v2-Reference-Guide.pdf,2010
6 Nirvanix.White paper:accelerating Web application development with the nirvanix storage delivery network(SDN),2008
7 CleverSafe. Object Storage.http://www.cleversafe.com/products/resilient-architecture/object-storage,2010
8 Aspera.http://www.asperasoft.com/en/support/developer_23/Aspera_Developer_Network_23,2009
9 Tim M Jones.Anatomy of a cloud storage infrastructure models,features,and internals. http://public.dhe.ibm.com/software/dw/cloud/library/cl-cloudstorage-pdf.pdf,2010
10 http://cloudharmony.com/clouds_storage.Zetta
11 Cloud Drive.http://www.clouddrive.com.au/international/zh-CHS/products.html,2010
12 Gilles Fedak,Haiwu He,Franck Cappello.BitDew:a data management and distribution service with multi-protocol file transfer and metadataAbstraction.Journal of Network and Computer Applications,2009(32):961~975
13 James Broberg,Rajkumar Buyya,Zahir Tari.Meta CDN:harnessing “storage clouds” for high performance content delivery.Journal of Network and Computer Applications,2009(32):1012~1022