一種面向多云架構(gòu)的網(wǎng)絡(luò)性能提升方法
【技術(shù)領(lǐng)域】
[0001] 本發(fā)明屬于云計算領(lǐng)域,具體涉及一種面向多云架構(gòu)的網(wǎng)絡(luò)性能提升方法。
【背景技術(shù)】
[0002] 隨著互聯(lián)網(wǎng)技術(shù)的飛速發(fā)展,用戶所擁有的網(wǎng)絡(luò)終端設(shè)備也不斷增長,網(wǎng)盤作為 一種為用戶提供多設(shè)備文件存儲和同步的云存儲產(chǎn)品逐漸風(fēng)靡起來。通過安裝在用戶設(shè)備 上的客戶端,用戶本地同步文件夾中的文件能自動地儲存到云存儲服務(wù)器,并且同步到他 所擁有的其他設(shè)備上。網(wǎng)盤這種新興的云存儲產(chǎn)品一經(jīng)推出就立刻吸引了大量的用戶,其 中的典型代表Dropbox,在2014年5月已經(jīng)擁有了超過3億用戶。而像谷歌和微軟這樣的 IT巨頭,也紛紛加入競爭并推出了類似的云存儲產(chǎn)品。
[0003] 與AmazonS3這種具有明確服務(wù)水平協(xié)議的企業(yè)級云存儲產(chǎn)品不同,網(wǎng)盤往往是 免費(fèi)提供或者僅收取很少量的費(fèi)用,但同時也缺乏足夠的服務(wù)質(zhì)量保證。因此用戶在使用 網(wǎng)盤的過程中往往會遇到諸如服務(wù)中斷、文件傳輸速度緩慢和文件失竊等問題。據(jù)著名科 技博客thenextweb報道,微軟的OneDrive網(wǎng)盤曾在2013年8月經(jīng)歷了長達(dá)三天的服務(wù) 中斷。此外,也有研宄指出,Dropbox的同步速度正隨著它用戶量的增長而不斷下降。
[0004] 多云聯(lián)合概念的提出彌補(bǔ)了單一云存儲產(chǎn)品所存在的不足。通過將數(shù)據(jù)冗余地儲 存在多個云存儲服務(wù)器上,多云架構(gòu)的系統(tǒng)能達(dá)到更高的可靠性和安全性,并且能有效地 降低運(yùn)營商鎖定風(fēng)險?,F(xiàn)有的多云架構(gòu)系統(tǒng)往往面向企業(yè)級云存儲產(chǎn)品,它們沒有考慮到 不同云存儲服務(wù)器之間的性能差異,而是直接將冗余數(shù)據(jù)均勻地分布在多個云存儲服務(wù) 器上。這種簡單的數(shù)據(jù)傳輸方法無法獲得很好的網(wǎng)絡(luò)性能,甚至無法超越其中性能最好的 云存儲服務(wù)器。除了數(shù)據(jù)存儲,網(wǎng)盤還需要面向終端用戶提供額外的同步功能,其面對的網(wǎng) 絡(luò)條件相較于企業(yè)級云存儲產(chǎn)品也更加復(fù)雜多變。因此,傳統(tǒng)的多云架構(gòu)系統(tǒng)難以滿足適 應(yīng)新興的網(wǎng)盤產(chǎn)品的需求。
[0005] 為便于理解本發(fā)明,以下對相關(guān)術(shù)語進(jìn)行解釋:
[0006] 本發(fā)明中,客戶端整合N個云存儲服務(wù)器,N> 1,
[0007] 文件數(shù)據(jù):在同步過程中,本地同步文件夾中的文件被切分成一個或多個文件 段,每個文件段由k個原始數(shù)據(jù)塊通過糾刪碼編碼生成(k-l)N個冗余的編碼數(shù)據(jù)塊,1 <k< 20,這些編碼數(shù)據(jù)塊被稱作文件數(shù)據(jù),它是本地同步文件夾中的文件在客戶端和多 個云存儲服務(wù)器之間進(jìn)行文件上傳和下載的基本單位,利用其中任何k個編碼數(shù)據(jù)塊都能 恢復(fù)出原始文件段;
[0008] 在可靠性方面,客戶端通過所使用的糾刪碼保證當(dāng)N個云存儲服務(wù)器中有不少于 心個可以正常運(yùn)行,0 <L彡N,則用戶的文件能夠正常進(jìn)行同步,S卩,能容忍最多N-L個云
[0009] 在安全性方面,客戶端保證任何單個云存儲服務(wù)器被攻擊者攻破,攻擊者都無法 恢復(fù)原始文件;因此,每個云存儲服務(wù)器最多能儲存k-1個數(shù)據(jù)塊以滿足安全性要求;
[0010] 元數(shù)據(jù):元數(shù)據(jù)記錄著本地同步文件夾的目錄結(jié)構(gòu)以及所有文件的元信息,每一 個文件的元信息包括文件路徑、增加或修改時間、文件大小以及對應(yīng)的文件數(shù)據(jù)元信息,文 件數(shù)據(jù)元信息包括該文件所有編碼數(shù)據(jù)塊的本地路徑和儲存各編碼數(shù)據(jù)塊的云存儲服務(wù) 器的名稱;
[0011] 客戶端儲存的元數(shù)據(jù),稱為本地元數(shù)據(jù);云存儲服務(wù)器中儲存的元數(shù)據(jù)稱為云端 元數(shù)據(jù),同一元數(shù)據(jù)將在所有云存儲服務(wù)器中保存?zhèn)浞荨?br>
【發(fā)明內(nèi)容】
[0012] 本發(fā)明提供一種面向多云架構(gòu)的網(wǎng)絡(luò)性能提升方法,解決傳統(tǒng)多云架構(gòu)系統(tǒng)未考 慮不同云存儲服務(wù)器之間性能差異的問題,以提升網(wǎng)絡(luò)性能。
[0013] 本發(fā)明所提供的一種面向多云架構(gòu)的網(wǎng)絡(luò)性能提升方法,包括以下步驟:
[0014] (1)客戶端收集本地同步文件夾的本地變更記錄e,包括文件的增加、修改和刪除 記錄;增加、修改和刪除記錄分別均包括文件路徑和發(fā)生時間;
[0015] (2)將本地變更記錄e應(yīng)用于本地緩存的本地元數(shù)據(jù)V。,從而得到本地新元數(shù)據(jù) V1;
[0016] (3)從多個云存儲服務(wù)器中下載云端元數(shù)據(jù)V。,并通過云端元數(shù)據(jù)V。的增加或 修改時間,判斷云端元數(shù)據(jù)V。是否曾被其它客戶端更新,是則進(jìn)行步驟(4),否則轉(zhuǎn)步驟 (10);
[0017] (4)將本地元數(shù)據(jù)V。與云端元數(shù)據(jù)V。進(jìn)行比較找出二者的差異,得到從V。變更到 V。所需的云端變更記錄e';
[0018] (5)將云端變更記錄e'應(yīng)用于本地新元數(shù)據(jù)V1,從而更新本地新元數(shù)據(jù)V1;
[0019] (6)客戶端判斷云端變更記錄e'中是否存在文件增加或修改記錄,是則進(jìn)行步 驟(7),否則轉(zhuǎn)步驟(8);
[0020] (7)客戶端根據(jù)云端變更記錄e'中的文件增加或修改記錄,將其對應(yīng)文件的編 碼數(shù)據(jù)塊從多個云存儲服務(wù)器中下載到本地,并通過糾刪碼解碼后還原成原始文件,進(jìn)行 步驟(8);
[0021] (8)客戶端判斷云端變更記錄e'中是否存在文件刪除記錄,是則進(jìn)行步驟(9), 否則轉(zhuǎn)步驟(10);
[0022] (9)客戶端根據(jù)云端變更記錄e'中的文件刪除記錄,將其對應(yīng)的文件從本地同 步文件夾中刪除,進(jìn)行步驟(10);
[0023] (10)客戶端判斷本地變更記錄e中是否存在文件增加或修改記錄,是則進(jìn)行步驟 (11),否則轉(zhuǎn)步驟(12);
[0024] (11)客戶端根據(jù)本地變更記錄e中的文件增加或修改記錄,將其對應(yīng)文件進(jìn)行切 分和糾刪碼編碼,生成冗余的編碼數(shù)據(jù)塊,然后將它們從本地上傳到多個云存儲服務(wù)器中; 進(jìn)行步驟(12);
[0025] (12)客戶端判斷本地變更記錄e中是否存在文件刪除記錄,是則進(jìn)行步驟(13), 否則轉(zhuǎn)步驟(14);
[0026] (13)客戶端根據(jù)本地變更記錄e中的文件刪除記錄,向多個云存儲服務(wù)器提出文 件刪除請求;由多個云存儲服務(wù)器分別將文件刪除記錄對應(yīng)文件的編碼數(shù)據(jù)塊刪除;
[0027] (14)客戶端通過向多個云存儲服務(wù)器中上傳鎖文件,獲取對云端元數(shù)據(jù)V。的更新 權(quán)限;
[0028] (15)客戶端將本地新元數(shù)據(jù)V1上傳到所有云存儲服務(wù)器中,將云端元數(shù)據(jù)V。的 內(nèi)容更新為V1;
[0029] (16)客戶端向多個云存儲服務(wù)器提出文件刪除請求,由多個云存儲服務(wù)器分別將 該客戶端上傳的鎖文件刪除,從而釋放對云端元數(shù)據(jù)V。的更新權(quán)限,完成本地-云端同步。
[0030] 所述步驟(7)包括以下子步驟:
[0031] (7. 1)根據(jù)云端變更記錄e'中的文件增加或修改記錄,將其對應(yīng)文件的所有文 件段依序構(gòu)成下載隊(duì)列;
[0032] (7. 2)將所有云存儲服務(wù)器依據(jù)其所有下載連接通道的平均下載速度從高到低進(jìn) 行排序;
[0033] (7. 3)從頭依序遍歷所述下載隊(duì)列,對于每一個文件段,依次將排序后的每個云存 儲服務(wù)器的可用下載連接通道分配給該文件段并進(jìn)行編碼數(shù)據(jù)塊的下載,可用下載連接通 道數(shù)量不超過該云存儲服務(wù)器所存儲的文件段的編碼數(shù)據(jù)塊數(shù)量,直到該文件段共分配 了k個下載連接通道為止,I<k< 20 ;每下載一個編碼數(shù)據(jù)塊,就釋放其對應(yīng)的云存儲服 務(wù)器的下載連接通道,當(dāng)一個文件段完成了k個編碼數(shù)據(jù)塊的下載,即從下載隊(duì)列中刪除 該文件段;
[0034] (7. 4)通過糾刪碼將所述文件段的編碼數(shù)據(jù)塊解碼,恢復(fù)出原始文件段;
[0035] (7. 5)重復(fù)子步驟(7. 2)~(7. 4)直到下載隊(duì)列為空,一個文件的所有文件段都恢 復(fù)成原始文件段,將它們重新拼接形成原始文件。
[0036] 傳輸過程中不斷依據(jù)正在下載的數(shù)據(jù)塊的傳輸速度評估各個云存儲服務(wù)器的下 載性能,從而能夠利用下載性能較好的云存儲服務(wù)器盡可能多地下載數(shù)據(jù)塊,極大地縮短 了文件下載時間,提升了網(wǎng)絡(luò)性能。
[0037] 所述步驟(11)包括以下子步驟:
[0038] (II. 1)根據(jù)本地變更記錄e中的文件增加或修改記錄,將其對應(yīng)文件按照4MB的 大小切分成一個或多個文件段,所有文件段依序構(gòu)成上傳隊(duì)列;
[0039] (11. 2)對于每一個文件段,使用糾刪碼對文件進(jìn)行編碼,每個文件段由k個原始 數(shù)據(jù)塊通過糾刪碼編碼生成(k-1)N個冗余的編碼數(shù)據(jù)塊,I<k< 20,N> 1 ;
[0040] (11. 3)每個文件段的編碼數(shù)據(jù)塊被提交到上傳隊(duì)列的相應(yīng)文件段中;
[0041] (11.4)從頭依序遍歷上傳隊(duì)列,對于每一個文件段,從各個云存儲服務(wù)器中