一種用于存儲(chǔ)系統(tǒng)的負(fù)載均衡控制方法
【技術(shù)領(lǐng)域】
[0001] 本發(fā)明涉及一種用于存儲(chǔ)系統(tǒng)的負(fù)載均衡控制方法
【背景技術(shù)】
[0002] 隨著越來(lái)越多的智能設(shè)備接入互聯(lián)網(wǎng),導(dǎo)致網(wǎng)絡(luò)上的數(shù)據(jù)量越來(lái)越大。到目前為 止,線上數(shù)據(jù)還以摩爾定律的方式急速增長(zhǎng),因此必然為數(shù)據(jù)的存儲(chǔ)和管理帶來(lái)極大的挑 戰(zhàn)。分布式存儲(chǔ)技術(shù)是目前比較流行的解決方案,通過(guò)融合集群技術(shù)、分布式技術(shù)和文件系 統(tǒng)等功能,實(shí)現(xiàn)眾多存儲(chǔ)設(shè)備之間的協(xié)同工作,對(duì)外接入不同設(shè)備提供統(tǒng)一的訪問(wèn)模式。分 布式存儲(chǔ)系統(tǒng)一般由物理存儲(chǔ)層、基礎(chǔ)平臺(tái)管理層、應(yīng)用接口層和用戶(hù)訪問(wèn)層組成,其中基 礎(chǔ)管理層是存儲(chǔ)核心的部分?;A(chǔ)管理層主要負(fù)責(zé)數(shù)據(jù)儲(chǔ)存、冗余備份、數(shù)據(jù)一致性、負(fù)載 均衡、高可用等功能,其中節(jié)點(diǎn)的負(fù)載是很重要的一個(gè)模塊。所謂的負(fù)載不均衡是指各個(gè)存 儲(chǔ)節(jié)點(diǎn)之間的數(shù)據(jù)分布不平衡,節(jié)點(diǎn)之間的負(fù)載不均衡必然會(huì)影響整個(gè)存儲(chǔ)系統(tǒng)的系統(tǒng)吞 吐量和響應(yīng)時(shí)間、。
[0003] 高效地解決大規(guī)模存儲(chǔ)節(jié)點(diǎn)之間負(fù)載均衡是一個(gè)比較困難的問(wèn)題,當(dāng)前的主 流技術(shù)包括基于分布式技術(shù)的動(dòng)態(tài)數(shù)據(jù)存放和數(shù)據(jù)帶條化技術(shù)。比如:文獻(xiàn)"Ganger G R et al. Disk Subsystem Load Balancing:Disk striping vs Conventional data placement[C]. Proceedings of the 26th Hawaii International Conference on System Sciences, LosAlamitos: IEEE CS Press, 1993:40-49" 認(rèn)為傳統(tǒng)的動(dòng)態(tài)數(shù)據(jù)策略容易造 成磁盤(pán)容量?jī)A斜,因?yàn)樗笤诳焖俑淖冊(cè)L問(wèn)模式下被迫接受原子數(shù)據(jù),從而導(dǎo)致負(fù)載 失衡,最后采用磁盤(pán)帶條化作為輔助手段;文獻(xiàn)"R. J. Honicky, E. L. Miller. Replication Under Scalable Hashing:A Family of Algorithms for Scalable Decentralized Data Distribution.thel8th International Parallel and Distributed Processing Symposium(IPDPS2004), Santa Fe, NM,April2004" 提出了 RUSH 族算法,基于去中心化的數(shù) 據(jù)分布,主要針對(duì)文件系統(tǒng)在增加或刪除數(shù)據(jù)時(shí)系統(tǒng)出現(xiàn)負(fù)載失衡的情況,不同的RUSH算 法變種有不同的特征,分別用來(lái)解決不同的情況;文獻(xiàn)"倪云竹,呂光宏,黃彥輝.用遺傳算 法解決基于分條技術(shù)的磁盤(pán)負(fù)載均衡問(wèn)題[J].計(jì)算機(jī)學(xué)報(bào)"提出了采用遺傳算法來(lái)解決基 于帶條化技術(shù)的磁盤(pán)動(dòng)態(tài)負(fù)載均衡策略,主要采用了帶條化技術(shù)來(lái)劃分文件以及為實(shí)現(xiàn)負(fù) 載均衡的文件分配算法,并且對(duì)磁盤(pán)的熱度進(jìn)行分析,最終根據(jù)遺傳算法來(lái)得到最佳解決 方案;文獻(xiàn)"董歡慶,李戰(zhàn)懷.基于遺傳算法的RAID磁盤(pán)陣列中磁盤(pán)負(fù)載均衡的方法[J]. 計(jì)算機(jī)工程與應(yīng)用"對(duì)RAID磁盤(pán)陣列的邏輯磁盤(pán)的10特征進(jìn)行分析,在此基礎(chǔ)上又根據(jù)邏 輯磁盤(pán)和物理磁盤(pán)之間的映射和負(fù)載情況進(jìn)行分析,最后從存儲(chǔ)節(jié)點(diǎn)的內(nèi)部進(jìn)行負(fù)載均衡 處理,提出一種快速的存儲(chǔ)節(jié)點(diǎn)內(nèi)部數(shù)據(jù)迀移方案。
[0004] 上述文獻(xiàn)采用的方法能夠?qū)崿F(xiàn)一定的作用,但都難以實(shí)現(xiàn)存儲(chǔ)節(jié)點(diǎn)的高效負(fù)載均 衡,特別是難以降低頻繁訪問(wèn)節(jié)點(diǎn)的負(fù)載。
【發(fā)明內(nèi)容】
[0005] 本發(fā)明的目的就在于為了解決上述問(wèn)題而提供一種能降低頻繁訪問(wèn)節(jié)點(diǎn)負(fù)載的 用于存儲(chǔ)系統(tǒng)的負(fù)載均衡控制方法。
[0006] 本發(fā)明通過(guò)以下技術(shù)方案來(lái)實(shí)現(xiàn)上述目的:
[0007] -種用于存儲(chǔ)系統(tǒng)的負(fù)載均衡控制方法,包括以下步驟:
[0008] (1)根據(jù)系統(tǒng)模型物理節(jié)點(diǎn)和虛擬節(jié)點(diǎn)的映射特點(diǎn),采用多叉樹(shù)結(jié)構(gòu)編碼,整個(gè)系 統(tǒng)結(jié)構(gòu)對(duì)應(yīng)一棵樹(shù),基因位對(duì)應(yīng)根節(jié)點(diǎn)到葉子節(jié)點(diǎn)路徑上所有的節(jié)點(diǎn),根節(jié)點(diǎn)即第零層定 義為系統(tǒng),第一層表示物理節(jié)點(diǎn),第二層表示磁盤(pán),第三層對(duì)應(yīng)磁盤(pán)分塊,第四層對(duì)應(yīng)虛擬 節(jié)點(diǎn);
[0009] (2)隨機(jī)生成含有若干個(gè)個(gè)體的初始種群;
[0010] (3)確定是否滿(mǎn)足迭代結(jié)束條件,如果不滿(mǎn)足,進(jìn)入步驟(4),如果滿(mǎn)足則輸出結(jié) 果;
[0011] ⑷根據(jù)以下公式計(jì)算每個(gè)個(gè)體的適應(yīng)度:
[0012]
【主權(quán)項(xiàng)】
1. 一種用于存儲(chǔ)系統(tǒng)的負(fù)載均衡控制方法,其特征在于:包括以下步驟: (1) 根據(jù)系統(tǒng)模型物理節(jié)點(diǎn)和虛擬節(jié)點(diǎn)的映射特點(diǎn),采用多叉樹(shù)結(jié)構(gòu)編碼,整個(gè)系統(tǒng) 結(jié)構(gòu)對(duì)應(yīng)一棵樹(shù),基因位對(duì)應(yīng)根節(jié)點(diǎn)到葉子節(jié)點(diǎn)路徑上所有的節(jié)點(diǎn),根節(jié)點(diǎn)即第零層定義 為系統(tǒng),第一層表示物理節(jié)點(diǎn),第二層表示磁盤(pán),第三層對(duì)應(yīng)磁盤(pán)分塊,第四層對(duì)應(yīng)虛擬節(jié) 占. (2) 隨機(jī)生成含有若干個(gè)個(gè)體的初始種群; (3) 確定是否滿(mǎn)足迭代結(jié)束條件,如果不滿(mǎn)足,進(jìn)入步驟(4),如果滿(mǎn)足則輸出結(jié)果; (4) 根據(jù)以下公式計(jì)算每個(gè)個(gè)體的適應(yīng)度:
其中,F(xiàn)(s)適應(yīng)度函數(shù),M,N為常數(shù),f(s)由下式確定:
其中,Gy表不任意一個(gè)物理節(jié)點(diǎn)中的任意一塊磁盤(pán)的全局負(fù)載,表不任意一塊 磁盤(pán)的平均負(fù)載,S表示整個(gè)系統(tǒng)的總使用量; (5) 按照輪盤(pán)賭選擇方法選擇下一步的個(gè)體; (6) 對(duì)選擇的個(gè)體進(jìn)行交叉運(yùn)算; (7) 對(duì)種群的基因位進(jìn)行變異處理; (8) 除去種群中適應(yīng)度最小的個(gè)體,確保種群的規(guī)模,產(chǎn)生新的種群,并返回步驟(3)。
2. 根據(jù)權(quán)利要求1所述的用于存儲(chǔ)系統(tǒng)的負(fù)載均衡控制方法,其特征在于:所述步驟 (5) 中,所述輪盤(pán)賭選擇方法包括以下步驟: ① 按以下公式計(jì)算選擇概率:
其中,Pi為個(gè)體i被選中遺傳到下一代群體的概率,F(xiàn)(x,i)為個(gè)體i的適應(yīng)度函數(shù); ② 根據(jù)選擇概率,將圓盤(pán)分成N個(gè)扇形,每個(gè)扇形的中心角為2JIPi,在圓盤(pán)邊緣隨機(jī)選 取個(gè)參考點(diǎn),轉(zhuǎn)動(dòng)圓盤(pán),最終參考點(diǎn)對(duì)應(yīng)的扇形就是被選取的個(gè)體Xi; ③ 累加1^皮選取的次數(shù); ④ 不斷重復(fù)上述步驟②和③N次,可以選擇出N個(gè)個(gè)體。
3. 根據(jù)權(quán)利要求1所述的用于存儲(chǔ)系統(tǒng)的負(fù)載均衡控制方法,其特征在于:所述步驟 (6) 中,所述交叉運(yùn)算包括以下步驟: A、從種群中選擇兩個(gè)交叉?zhèn)€體,分別表示為SJPS2; B、對(duì)于Si的任意一個(gè)物理節(jié)點(diǎn),記作
,即表示物理節(jié)點(diǎn)、磁盤(pán)和虛擬 節(jié)點(diǎn)這三者的一個(gè)向量; (:、把Pi所有映射按照虛擬標(biāo)號(hào)順序依次排列,表示為T(mén)i; D、重新建立物理節(jié)點(diǎn)、磁盤(pán)和虛擬節(jié)點(diǎn)之間的關(guān)系,把的元素按照迭代方式依次對(duì) 應(yīng)到物理節(jié)點(diǎn)所有磁盤(pán)中。
4.根據(jù)權(quán)利要求1所述的用于存儲(chǔ)系統(tǒng)的負(fù)載均衡控制方法,其特征在于:所述步驟 (7)中,所述變異是指依據(jù)變異概率將個(gè)體編碼串中的某些基因值用其它基因值來(lái)替換,從 而形成一個(gè)新的個(gè)體,所述變異處理包括以下步驟: a、 根據(jù)變異概率隨機(jī)的選擇兩個(gè)物理節(jié)點(diǎn); b、 在保證虛擬節(jié)點(diǎn)映射位置不同的情況下,分別從這兩個(gè)物理節(jié)點(diǎn)中選一個(gè)磁盤(pán),將 這兩個(gè)磁盤(pán)對(duì)調(diào)。
【專(zhuān)利摘要】本發(fā)明公開(kāi)了一種用于存儲(chǔ)系統(tǒng)的負(fù)載均衡控制方法,包括以下步驟:(1)采用多叉樹(shù)結(jié)構(gòu)編碼;(2)隨機(jī)生成含有若干個(gè)個(gè)體的初始種群;(3)確定是否滿(mǎn)足迭代結(jié)束條件,如果不滿(mǎn)足,進(jìn)入步驟(4),如果滿(mǎn)足則輸出結(jié)果;(4)計(jì)算每個(gè)個(gè)體的適應(yīng)度;(5)按照輪盤(pán)賭選擇方法選擇下一步的個(gè)體;(6)對(duì)選擇的個(gè)體進(jìn)行交叉運(yùn)算;(7)對(duì)種群的基因位進(jìn)行變異處理;(8)除去種群中適應(yīng)度最小的個(gè)體,確保種群的規(guī)模,產(chǎn)生新的種群,并返回步驟(3)。發(fā)明把樹(shù)形編碼規(guī)則應(yīng)用到物理節(jié)點(diǎn)和虛擬節(jié)點(diǎn)的映射關(guān)系上,重新設(shè)計(jì)遺傳算法中的交叉算子和變異算子,得出一種滿(mǎn)足負(fù)載均衡的映射方案,明顯提高了系統(tǒng)的吞吐量、磁盤(pán)利用率和用戶(hù)訪問(wèn)服務(wù)質(zhì)量。
【IPC分類(lèi)】H04L29-08
【公開(kāi)號(hào)】CN104580518
【申請(qǐng)?zhí)枴緾N201510045039
【發(fā)明人】武德安, 白鋮, 吳磊, 陳鵬, 劉杰
【申請(qǐng)人】成都國(guó)科海博信息技術(shù)股份有限公司, 電子科技大學(xué)
【公開(kāi)日】2015年4月29日
【申請(qǐng)日】2015年1月29日