分布式存儲(chǔ)系統(tǒng)中供應(yīng)服務(wù)器選擇和修復(fù)數(shù)據(jù)傳輸方法
【技術(shù)領(lǐng)域】
[0001] 本發(fā)明涉及基于網(wǎng)絡(luò)編碼的分布式存儲(chǔ)系統(tǒng)的數(shù)據(jù)修復(fù),具體涉及一種在對(duì)基于 網(wǎng)絡(luò)編碼的分布式存儲(chǔ)系統(tǒng)進(jìn)行數(shù)據(jù)修復(fù)時(shí)進(jìn)行供應(yīng)服務(wù)器選擇和修復(fù)數(shù)據(jù)傳輸?shù)姆椒ā?br>【背景技術(shù)】
[0002] 隨著大數(shù)據(jù)時(shí)代的到來(lái),爆炸式增長(zhǎng)的信息加速了數(shù)據(jù)存儲(chǔ)的發(fā)展。思科預(yù)測(cè)在 2018年,數(shù)據(jù)中心流量預(yù)估為8.6 ZBUettabytes)。由于分布式存儲(chǔ)系統(tǒng)具有以下優(yōu)點(diǎn):1) 增強(qiáng)存儲(chǔ)的可靠性;2)提高存儲(chǔ)的可靠性;3)動(dòng)態(tài)可擴(kuò)展,易于維修等等,因此,很多提供數(shù) 據(jù)存儲(chǔ)的服務(wù)商都是通過(guò)分布式存儲(chǔ)系統(tǒng)存儲(chǔ)數(shù)據(jù)。
[0003] 眾所周知,數(shù)據(jù)的儲(chǔ)存必須具有很高的可靠性。為了保證數(shù)據(jù)存儲(chǔ)的可靠性并節(jié) 約成本,現(xiàn)有技術(shù)中,大規(guī)模的分布式存儲(chǔ)系統(tǒng)一般在分布在不同地理位置的服務(wù)器上,通 過(guò)冗余方式存儲(chǔ)數(shù)據(jù),這樣,用戶(hù)可以隨時(shí)隨地的獲得所需的信息。傳統(tǒng)的存儲(chǔ)方案主要有 復(fù)制和里德-所羅門(mén)碼。2000年,網(wǎng)絡(luò)編碼被提出,網(wǎng)絡(luò)編碼是一種融合了路由和編碼的信 息交換技術(shù),它的核心思想是在網(wǎng)絡(luò)中的各個(gè)節(jié)點(diǎn)上對(duì)各條信道上收到的信息進(jìn)行線(xiàn)性或 者非線(xiàn)性的處理,然后轉(zhuǎn)發(fā)給下游節(jié)點(diǎn),中間節(jié)點(diǎn)扮演著編碼器或信號(hào)處理器的角色。通過(guò) 網(wǎng)絡(luò)編碼,可以達(dá)到多播路由傳輸?shù)淖畲罅鹘?,提高了信息的傳輸效率,因而其具有增加網(wǎng) 絡(luò)吞吐量、均衡網(wǎng)絡(luò)負(fù)載、提高帶寬利用率等優(yōu)點(diǎn)。網(wǎng)絡(luò)編碼應(yīng)用于分布式存儲(chǔ)系統(tǒng)的數(shù)據(jù) 存儲(chǔ),同時(shí)具有糾刪碼的MDS性質(zhì),用戶(hù)只要獲得足夠的編碼塊就可以恢復(fù)原文件。
[0004] 盡管網(wǎng)絡(luò)編碼能提高可靠性,但在實(shí)際應(yīng)用中,分布式存儲(chǔ)系統(tǒng)中的數(shù)據(jù)容易受 到各式各樣的破壞,例如斷電,駭客入侵、磁盤(pán)損壞等。為了保證存儲(chǔ)的可靠性,需要對(duì)丟失 的數(shù)據(jù)進(jìn)行及時(shí)修復(fù)。當(dāng)某一個(gè)存儲(chǔ)服務(wù)器失效后,一個(gè)新的存儲(chǔ)服務(wù)器(該服務(wù)器被稱(chēng)為 新生服務(wù)器)會(huì)替換原有失效服務(wù)器,并且從其它幸存的存儲(chǔ)服務(wù)器(也稱(chēng)為存活服務(wù)器) 中選擇部分服務(wù)器(稱(chēng)為供應(yīng)服務(wù)器),并從其上下載修復(fù)數(shù)據(jù),對(duì)丟失的數(shù)據(jù)進(jìn)行再生。例 如,中國(guó)發(fā)明專(zhuān)利申請(qǐng)CN103336785A公開(kāi)了一種基于網(wǎng)絡(luò)編碼的分布式存儲(chǔ)方法及其裝 置,其中,在數(shù)據(jù)修復(fù)步驟中,從可用數(shù)據(jù)節(jié)點(diǎn)(存活服務(wù)器)中隨機(jī)選擇編碼數(shù)據(jù)塊,下載 編碼數(shù)據(jù)塊構(gòu)建修復(fù)矩陣并存儲(chǔ)到新的可用數(shù)據(jù)節(jié)點(diǎn)(新生服務(wù)器)中。
[0005] 但是,在修復(fù)過(guò)程中,供應(yīng)服務(wù)器的選擇和修復(fù)數(shù)據(jù)的傳輸方法直接影響網(wǎng)絡(luò)的 帶寬(修復(fù)帶寬)消耗和修復(fù)時(shí)延(再生時(shí)間)。上述隨機(jī)選擇供應(yīng)服務(wù)器的方法對(duì)再生時(shí)間 具有不利影響。
【發(fā)明內(nèi)容】
[0006] 本發(fā)明的發(fā)明目的是提供一種分布式存儲(chǔ)系統(tǒng)中供應(yīng)服務(wù)器選擇和修復(fù)數(shù)據(jù)傳 輸方法,通過(guò)對(duì)供應(yīng)服務(wù)器的優(yōu)化選擇和數(shù)據(jù)傳輸路徑的優(yōu)化,有效利用網(wǎng)絡(luò)帶寬,縮短修 復(fù)時(shí)延。
[0007] 為達(dá)到上述發(fā)明目的,本發(fā)明采用的技術(shù)方案是:一種分布式存儲(chǔ)系統(tǒng)中供應(yīng)服 務(wù)器選擇和修復(fù)數(shù)據(jù)傳輸方法,基于混合整數(shù)線(xiàn)性規(guī)劃實(shí)現(xiàn),將供應(yīng)服務(wù)器定義為供應(yīng)節(jié) 點(diǎn),所述方法包括以下步驟: A、 根據(jù)待修復(fù)的分布式存儲(chǔ)系統(tǒng),獲取下列參數(shù): 由存活服務(wù)器、新生服務(wù)器和網(wǎng)絡(luò)中的互聯(lián)設(shè)備構(gòu)成的節(jié)點(diǎn)集合, 節(jié)點(diǎn)集合中各節(jié)點(diǎn)間的鏈路集合, 需選擇的供應(yīng)節(jié)點(diǎn)的數(shù)量, 每個(gè)供應(yīng)節(jié)點(diǎn)需傳輸?shù)叫律?jié)點(diǎn)的數(shù)據(jù)量; B、 根據(jù)所獲取的參數(shù),將基于網(wǎng)絡(luò)編碼的分布式存儲(chǔ)系統(tǒng)表示為有向圖G(V,E),G為有 向連通圖,V和E分別為節(jié)點(diǎn)集合及鏈路集合; 其中,以所述存活服務(wù)器為存活節(jié)點(diǎn),以新生服務(wù)器為新生節(jié)點(diǎn),以網(wǎng)絡(luò)中的互聯(lián)設(shè)備 為中間節(jié)點(diǎn),所述節(jié)點(diǎn)集合由存活節(jié)點(diǎn)、新生節(jié)點(diǎn)和中間節(jié)點(diǎn)構(gòu)成; 所述鏈路集合的構(gòu)建方法是,如果節(jié)點(diǎn)集合V中兩個(gè)不同節(jié)點(diǎn)之間存在通信鏈路,則在 兩個(gè)節(jié)點(diǎn)之間連接一條鏈路,并給出通信鏈路上的數(shù)據(jù)傳輸方向以及每個(gè)傳輸方向上的帶 寬,重復(fù)本步驟直至所有符合條件的鏈路連接完畢,這些鏈路構(gòu)成鏈路集合E; C、 根據(jù)有向圖,基于混合整數(shù)線(xiàn)性規(guī)劃,建立最優(yōu)供應(yīng)節(jié)點(diǎn)選擇及修復(fù)數(shù)據(jù)傳輸?shù)臄?shù) 學(xué)模型; D、 針對(duì)建立的數(shù)學(xué)模型,求解獲得最優(yōu)的供應(yīng)節(jié)點(diǎn)集合,每個(gè)供應(yīng)節(jié)點(diǎn)到新生節(jié)點(diǎn)的 數(shù)據(jù)傳輸路徑以及每條路徑上傳輸?shù)臄?shù)據(jù)傳輸速率; E:獲取最優(yōu)供應(yīng)節(jié)點(diǎn)選擇及修復(fù)數(shù)據(jù)傳輸?shù)姆桨浮?br>[0008] 上述技術(shù)方案中,所述步驟C具體包括以下步驟: C1、獲取已知參數(shù):存活節(jié)點(diǎn)的集合、新生節(jié)點(diǎn)、中間節(jié)點(diǎn)、每個(gè)節(jié)點(diǎn)的上游鄰居節(jié)點(diǎn)集 合、每個(gè)節(jié)點(diǎn)的下游鄰居節(jié)點(diǎn)集合、有向邊的集合、有向邊上的帶寬、需選擇的供應(yīng)節(jié)點(diǎn)的 數(shù)量以及每個(gè)供應(yīng)節(jié)點(diǎn)需傳輸?shù)叫律?jié)點(diǎn)的數(shù)據(jù)量; C2、對(duì)變量進(jìn)行定義,所述變量為:每個(gè)供應(yīng)節(jié)點(diǎn)傳輸至新生節(jié)點(diǎn)的數(shù)據(jù)流速率及該速 率的最小值、每條數(shù)據(jù)流在每條邊上的數(shù)據(jù)傳輸速率、每個(gè)供應(yīng)節(jié)點(diǎn)至新生節(jié)點(diǎn)的傳輸速 率以及當(dāng)前存活節(jié)點(diǎn)是否被選為供應(yīng)節(jié)點(diǎn),〇表示當(dāng)前存活節(jié)點(diǎn)沒(méi)被選為供應(yīng)節(jié)點(diǎn),1表示 當(dāng)前存活節(jié)點(diǎn)被選為供應(yīng)節(jié)點(diǎn); C3、利用所述定義的參數(shù)和變量構(gòu)建目標(biāo)函數(shù)一一最小化數(shù)據(jù)修復(fù)的時(shí)間等價(jià)于最大 化所有供應(yīng)節(jié)點(diǎn)傳輸至新生節(jié)點(diǎn)的數(shù)據(jù)流速率的最小值: 構(gòu)建目標(biāo)函數(shù)的約束條件包括:所有供應(yīng)節(jié)點(diǎn)傳輸至新生節(jié)點(diǎn)的數(shù)據(jù)流速率的最小值 小于等于每個(gè)供應(yīng)節(jié)點(diǎn)傳輸?shù)叫律?jié)點(diǎn)的傳輸速率、進(jìn)出每個(gè)中間節(jié)點(diǎn)的數(shù)據(jù)傳輸速率守 恒、供應(yīng)節(jié)點(diǎn)發(fā)出的數(shù)據(jù)傳輸速率和新生節(jié)點(diǎn)上收到的數(shù)據(jù)傳輸速率守恒、不同的數(shù)據(jù)流 通過(guò)同一條鏈路的總速率不超過(guò)該鏈路的帶寬、保證只有存活節(jié)點(diǎn)被選擇為供應(yīng)節(jié)點(diǎn)時(shí), 有數(shù)據(jù)流從該節(jié)點(diǎn)傳出、限制供應(yīng)節(jié)點(diǎn)的數(shù)量以及整數(shù)變量和實(shí)數(shù)變量的取值范圍; 由此建立最優(yōu)供應(yīng)節(jié)點(diǎn)選擇及修復(fù)數(shù)據(jù)傳輸?shù)臄?shù)學(xué)模型。
[0009] 上文中,在構(gòu)建約束條件時(shí)主要考慮到如下因素:數(shù)據(jù)修復(fù)時(shí)間為每個(gè)供應(yīng)節(jié)點(diǎn) 將需要傳輸?shù)臄?shù)據(jù)全部傳輸完畢時(shí)間的最大值。對(duì)于每個(gè)供應(yīng)節(jié)點(diǎn),將需要傳輸?shù)臄?shù)據(jù)全 部傳輸完畢時(shí)間等于需傳輸?shù)臄?shù)據(jù)量除以每個(gè)供應(yīng)節(jié)點(diǎn)至新生節(jié)點(diǎn)的傳輸速率。因?yàn)樵诨?于網(wǎng)絡(luò)編碼的分布式存儲(chǔ)系統(tǒng)中,每個(gè)被選為供應(yīng)節(jié)點(diǎn)傳輸?shù)叫律?jié)點(diǎn)的數(shù)據(jù)量為相同 值,所以,最小化數(shù)據(jù)修復(fù)時(shí)間,等價(jià)于最大化每個(gè)供應(yīng)節(jié)點(diǎn)到新生節(jié)點(diǎn)的傳輸速率的最小 值。
[0010] 上述技術(shù)方案中,整數(shù)線(xiàn)性規(guī)劃求解方法為隱枚舉法、分枝定界法或割平面法。
[0011] 進(jìn)一步的技術(shù)方案,對(duì)所提出的混合整數(shù)線(xiàn)性規(guī)劃使用AMPL語(yǔ)言建模并用CPLEX 線(xiàn)性規(guī)劃求解器直接求解,獲得供應(yīng)服務(wù)器選擇和修復(fù)數(shù)據(jù)傳輸方案。
[0012] 由于上述技術(shù)方案運(yùn)用,本發(fā)明與現(xiàn)有技術(shù)相比具有下列優(yōu)點(diǎn): 與現(xiàn)有技術(shù)中的隨機(jī)選擇不同,本發(fā)明將分布式系統(tǒng)轉(zhuǎn)換為有向圖,將供應(yīng)服務(wù)器和 數(shù)據(jù)傳輸方案的選擇轉(zhuǎn)換成最優(yōu)化問(wèn)題,通過(guò)混合整數(shù)線(xiàn)性規(guī)劃實(shí)現(xiàn)優(yōu)化選擇,最優(yōu)地從 存活服務(wù)器集合中選擇出相應(yīng)的供應(yīng)服務(wù)器集合,并得到從供應(yīng)服務(wù)器到新生服務(wù)器之間 的數(shù)據(jù)傳輸方案,減少了整個(gè)數(shù)據(jù)修復(fù)的再生時(shí)間,從而提高了系統(tǒng)性能。
【附圖說(shuō)明】
[0013] 圖1是實(shí)施例中基于網(wǎng)絡(luò)編碼的分布式存儲(chǔ)系統(tǒng)的修復(fù)過(guò)程中最優(yōu)供應(yīng)節(jié)點(diǎn)和數(shù) 據(jù)傳輸方案的流程圖; 圖2是基于網(wǎng)絡(luò)編碼的分布式存儲(chǔ)系統(tǒng)的網(wǎng)絡(luò)模型; 圖3是根據(jù)圖2的網(wǎng)絡(luò)模型構(gòu)建的有向圖; 圖4-圖6是二種不同的修復(fù)方案不意圖; 圖7是實(shí)施例中仿真結(jié)果示意圖。
【具體實(shí)施方式】
[0014] 下面結(jié)合附圖及實(shí)施例對(duì)本發(fā)