專利名稱:一種資源文件的發(fā)送方法及裝置的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及云計(jì)算領(lǐng)域,具體而言,涉及一種資源文件的發(fā)送方法及裝置。
背景技術(shù):
云計(jì)算作為一種基于互聯(lián)網(wǎng)的、大眾參與的、以服務(wù)方式提供的新型計(jì)算模式,其目的是實(shí)現(xiàn)資源分享與整合。隨著云計(jì)算的興起,同質(zhì)化資源聚合及共享勢(shì)在必行。云應(yīng)用資產(chǎn)庫是云計(jì)算平臺(tái)用來積累和共享資源(虛擬機(jī)模板、云應(yīng)用模板、ISO鏡像等)的重要部分?;赟3 (Simple StorageService,簡(jiǎn)單存儲(chǔ)服務(wù))實(shí)現(xiàn)的存儲(chǔ)提供線性擴(kuò)展能力,而且無需關(guān)注底層存儲(chǔ)實(shí)現(xiàn)細(xì)節(jié),是業(yè)界構(gòu)建云應(yīng)用資產(chǎn)庫的常用技術(shù)方案。在云計(jì)算環(huán)境中,運(yùn)行期間相關(guān)資源文件通常在NFS(NetWork File System,網(wǎng)絡(luò)文件系統(tǒng))進(jìn)行存儲(chǔ), 所述資源文件無法在S3服務(wù)器直接啟動(dòng)運(yùn)行,且相關(guān)資源文件大小通常為GB級(jí)。因此,如何將共享資源文件快速從S3服務(wù)器遷移到NFS存儲(chǔ)中,是需要解決的問題。在實(shí)際使用過程中兩者文件存取協(xié)議不同,且兩存儲(chǔ)服務(wù)都不具備主動(dòng)推送或拉取數(shù)據(jù)的能力,因此需要一個(gè)中轉(zhuǎn)器進(jìn)行協(xié)議轉(zhuǎn)換。現(xiàn)有技術(shù)手段是采用獨(dú)立部署的中轉(zhuǎn)服務(wù)傳輸。即中轉(zhuǎn)服務(wù)在接收到用戶資源使用請(qǐng)求后,首先從S3服務(wù)器請(qǐng)求獲取對(duì)應(yīng)的資源文件,等待文件下載本地完畢后,再將該文件上傳至NFS存儲(chǔ),如圖I所示。由于該方式等待整個(gè)文件下載到本地才向NFS存儲(chǔ)上傳,中轉(zhuǎn)方等待文件下載到本地時(shí),傳輸通道處于閑置狀態(tài),導(dǎo)致整體傳輸效率低。此外,由于中轉(zhuǎn)方將等待文件完全下載到本地,需要中轉(zhuǎn)空間大,尤其是多用戶并發(fā)進(jìn)行資源請(qǐng)求。
發(fā)明內(nèi)容
本發(fā)明提供了一種資源文件的發(fā)送方法及裝置,用于解決現(xiàn)有技術(shù)中從S3服務(wù)器將資源文件發(fā)送至NFS服務(wù)器效率較低的問題。根據(jù)本發(fā)明的一個(gè)方面,提供了一種資源文件的發(fā)送方法,包括向S3服務(wù)器發(fā)送獲取資源文件的請(qǐng)求消息;在接收資源文件的過程中,對(duì)接收中的所述資源文件進(jìn)行拆分,生成發(fā)送文件塊;使用多個(gè)物理通道實(shí)時(shí)地將生成的文件塊發(fā)送至NFS服務(wù)器。進(jìn)一步地,上述方法還包括在使用多個(gè)物理通道實(shí)時(shí)地將生成的文件塊發(fā)送至NFS服務(wù)器之后,從內(nèi)存及本地存儲(chǔ)中刪除發(fā)送成功的文件塊。進(jìn)一步地,上述方法還包括根據(jù)配置文件確定所述獲取資源文件請(qǐng)求接收線程的個(gè)數(shù)、所述資源文件拆分的最大文件塊以及最小文件塊的大小、資源文件發(fā)送的線程個(gè)數(shù)、物理通道個(gè)數(shù)。其中,所述對(duì)接收中的所述資源文件進(jìn)行拆分包括判斷是否有空閑的物理通道;當(dāng)有空閑的物理通道時(shí),將接收到的資源文件拆分為最小文件塊,當(dāng)無空閑的物理通道時(shí),將接收到的資源文件拆分為最大文件塊。其中,所述對(duì)接收中的所述資源文件進(jìn)行拆分包括對(duì)拆分后的文件塊進(jìn)行編號(hào)并且為最后一個(gè)文件塊加結(jié)束符。
根據(jù)本發(fā)明的另一個(gè)方面,提供了一種資源文件的發(fā)送裝置,包括第一發(fā)送模塊,用于向S3服務(wù)器發(fā)送獲取資源文件的請(qǐng)求消息;生成模塊,用于在接收資源文件的全過程中,對(duì)接收中的所述資源文件進(jìn)行拆分,生成發(fā)送文件塊;第二發(fā)送模塊,用于使用多個(gè)物理通道實(shí)時(shí)地將生成的文件塊發(fā)送至NFS服務(wù)器。進(jìn)一步地,上述所述裝置還包括刪除模塊,用于在使用多個(gè)物理通道實(shí)時(shí)地將生成的文件塊發(fā)送至NFS服務(wù)器之后,從內(nèi)存及本地存儲(chǔ)中刪除發(fā)送成功的文件塊。進(jìn)一步地,上述所述裝置還包括確定模塊,用于根據(jù)配置文件確定所述獲取資源文件請(qǐng)求接收線程的個(gè)數(shù)、所述資源文件拆分的最大文件塊以及最小文件塊的大小、資源文件發(fā)送的線程個(gè)數(shù)、物理通道個(gè)數(shù)。其中,上述所述生成模塊包括判斷單元,用于判斷是否有空閑的物理通道;拆分單元,用于當(dāng)有空閑的物理通道時(shí),將接收到的資源文件拆分為最小文件塊,當(dāng)無空閑的物理通道時(shí),將接收到的資源文件拆分為最大文件塊。 其中,上述生成模塊包括編號(hào)單元,用于對(duì)拆分后的文件塊進(jìn)行編號(hào)并且為最后一個(gè)文件塊加結(jié)束符。本發(fā)明的技術(shù)方案,由于在接收文件的過程中,直接將接收中的文件拆分為文件塊,可以實(shí)時(shí)地將接收到的資源文件發(fā)送至NFS服務(wù)器,提高了發(fā)送效率,同時(shí),由于使用多個(gè)物理通道將拆分好的文件塊實(shí)時(shí)地發(fā)送至NFS服務(wù)器,可以并行地對(duì)文件塊進(jìn)行發(fā)送,進(jìn)一步提高了從S3服務(wù)器將資源文件發(fā)送至NFS服務(wù)器的效率。
圖I是根據(jù)本發(fā)明現(xiàn)有技術(shù)的S3服務(wù)器將資源文件發(fā)送至NFS服務(wù)器的示意圖;圖2是本發(fā)明的資源文件的發(fā)送方法的流程圖;圖3是本發(fā)明在進(jìn)行資源文件發(fā)送之前的初始化流程圖;圖4是本發(fā)明資源文件的具體流程圖;圖5是本發(fā)明資源文件裝置的結(jié)構(gòu)框圖。
具體實(shí)施例方式為使本發(fā)明的上述目的、特征和優(yōu)點(diǎn)能夠更加明顯易懂,下面結(jié)合附圖和具體實(shí)施方式
對(duì)本發(fā)明實(shí)施例作進(jìn)一步詳細(xì)的說明。本發(fā)明的資源文件的發(fā)送方法可以是由中轉(zhuǎn)服務(wù)器實(shí)現(xiàn)的。該方法基于數(shù)據(jù)傳輸時(shí)延隱藏原理,通過多線程交替工作以及隨發(fā)送速度動(dòng)態(tài)調(diào)整文件塊的大小的方式來實(shí)現(xiàn)在接收資源文件的同時(shí)將接收到的資源文件發(fā)送至NFS服務(wù)器中。同時(shí)利用傳輸控制算法拆分文件塊的大小以平衡S3服務(wù)器與NFS服務(wù)器兩種協(xié)議的讀寫速度,其中NFS即網(wǎng)絡(luò)文件系統(tǒng),是FreeBSD支持的文件系統(tǒng)中的一種,其允許一個(gè)系統(tǒng)在網(wǎng)絡(luò)上與他人共享目錄和文件。通過使用NFS,用戶和程序可以像訪問本地文件一樣訪問遠(yuǎn)端系統(tǒng)上的文件。NFS至少有兩個(gè)主要部分一臺(tái)服務(wù)器和一臺(tái)(或者更多)客戶機(jī),客戶機(jī)可遠(yuǎn)程訪問存放在服務(wù)器上的數(shù)據(jù)。S3服務(wù)器為以S3協(xié)議存取數(shù)據(jù)的存儲(chǔ)服務(wù)器。S3提供以編程方式實(shí)現(xiàn)與該服務(wù)的交互,開發(fā)人員可以使用它存儲(chǔ)數(shù)字資產(chǎn),包括圖片、視頻、音樂和文檔等?;赟3接口可以實(shí)現(xiàn)Key-Value類型存儲(chǔ)提供線性擴(kuò)展能力,而無需關(guān)注底層存儲(chǔ)實(shí)現(xiàn)細(xì)節(jié)。
圖2是本發(fā)明的資源文件的發(fā)送方法的流程圖。如圖I所示,該方法包括以下步驟步驟201 :向S3服務(wù)器發(fā)送獲取資源文件的請(qǐng)求消息;步驟202 :在接收資源文件的過程中,對(duì)接收中的資源文件進(jìn)行拆分,生成發(fā)送文件塊;步驟203 :使用多個(gè)物理通道實(shí)時(shí)地將生成的文件塊發(fā)送至NFS服務(wù)器。在進(jìn)行上述步驟201之前,如圖3所示,還可以進(jìn)行如下步驟步驟301 :根據(jù)配置文件確定獲取資源文件請(qǐng)求接收線程的個(gè)數(shù)、資源文件拆分的最大文件塊以及最小文件塊的大小、資源文件發(fā)送的線程個(gè)數(shù)、物理通道個(gè)數(shù)。將這些信息作為中轉(zhuǎn)服務(wù)器的初始配置信息。 在上述步驟202中,還可以在使用多個(gè)物理通道實(shí)時(shí)地將生成的文件塊發(fā)送至NFS服務(wù)器之后,從中轉(zhuǎn)服務(wù)器的內(nèi)存以及本地存儲(chǔ)中刪除已經(jīng)發(fā)送成功的文件塊,這樣可以釋放中轉(zhuǎn)服務(wù)器內(nèi)存及本地存儲(chǔ)空間,大幅度減少中轉(zhuǎn)空間占用量。在上述步驟202中,對(duì)接收中的資源文件進(jìn)行拆分具體可以為,判斷當(dāng)前是否有空閑的物理通道;當(dāng)有空閑的物理通道時(shí),將接收到的資源文件拆分為最小文件塊,當(dāng)無空閑的物理通道時(shí),將接收到的資源文件拆分為最大塊文件塊??紤]到發(fā)送成本,例如,網(wǎng)絡(luò)通訊的建立、文件分塊、組合的成本等,文件塊如果太小則會(huì)相應(yīng)的提高成本,所以在文件拆分時(shí)需要確定一個(gè)可拆分的文件塊的最小值,以便合理地對(duì)文件進(jìn)行拆分。同樣的,如果物理通道一直沒有空閑,拆分的文件塊不會(huì)一直增大,因?yàn)槿绻募K太大,例如一種極端情況,將一個(gè)文件就拆分為一個(gè)文件塊,那發(fā)送時(shí)就會(huì)只使用一個(gè)物理通道,即使有其他物理通道空閑,也不能被利用,顯然降低了物理通道的利用率。因此,在對(duì)文件塊進(jìn)行拆分時(shí),還要相應(yīng)地考慮實(shí)際網(wǎng)絡(luò)帶寬、物理通道個(gè)數(shù)、資源文件大小以及傳輸成本等綜合因素來確定拆分的最大以及最小文件塊的大小。設(shè)文件大小為S,S3協(xié)議讀寫速率為VS3,NFS協(xié)議讀寫速率為VNFS,物理通道個(gè)數(shù)N。忽略本地存儲(chǔ)10,假設(shè)物理通道為該裝置專用,物理通道利用率最高的理想情況下存在如下關(guān)系
權(quán)利要求
1.一種資源文件的發(fā)送方法,其特征在于,包括 向S3服務(wù)器發(fā)送獲取資源文件的請(qǐng)求消息; 在接收資源文件的過程中,對(duì)接收中的所述資源文件進(jìn)行拆分,生成發(fā)送文件塊; 使用多個(gè)物理通道實(shí)時(shí)地將生成的文件塊發(fā)送至NFS服務(wù)器。
2.根據(jù)權(quán)利要求I所述的方法,其特征在于,所述方法還包括 在使用多個(gè)物理通道實(shí)時(shí)地將生成的文件塊發(fā)送至NFS服務(wù)器之后,從內(nèi)存及本地存儲(chǔ)中刪除發(fā)送成功的文件塊。
3.根據(jù)權(quán)利要求I所述的方法,其特征在于,所述方法還包括 根據(jù)配置文件確定所述獲取資源文件請(qǐng)求接收線程的個(gè)數(shù)、所述資源文件拆分的最大文件塊以及最小文件塊的大小、資源文件發(fā)送的線程個(gè)數(shù)、物理通道個(gè)數(shù)。
4.根據(jù)權(quán)利要求I所述的方法,其特征在于,所述對(duì)接收中的所述資源文件進(jìn)行拆分包括 判斷是否有空閑的物理通道; 當(dāng)有空閑的物理通道時(shí),將接收到的資源文件拆分為最小文件塊,當(dāng)無空閑的物理通道時(shí),將接收到的資源文件拆分為最大文件塊。
5.根據(jù)權(quán)利要求I或4所述的方法,其特征在于,所述對(duì)接收中的所述資源文件進(jìn)行拆分包括 對(duì)拆分后的文件塊進(jìn)行編號(hào)并且為最后一個(gè)文件塊加結(jié)束符。
6.一種資源文件的發(fā)送裝置,其特征在于,包括 第一發(fā)送模塊,用于向S3服務(wù)器發(fā)送獲取資源文件的請(qǐng)求消息; 生成模塊,用于在接收資源文件的全過程中,對(duì)接收中的所述資源文件進(jìn)行拆分,生成發(fā)送文件塊; 第二發(fā)送模塊,用于使用多個(gè)物理通道實(shí)時(shí)地將生成的文件塊發(fā)送至NFS服務(wù)器。
7.根據(jù)權(quán)利要求6所述的裝置,其特征在于,所述裝置還包括 刪除模塊,用于在使用多個(gè)物理通道實(shí)時(shí)地將生成的文件塊發(fā)送至NFS服務(wù)器之后,從內(nèi)存及本地存儲(chǔ)中刪除發(fā)送成功的文件塊。
8.根據(jù)權(quán)利要求6所述的裝置,其特征在于,所述裝置還包括 確定模塊,用于根據(jù)配置文件確定所述獲取資源文件請(qǐng)求接收線程的個(gè)數(shù)、所述資源文件拆分的最大文件塊以及最小文件塊的大小、資源文件發(fā)送的線程個(gè)數(shù)、物理通道個(gè)數(shù)。
9.根據(jù)權(quán)利要求6所述的裝置,其特征在于,所述生成模塊包括 判斷單元,用于判斷是否有空閑的物理通道; 拆分單元,用于當(dāng)有空閑的物理通道時(shí),將接收到的資源文件拆分為最小文件塊,當(dāng)無空閑的物理通道時(shí),將接收到的資源文件拆分為最大文件塊。
10.根據(jù)權(quán)利要求6或9所述的方法,其特征在于,所述生成模塊包括 編號(hào)單元,用于對(duì)拆分后的文件塊進(jìn)行編號(hào)并且為最后一個(gè)文件塊加結(jié)束符。
全文摘要
本發(fā)明公開了一種資源文件的發(fā)送方法及裝置,用于解決現(xiàn)有技術(shù)中從S3服務(wù)器將資源文件發(fā)送至NFS服務(wù)器效率較低的問題,該方法包括向S3服務(wù)器發(fā)送獲取資源文件的請(qǐng)求消息;在接收資源文件的過程中,對(duì)接收中的所述資源文件進(jìn)行拆分,生成發(fā)送文件塊;使用多個(gè)物理通道實(shí)時(shí)地將生成的文件塊發(fā)送至NFS服務(wù)器。提高了從S3服務(wù)器將資源文件發(fā)送至NFS服務(wù)器的效率。
文檔編號(hào)H04L29/08GK102882960SQ20121035525
公開日2013年1月16日 申請(qǐng)日期2012年9月21日 優(yōu)先權(quán)日2012年9月21日
發(fā)明者龔暢 申請(qǐng)人:東軟集團(tuán)股份有限公司