一種云數(shù)據(jù)遷移方法
【技術(shù)領(lǐng)域】
[0001] 本發(fā)明涉及數(shù)據(jù)存儲(chǔ)技術(shù)領(lǐng)域,具體地說(shuō)是一種實(shí)用性強(qiáng)的云數(shù)據(jù)迀移方法。
【背景技術(shù)】
[0002] 具備高可靠性及可擴(kuò)展性的海量數(shù)據(jù)存儲(chǔ)對(duì)互聯(lián)網(wǎng)公司來(lái)說(shuō)是一個(gè)巨大的挑戰(zhàn), 傳統(tǒng)的數(shù)據(jù)庫(kù)往往很難滿足該需求,并且很多時(shí)候?qū)τ谔囟ǖ南到y(tǒng)絕大部分的檢索都是基 于主鍵的的查詢,在這種情況下使用關(guān)系型數(shù)據(jù)庫(kù)將使得效率低下,并且擴(kuò)展也將成為未 來(lái)很大的難題。在這樣的情況下,使用存儲(chǔ)將會(huì)是一個(gè)很好的選擇。對(duì)部署在云環(huán)境的存 儲(chǔ)系統(tǒng)而言,數(shù)據(jù)迀移是實(shí)現(xiàn)節(jié)點(diǎn)動(dòng)態(tài)擴(kuò)展與彈性負(fù)載均衡的關(guān)鍵技術(shù),主要包括迀移計(jì) 劃(migration plan)制定、路由信息同步、用戶請(qǐng)求轉(zhuǎn)發(fā)及數(shù)據(jù)一致性管理等核心內(nèi)容。數(shù) 據(jù)迀移過(guò)程中伴隨的大量狀態(tài)同步會(huì)給系統(tǒng)性能帶來(lái)一定影響,因此,如何有效降低迀移 開銷是云服務(wù)提供商需著力解決的問(wèn)題。然而,存儲(chǔ)系統(tǒng)的有狀態(tài)性、新的虛擬化環(huán)境、用 戶嚴(yán)格的低延遲要求以及訪問(wèn)負(fù)載的不可預(yù)知性和時(shí)變性給數(shù)據(jù)迀移帶來(lái)了新的挑戰(zhàn)。
[0003] 現(xiàn)有的很多算法為了解決數(shù)據(jù)迀移的時(shí)間和系統(tǒng)資源消耗問(wèn)題,有以下幾種方 法:1)針對(duì)存儲(chǔ)服務(wù)數(shù)據(jù)迀移過(guò)程中的QoS保障問(wèn)題,作者提出了一種基于反饋控制的方 法,周期性地求解滿足QoS約束的最優(yōu)迀移速率,主要關(guān)注迀移帶寬的控制問(wèn)題。2)基于貪 心法的數(shù)據(jù)迀移策略,主要針對(duì)Key/Value存儲(chǔ)系統(tǒng)的數(shù)據(jù)迀移問(wèn)題,基本思想是,采用 統(tǒng)計(jì)方法在線監(jiān)測(cè)熱點(diǎn)分區(qū),優(yōu)先將熱點(diǎn)分區(qū)的部分?jǐn)?shù)據(jù)迀移至負(fù)載較輕的鄰居節(jié)點(diǎn).為 簡(jiǎn)化迀移操作的復(fù)雜度,哈希算法會(huì)保持Key值間的先后順序.這兩部分工作的主要不足 在于未考慮迀移開銷。
[0004] 對(duì)云存儲(chǔ)系統(tǒng)而言,數(shù)據(jù)迀移是實(shí)現(xiàn)節(jié)點(diǎn)動(dòng)態(tài)擴(kuò)展與彈性負(fù)載均衡的關(guān)鍵技術(shù)。 如何降低系統(tǒng)開銷是云服務(wù)提供商需著力解決的問(wèn)題。雖然已有研究工作大多針對(duì)非虛擬 化環(huán)境下的數(shù)據(jù)迀移問(wèn)題,但是這些方法對(duì)于云存儲(chǔ)系統(tǒng)而言往往并不適用。為應(yīng)對(duì)上述 挑戰(zhàn),將數(shù)據(jù)迀移問(wèn)題納入負(fù)載均衡場(chǎng)景解決。提出一種降低系統(tǒng)開銷保持系統(tǒng)性能的數(shù) 據(jù)迀移策略,該發(fā)明基于均衡度制訂數(shù)據(jù)迀移策略,選取最優(yōu)的數(shù)據(jù)迀移操作,以達(dá)到系統(tǒng) 的負(fù)載均衡。
【發(fā)明內(nèi)容】
[0005] 本發(fā)明的技術(shù)任務(wù)是針對(duì)以上不足之處,提供一種實(shí)用性強(qiáng)、云數(shù)據(jù)迀移方法。
[0006] -種云數(shù)據(jù)迀移方法,其具體實(shí)現(xiàn)過(guò)程為:
[0007] 將一個(gè)文件分為一個(gè)或數(shù)個(gè)塊來(lái)存儲(chǔ),每個(gè)塊是獨(dú)立的存儲(chǔ)單位,以塊為單位在 集群服務(wù)器上分配存儲(chǔ);將每個(gè)塊作為一個(gè)分區(qū),并將分區(qū)作為是數(shù)據(jù)迀移和負(fù)載監(jiān)測(cè)的 基本單位;
[0008] 將所有存儲(chǔ)節(jié)點(diǎn)按照標(biāo)準(zhǔn)化后的負(fù)載值與系統(tǒng)總節(jié)點(diǎn)數(shù)的關(guān)系分別歸入迀入節(jié) 點(diǎn)集合In_set和迀出節(jié)點(diǎn)集合0ut_set ;
[0009] 在云環(huán)境中各節(jié)點(diǎn)之間通過(guò)數(shù)據(jù)迀移算法達(dá)到系統(tǒng)負(fù)載的均衡,即將〇ut_set中 各節(jié)點(diǎn)中的部分?jǐn)?shù)據(jù)迀移到In_set中各節(jié)點(diǎn)上,該迀移過(guò)程通過(guò)數(shù)據(jù)迀移算法計(jì)算每個(gè) 數(shù)據(jù)分區(qū)在節(jié)點(diǎn)間迀移的最小資源消耗來(lái)控制全局和局部搜索最終實(shí)現(xiàn)系統(tǒng)的資源最優(yōu) 化。
[0010] 所述數(shù)據(jù)迀移算法具體為:
[0011] 首先對(duì)所有迀入節(jié)點(diǎn)進(jìn)行初始化,在該初始階段,存儲(chǔ)系統(tǒng)依據(jù)所有存儲(chǔ)節(jié)點(diǎn)標(biāo) 準(zhǔn)化后的負(fù)載值與1/n的關(guān)系初始化N個(gè)迀入節(jié)點(diǎn),即N偵查報(bào)文發(fā)現(xiàn)N個(gè)食物源;此時(shí), N偵察報(bào)文變?yōu)橐I(lǐng)報(bào)文,一個(gè)引領(lǐng)報(bào)文對(duì)應(yīng)一個(gè)迀入節(jié)點(diǎn);
[0012] 所有引領(lǐng)報(bào)文將相關(guān)信息發(fā)送給迀出節(jié)點(diǎn),這里的相關(guān)信息包括:迀出節(jié)點(diǎn)的位 置信息、帶寬、待迀入節(jié)點(diǎn)可迀入數(shù)據(jù)量;
[0013] 迀出節(jié)點(diǎn)根據(jù)所有迀入節(jié)點(diǎn)的收益率,以一定的概率選擇某個(gè)迀入節(jié)點(diǎn),即選擇 收益率高的迀入節(jié)點(diǎn);當(dāng)引領(lǐng)報(bào)文發(fā)現(xiàn)的迀入節(jié)點(diǎn)在連續(xù)若干次迭代后,沒(méi)有得到更新時(shí), 就放棄該迀入節(jié)點(diǎn),對(duì)應(yīng)的引領(lǐng)報(bào)文成為偵查報(bào)文,繼續(xù)去尋找新的迀入節(jié)點(diǎn)。
[0014] 所述數(shù)據(jù)迀移前,存儲(chǔ)系統(tǒng)檢測(cè)負(fù)載均衡度,該負(fù)載均衡度設(shè)有閾值,當(dāng)達(dá)到設(shè)置 的閾值時(shí),觸發(fā)數(shù)據(jù)迀移動(dòng)作。
[0015] 所述負(fù)載均衡度的具體檢測(cè)過(guò)程為:
[0016] 1)節(jié)點(diǎn)i的實(shí)際負(fù)載值為匕,首先根據(jù)以下公式對(duì)各節(jié)點(diǎn)進(jìn)行無(wú)量綱化處理,其 中&為節(jié)點(diǎn)i可承受最大負(fù)載:
[0017] 1,= b ,/B,;
[0018] 2)根據(jù)以下公式對(duì)各節(jié)點(diǎn)負(fù)載作標(biāo)準(zhǔn)化處理:
[0020] p = {pi, p2, p3,…,pn}為標(biāo)準(zhǔn)化后的節(jié)點(diǎn)負(fù)載,η為集群節(jié)點(diǎn)數(shù);
[0021] 3)采用信息熵表表征集群的負(fù)載分布情況,其計(jì)算方式見以下公式,熵值越高,表 明負(fù)載分布越趨于均勻;而熵值越低,則表明負(fù)載分布越不均:
[0023] 當(dāng)p i = l/n(i = 1,2,3,"·,η),即各節(jié)點(diǎn)負(fù)載相等時(shí),系統(tǒng)取得最大熵值Η(Ρ) max = log(η);
[0024] 4)通過(guò)以下公式構(gòu)建一個(gè)取值范圍為0-1的均衡度函數(shù)Τ :
[0026] 所述迀移過(guò)程基于以下適應(yīng)度函數(shù)完成:
[0027] fit (χ;) = -χη+χ?2+χ?3;
[0028] 在該適應(yīng)度函數(shù)中,迀入節(jié)點(diǎn)i在3維空間中的位置為Xi= (χ 分別代表標(biāo)準(zhǔn)化后的距離,帶寬,待迀入節(jié)點(diǎn)可迀入數(shù)據(jù)量;其中: dkl代表迀出節(jié)點(diǎn)到待迀入節(jié)點(diǎn)i的距離; bu代表迀出節(jié)點(diǎn)到待迀入節(jié)點(diǎn)i網(wǎng)絡(luò)帶寬;
Qii代表待迀入節(jié)點(diǎn)i可接收的數(shù)據(jù)量。
[0032] 所述偵查報(bào)文發(fā)現(xiàn)食物源,即當(dāng)前迀入節(jié)點(diǎn)i附近搜索新迀入節(jié)點(diǎn)i+Ι的具體過(guò) 程為:
[0034] 式中,j e {1,2, 3}且該j代表三個(gè)決定迀入節(jié)點(diǎn)信息的量,分別是:距離,帶寬, 待迀入節(jié)點(diǎn)可迀入數(shù)據(jù)量,k e {1,2,…,N}。
[0035] 迀出節(jié)點(diǎn)選擇某引領(lǐng)報(bào)文的概率為:
[0037] 式中,fit (xi)為第i個(gè)迀出節(jié)點(diǎn)的適應(yīng)值對(duì)應(yīng)迀出節(jié)點(diǎn)的的收益率;
[0038] 迀出節(jié)點(diǎn)收益率越高,待迀出節(jié)點(diǎn)選擇的概率越大,即當(dāng)引領(lǐng)報(bào)文和迀出節(jié)點(diǎn)數(shù) 據(jù)分區(qū)在迀入節(jié)點(diǎn)&的領(lǐng)域內(nèi)產(chǎn)生的新的迀入節(jié)點(diǎn)V i的收益率高于X #寸,則放棄X i,即& 被1替換;否則,保留X1<3
[0039] 當(dāng)某個(gè)食物源在預(yù)先設(shè)定的迭代次數(shù)內(nèi)未得到改進(jìn)時(shí),該食物源被放棄,這里的 迭代迭代次數(shù)用limit表示,且采用變量trial來(lái)記錄食物源X i被更新的次數(shù),該值得計(jì) 算公式定義為:
[0041] 即,如果迀入節(jié)點(diǎn)乂;在limit次迭代后未得到改進(jìn),即max(trial jMimit,則說(shuō) 明此時(shí)得到的解為局部最優(yōu)解;
[0042] 此時(shí),與該迀入節(jié)點(diǎn)對(duì)應(yīng)的引領(lǐng)報(bào)文變?yōu)閭刹閳?bào)文,該偵查報(bào)文按照以下公式計(jì) 算新的迀入節(jié)點(diǎn)Z :
[0043] Zx= Xmin+rand[-l, 1] X (Xnax-Xnin)
[0044] 式中,Z;= (zil, zi2, zi3)。
[0045] 本發(fā)明的一種云數(shù)據(jù)迀移方法,具有以下優(yōu)點(diǎn):
[0046] 本發(fā)明提出的一種云數(shù)據(jù)迀移方法,基于均衡度制訂數(shù)據(jù)迀移策略,選取最優(yōu)的 數(shù)據(jù)迀移操作,以達(dá)到系統(tǒng)的負(fù)載均衡;將群智能優(yōu)化算法中的人工蜂群優(yōu)化算法應(yīng)用于 云存儲(chǔ)系統(tǒng),以減少數(shù)據(jù)迀移操作對(duì)系統(tǒng)性能的影響,同時(shí)提高負(fù)載均衡度;有效降低數(shù)據(jù) 迀移過(guò)程中的系統(tǒng)開銷,降低負(fù)載傾斜,實(shí)用性強(qiáng),易于推廣。
【附圖說(shuō)明】
[0047] 附圖1為本發(fā)明的實(shí)驗(yàn)測(cè)試拓?fù)鋱D。
[0048] 附圖2為本發(fā)明存儲(chǔ)1. 2G數(shù)據(jù)時(shí)基于ABC算法的數(shù)據(jù)圖像。
[0049] 附圖3為本發(fā)明存儲(chǔ)1. 2G數(shù)據(jù)時(shí)基于貪心算法的數(shù)據(jù)圖像。
[0050] 附圖4為本發(fā)明存儲(chǔ)1. 7G數(shù)據(jù)時(shí)基于A