專(zhuān)利名稱(chēng):一種i/o負(fù)載均衡方法及i/o服務(wù)器的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及數(shù)據(jù)存儲(chǔ)技術(shù)領(lǐng)域,尤其涉及一種I/O負(fù)載均衡方法及I/O服務(wù)器。
技術(shù)背景
隨著數(shù)據(jù)信息量的急速增長(zhǎng),集群文件系統(tǒng)、集群存儲(chǔ)在高性能計(jì)算、互聯(lián)網(wǎng)、視頻領(lǐng)域得到廣泛的應(yīng)用。集群存儲(chǔ)是將數(shù)據(jù)分布到集群中各節(jié)點(diǎn)的存儲(chǔ)方式,可以為非結(jié)構(gòu)化數(shù)據(jù)提供具備極高I/O帶寬和靈活可擴(kuò)展性的存儲(chǔ)解決方案。
在集群存儲(chǔ)中,隨著I/O服務(wù)器數(shù)量的大量增加,會(huì)造成嚴(yán)重的網(wǎng)絡(luò)延時(shí)和負(fù)載不均衡現(xiàn)象,降低集群存儲(chǔ)系統(tǒng)的I/O服務(wù)質(zhì)量,降低存儲(chǔ)資源的利用率。為了充分利用集群存儲(chǔ)現(xiàn)有的資源,進(jìn)一步提高并行I/O訪問(wèn)能力,在I/O服務(wù)器間實(shí)現(xiàn)負(fù)載均衡就顯得尤其重要。
現(xiàn)有技術(shù)中,大多數(shù)集群存儲(chǔ)中負(fù)載多變化且無(wú)規(guī)律,通常采用動(dòng)態(tài)負(fù)載均衡方法,具體的,由一個(gè)集中服務(wù)器實(shí)時(shí)監(jiān)測(cè)并收集每臺(tái)I/O服務(wù)器的負(fù)載數(shù)據(jù),然后根據(jù)收集到的數(shù)據(jù),通過(guò)算法來(lái)決策如何進(jìn)行負(fù)載的遷移,以實(shí)現(xiàn)當(dāng)前時(shí)刻各I/O服務(wù)器間的負(fù)載均衡。但是,當(dāng)存儲(chǔ)系統(tǒng)規(guī)模很大時(shí),服務(wù)器間的通信量會(huì)很大,若整個(gè)系統(tǒng)負(fù)載很高,更會(huì)出現(xiàn)明顯的網(wǎng)絡(luò)通信延時(shí)現(xiàn)象,而網(wǎng)絡(luò)通信延時(shí)會(huì)影響到集中服務(wù)器收集負(fù)載數(shù)據(jù),進(jìn)而會(huì)延遲負(fù)載均衡決策的做出。例如,如果當(dāng)前時(shí)刻有A、B兩個(gè)I/O服務(wù)器負(fù)載高,動(dòng)態(tài)負(fù)載均衡決定遷移A、B的負(fù)載,但由于網(wǎng)絡(luò)通信延時(shí)造成了負(fù)載均衡策略的延遲,待執(zhí)行該負(fù)載均衡策略進(jìn)行負(fù)載遷移時(shí),A、B的負(fù)載可能已經(jīng)降低,在下一次負(fù)載均衡時(shí),可能又要把剛從A、B遷移出去的負(fù)載再遷移回來(lái)。因此,現(xiàn)有技術(shù)中的動(dòng)態(tài)負(fù)載均衡方法在出現(xiàn)網(wǎng)絡(luò)通信延時(shí)時(shí),會(huì)產(chǎn)生I/O服務(wù)器間負(fù)載的頻繁遷移。發(fā)明內(nèi)容
本發(fā)明實(shí)施例提供一種I/O負(fù)載均衡方法及I/O服務(wù)器,能夠在出現(xiàn)網(wǎng)絡(luò)通信延時(shí)時(shí),減少I(mǎi)/O服務(wù)器間負(fù)載的頻繁遷移。
為了解決上述技術(shù)問(wèn)題,本發(fā)明實(shí)施例的技術(shù)方案如下
本發(fā)明實(shí)施例提供了一種I/O負(fù)載均衡方法,所述方法應(yīng)用一 I/O服務(wù)器中,以至少兩臺(tái)所述I/O服務(wù)器構(gòu)成一存儲(chǔ)系統(tǒng),包括
在第一時(shí)刻下根據(jù)一預(yù)測(cè)算法計(jì)算出第二時(shí)刻的第二負(fù)載值;
獲取所述存儲(chǔ)系統(tǒng)在所述第二時(shí)刻下的負(fù)載平均值;
當(dāng)所述第二負(fù)載值大于所述負(fù)載平均值時(shí),將待遷移的數(shù)據(jù)文件遷移至目標(biāo)I/O 服務(wù)器,所述目標(biāo)I/O服務(wù)器在所述第二時(shí)刻下的負(fù)載值小于所述第二負(fù)載值。
進(jìn)一步,還包括
獲得所述第一時(shí)刻下的第一負(fù)載值;
當(dāng)所述第二負(fù)載值大于所述第一負(fù)載值時(shí),再執(zhí)行所述獲取所述存儲(chǔ)系統(tǒng)在所述第二時(shí)刻下的負(fù)載平均值的步驟。
進(jìn)一步,還包括
獲取所述存儲(chǔ)系統(tǒng)在所述第二時(shí)刻下的負(fù)載均衡因子;
當(dāng)所述負(fù)載均衡因子小于負(fù)載均衡因子閾值時(shí),再執(zhí)行所述將待遷移的數(shù)據(jù)文件遷移至目標(biāo)I/O服務(wù)器的步驟。
進(jìn)一步,所述I/O服務(wù)器獲取所在存儲(chǔ)系統(tǒng)在所述第二時(shí)刻下的負(fù)載平均值,包括
向所述存儲(chǔ)系統(tǒng)的其它I/O服務(wù)器發(fā)送收集所述第二時(shí)刻下的負(fù)載值的請(qǐng)求;
接收所述其它I/O服務(wù)器反饋的在所述第二時(shí)刻下的負(fù)載值;
根據(jù)所述其它I/O服務(wù)器在所述第二時(shí)刻下的負(fù)載值及所述第二負(fù)載值計(jì)算所述存儲(chǔ)系統(tǒng)在所述第二時(shí)刻下的負(fù)載平均值。
進(jìn)一步,所述將待遷移的數(shù)據(jù)文件遷移至目標(biāo)I/O服務(wù)器,包括
選擇待遷移的數(shù)據(jù)文件;
向所述目標(biāo)I/O服務(wù)器發(fā)送遷移請(qǐng)求;
接收所述目標(biāo)I/O服務(wù)器返回的遷移響應(yīng);
將所述待遷移的數(shù)據(jù)文件發(fā)送至所述目標(biāo)I/O服務(wù)器,并刪除本地的所述待遷移的數(shù)據(jù)文件。
進(jìn)一步,所述選擇待遷移的數(shù)據(jù)文件,包括
計(jì)算存儲(chǔ)的每一個(gè)數(shù)據(jù)文件的負(fù)載值與數(shù)據(jù)量的比值;
選擇比值最大的預(yù)定數(shù)量的數(shù)據(jù)文件作為待遷移的數(shù)據(jù)文件。
進(jìn)一步,還包括
根據(jù)一預(yù)定策略在所述存儲(chǔ)系統(tǒng)的其他I/O服務(wù)器確定一所述目標(biāo)I/O服務(wù)器;
所述預(yù)定策略為所述目標(biāo)I/O服務(wù)器在所述第二時(shí)刻下的負(fù)載值與所述待遷移的數(shù)據(jù)文件的負(fù)載值之和不大于所述I/O服務(wù)器在所述第二時(shí)刻下的負(fù)載值。
本發(fā)明實(shí)施例還提供了一種I/O服務(wù)器,應(yīng)用于至少兩臺(tái)所述I/O服務(wù)器構(gòu)成的一存儲(chǔ)系統(tǒng)中,包括
負(fù)載預(yù)測(cè)單元,用于在第一時(shí)刻下根據(jù)一預(yù)測(cè)算法計(jì)算出第二時(shí)刻的第二負(fù)載值;
負(fù)載獲取單元,用于獲取所述存儲(chǔ)系統(tǒng)在所述第二時(shí)刻下的負(fù)載平均值;
負(fù)載遷移單元,用于當(dāng)所述第二負(fù)載值大于所述負(fù)載平均值時(shí),將待遷移的數(shù)據(jù)文件遷移至目標(biāo)I/O服務(wù)器,所述目標(biāo)I/O服務(wù)器在所述第二時(shí)刻下的負(fù)載值小于所述第二負(fù)載值。
進(jìn)一步,還包括
負(fù)載計(jì)算單元,用于計(jì)算第一時(shí)刻下的第一負(fù)載值;
所述負(fù)載獲取單元,還用于當(dāng)所述第二負(fù)載值大于所述第一負(fù)載值時(shí),再獲取所述存儲(chǔ)系統(tǒng)在所述第二時(shí)刻下的負(fù)載平均值。
進(jìn)一步,還包括
均衡因子獲取單元,用于獲取所述存儲(chǔ)系統(tǒng)在所述第二時(shí)刻下的負(fù)載均衡因子;
所述負(fù)載遷移單元,還用于當(dāng)所述負(fù)載均衡因子小于負(fù)載均衡因子閾值時(shí),再將待遷移的數(shù)據(jù)文件遷移至目標(biāo)I/O服務(wù)器。5
進(jìn)一步,所述負(fù)載獲取單元包括
負(fù)載請(qǐng)求子單元,用于向所述存儲(chǔ)系統(tǒng)的其它I/O服務(wù)器發(fā)送收集所述第二時(shí)刻下的負(fù)載值的請(qǐng)求;
負(fù)載接收子單元,用于接收所述其它I/O服務(wù)器反饋的在所述第二時(shí)刻下的負(fù)載值;
計(jì)算子單元,用于根據(jù)所述其它I/O服務(wù)器在所述第二時(shí)刻下的負(fù)載值及所述第二負(fù)載值計(jì)算所述存儲(chǔ)系統(tǒng)在所述第二時(shí)刻下的負(fù)載平均值。
進(jìn)一步,所述負(fù)載遷移單元包括
選擇子單元,用于選擇待遷移的數(shù)據(jù)文件;
遷移請(qǐng)求子單元,用于向所述目標(biāo)I/O服務(wù)器發(fā)送遷移請(qǐng)求;
響應(yīng)接收子單元,用于接收所述目標(biāo)I/O服務(wù)器發(fā)送的遷移響應(yīng);
遷移子單元,用于將所述待遷移的數(shù)據(jù)文件發(fā)送至所述目標(biāo)I/O服務(wù)器,并刪除本地的所述待遷移的數(shù)據(jù)文件。
進(jìn)一步,所述選擇子單元包括
比值計(jì)算子單元,用于計(jì)算存儲(chǔ)的每一個(gè)數(shù)據(jù)文件的負(fù)載值與數(shù)據(jù)量的比值;
文件選擇子單元,用于選擇比值最大的預(yù)定數(shù)量的數(shù)據(jù)文件作為待遷移的數(shù)據(jù)文件。
進(jìn)一步,所述負(fù)載遷移單元還包括
確定子單元,用于根據(jù)一預(yù)定策略在所述存儲(chǔ)系統(tǒng)的其他I/O服務(wù)器確定一所述目標(biāo)I/O服務(wù)器;所述預(yù)定策略為所述目標(biāo)I/O服務(wù)器在所述第二時(shí)刻下的負(fù)載值與所述待遷移的數(shù)據(jù)文件的負(fù)載值之和不大于所述I/O服務(wù)器在所述第二時(shí)刻下的負(fù)載值。
本發(fā)明實(shí)施例中I/O服務(wù)器預(yù)測(cè)下一時(shí)刻的負(fù)載值,并獲取系統(tǒng)的負(fù)載平均值, 進(jìn)而進(jìn)行負(fù)載值的比較,當(dāng)比較結(jié)果滿足條件時(shí),再發(fā)起負(fù)載遷移,以滿足下一時(shí)刻系統(tǒng)的負(fù)載均衡。本發(fā)明實(shí)施例方法通過(guò)基于下一時(shí)刻的負(fù)載值確定負(fù)載均衡策略,實(shí)現(xiàn)了對(duì)下一時(shí)刻系統(tǒng)負(fù)載的均衡,所以即使當(dāng)前時(shí)刻存在網(wǎng)絡(luò)通信延時(shí),也不會(huì)對(duì)下一時(shí)刻系統(tǒng)的負(fù)載均衡產(chǎn)生較大影響,從而減少了因?yàn)榫W(wǎng)絡(luò)通信延時(shí)而造成的負(fù)載頻繁遷移。
為了更清楚地說(shuō)明本發(fā)明實(shí)施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對(duì)實(shí)施例或現(xiàn)有技術(shù)描述中所需要使用的附圖作簡(jiǎn)單地介紹,顯而易見(jiàn)地,下面描述中的附圖僅僅是本發(fā)明的一些實(shí)施例,對(duì)于本領(lǐng)域普通技術(shù)人員來(lái)講,在不付出創(chuàng)造性勞動(dòng)性的前提下,還可以根據(jù)這些附圖獲得其他的附圖。
圖1是本發(fā)明實(shí)施例一種I/O負(fù)載均衡方法的流程圖2是本發(fā)明實(shí)施例另一種I/O負(fù)載均衡方法的流程圖3是本發(fā)明實(shí)施例另一種I/O負(fù)載均衡方法中負(fù)載遷移的方法流程圖4是本發(fā)明實(shí)施例一種I/O服務(wù)器的結(jié)構(gòu)示意圖5是本發(fā)明實(shí)施例另一種I/O服務(wù)器的結(jié)構(gòu)示意圖6是本發(fā)明實(shí)施例一種存儲(chǔ)系統(tǒng)的結(jié)構(gòu)示意圖。
具體實(shí)施方式
為了使本領(lǐng)域技術(shù)人員能進(jìn)一步了解本發(fā)明的特征及技術(shù)內(nèi)容,請(qǐng)參閱以下有關(guān)本發(fā)明的詳細(xì)說(shuō)明與附圖,附圖僅提供參考與說(shuō)明,并非用來(lái)限制本發(fā)明。
現(xiàn)有技術(shù)中的動(dòng)態(tài)負(fù)載均衡方法由于需要根據(jù)當(dāng)前時(shí)刻收集的I/O服務(wù)器的負(fù)載數(shù)據(jù),對(duì)當(dāng)前時(shí)刻各I/O服務(wù)器間的負(fù)載進(jìn)行均衡,所以,一旦網(wǎng)絡(luò)通信延遲就會(huì)導(dǎo)致獲得負(fù)載數(shù)據(jù)的延后,進(jìn)而會(huì)延遲負(fù)載均衡策略的做出,由于負(fù)載的動(dòng)態(tài)變化,該負(fù)載均衡策略可能已經(jīng)不適用于延時(shí)后各I/O服務(wù)器的負(fù)載情況,再執(zhí)行該負(fù)載均衡策略則很可能會(huì)造成不準(zhǔn)確的負(fù)載遷移,甚至?xí)又叵到y(tǒng)的負(fù)載不均衡,進(jìn)而會(huì)產(chǎn)生負(fù)載的頻繁遷移。
基于此,本發(fā)明實(shí)施例提出了一種I/O負(fù)載均衡方法及I/O服務(wù)器,I/O服務(wù)器預(yù)測(cè)下一時(shí)刻的負(fù)載值,并獲取系統(tǒng)的負(fù)載平均值,進(jìn)而進(jìn)行各負(fù)載值的比較,當(dāng)比較結(jié)果滿足條件時(shí),再發(fā)起負(fù)載遷移,以滿足下一時(shí)刻系統(tǒng)的負(fù)載均衡。本發(fā)明實(shí)施例方法通過(guò)基于下一時(shí)刻的負(fù)載值確定負(fù)載均衡策略,實(shí)現(xiàn)了對(duì)下一時(shí)刻系統(tǒng)負(fù)載的均衡,所以即使當(dāng)前時(shí)刻存在網(wǎng)絡(luò)通信延時(shí),也不會(huì)對(duì)下一時(shí)刻系統(tǒng)的負(fù)載均衡產(chǎn)生較大影響,從而減少了因?yàn)榫W(wǎng)絡(luò)通信延時(shí)而造成的負(fù)載頻繁遷移。
下面結(jié)合附圖和實(shí)施例,對(duì)本發(fā)明的技術(shù)方案進(jìn)行描述。
參見(jiàn)圖1,為本發(fā)明實(shí)施例一種I/O負(fù)載均衡方法的流程圖。
該方法應(yīng)用于一 I/O服務(wù)器中,且至少兩臺(tái)I/O服務(wù)器構(gòu)成一存儲(chǔ)系統(tǒng),該方法可以包括
步驟101,I/O服務(wù)器在第一時(shí)刻下根據(jù)預(yù)測(cè)算法計(jì)算第二時(shí)刻下的第二負(fù)載值。
在本實(shí)施例中,I/O服務(wù)器根據(jù)基于一定的預(yù)測(cè)模型獲得的預(yù)測(cè)算法對(duì)自己在下一時(shí)刻(第二時(shí)刻)可能的負(fù)載值進(jìn)行預(yù)測(cè),也即該第二負(fù)載值為該I/O服務(wù)器的預(yù)測(cè)負(fù)載值,并非在第二時(shí)刻下的真實(shí)值。其中,第一時(shí)刻與第二時(shí)刻僅為區(qū)分前后的兩個(gè)時(shí)間點(diǎn),并非特指具體某一時(shí)間點(diǎn)。兩時(shí)刻之間的時(shí)間間隔可以根據(jù)需要進(jìn)行設(shè)定,例如若系統(tǒng)負(fù)載情況變化較快,則設(shè)定時(shí)間間隔較短,若負(fù)載情況變化較慢,則可設(shè)定時(shí)間間隔較長(zhǎng)等。預(yù)測(cè)算法可以是依據(jù)現(xiàn)有的模型和算法,例如線性預(yù)測(cè)自相關(guān)(Levinson-Durbin)算法、赤池信息準(zhǔn)則、自回歸AR預(yù)測(cè)模型等,此處不再贅述。負(fù)載值可以是指I/O服務(wù)器的IO 吞吐量等,具體可以根據(jù)要實(shí)現(xiàn)負(fù)載均衡的參數(shù)進(jìn)行設(shè)定。
I/O服務(wù)器在執(zhí)行本步驟時(shí)可以是實(shí)時(shí)的,也可以是周期喚醒的也即周期性執(zhí)行本步驟,該周期也可以根據(jù)需要設(shè)定,此處不再贅述。
步驟102,獲取存儲(chǔ)系統(tǒng)在第二時(shí)刻下的負(fù)載平均值。
I/O服務(wù)器在第一時(shí)刻下獲取第二時(shí)刻下的負(fù)載值后,進(jìn)一步獲取第二時(shí)刻下該 I/O服務(wù)器所在存儲(chǔ)系統(tǒng)的負(fù)載平均值,具體的獲取方法可以是該I/O服務(wù)器向其它I/O服務(wù)器請(qǐng)求第二時(shí)刻下的負(fù)載值后計(jì)算獲得,也可以是由其它I/O服務(wù)器直接發(fā)送的,具體請(qǐng)參見(jiàn)后續(xù)實(shí)施例的描述。該第二時(shí)刻下的負(fù)載平均值也為預(yù)測(cè)值。
步驟103,當(dāng)?shù)诙?fù)載值大于負(fù)載平均值時(shí),將待遷移的數(shù)據(jù)文件遷移至目標(biāo)I/O 服務(wù)器。
當(dāng)I/O服務(wù)器的第二負(fù)載值大于存儲(chǔ)系統(tǒng)的負(fù)載平均值時(shí),說(shuō)明該I/O服務(wù)器在第二時(shí)刻的負(fù)載情況相對(duì)于存儲(chǔ)系統(tǒng)內(nèi)的其它I/O服務(wù)器來(lái)說(shuō),將處于高負(fù)載狀態(tài),要在第二時(shí)刻達(dá)到存儲(chǔ)系統(tǒng)的負(fù)載均衡,需要將該I/O服務(wù)器內(nèi)的部分?jǐn)?shù)據(jù)文件遷移至負(fù)載相7對(duì)較低的I/O服務(wù)器中。此時(shí),該I/O服務(wù)器將本地待遷移的數(shù)據(jù)文件遷移至目標(biāo)I/O服務(wù)器中,該目標(biāo)I/O服務(wù)器在第二時(shí)刻下的負(fù)載值要小于第二負(fù)載值。
當(dāng)然在本步驟中,還可以增加其它的限定條件,以在實(shí)現(xiàn)第二時(shí)刻存儲(chǔ)系統(tǒng)負(fù)載均衡的前提下,盡量減少負(fù)載遷移。具體請(qǐng)參見(jiàn)后續(xù)實(shí)施例。
本實(shí)施例中,存儲(chǔ)系統(tǒng)中的每臺(tái)I/O服務(wù)器都運(yùn)行上述均衡方法,這種獨(dú)立分布式的結(jié)構(gòu)可以避免傳統(tǒng)集中式管理方法的瓶頸和單點(diǎn)故障的問(wèn)題;該負(fù)載均衡算法可以減少I(mǎi)/O服務(wù)器間的交互依賴(lài),盡可能讓工作量在本服務(wù)器上,只有滿足一定條件的服務(wù)器才需要進(jìn)一步收集必要的信息。本發(fā)明實(shí)施例通過(guò)基于下一時(shí)刻的負(fù)載值確定負(fù)載均衡策略,實(shí)現(xiàn)了對(duì)下一時(shí)刻系統(tǒng)負(fù)載的均衡,所以即使當(dāng)前時(shí)刻存在網(wǎng)絡(luò)通信延時(shí),也不會(huì)對(duì)下一時(shí)刻系統(tǒng)的負(fù)載均衡產(chǎn)生較大影響,從而減少了因?yàn)榫W(wǎng)絡(luò)通信延時(shí)而造成的負(fù)載頻繁遷移。
參見(jiàn)圖2,為本發(fā)明實(shí)施例另一種I/O負(fù)載均衡方法的流程圖。
該方法可以包括
步驟201,I/O服務(wù)器計(jì)算第一時(shí)刻下的第一負(fù)載值a。
I/O服務(wù)器可以采用現(xiàn)有技術(shù)的計(jì)算方法,計(jì)算第一時(shí)刻下的負(fù)載值a,該第一時(shí)刻也即當(dāng)前時(shí)刻。
步驟202,I/O服務(wù)器在第一時(shí)刻下根據(jù)預(yù)測(cè)算法計(jì)算第二時(shí)刻下的第二負(fù)載值 b。
然后根據(jù)預(yù)測(cè)算法預(yù)測(cè)第二時(shí)刻下的負(fù)載值b。本步驟與前述實(shí)施例中的步驟 101類(lèi)似,此處不再贅述。
步驟203,當(dāng)b大于a時(shí),獲取I/O服務(wù)器所在存儲(chǔ)系統(tǒng)在第二時(shí)刻下的負(fù)載平均值Co
當(dāng)I/O服務(wù)器在第二時(shí)刻下的負(fù)載值b大于第一時(shí)刻下的負(fù)載值a時(shí),說(shuō)明該I/O 服務(wù)器的負(fù)載將增加,然后再獲取該I/O服務(wù)器所在存儲(chǔ)系統(tǒng)的第二時(shí)刻下的負(fù)載平均值 c,以確定是否需要進(jìn)行負(fù)載遷移以實(shí)現(xiàn)存儲(chǔ)系統(tǒng)的負(fù)載均衡。
如果b小于等于C,說(shuō)明存儲(chǔ)系統(tǒng)內(nèi)其它I/O服務(wù)器也存在負(fù)載升高的情況,且比本I/O服務(wù)器負(fù)載升高更多,本I/O服務(wù)器的負(fù)載情況仍處于平均水平或平均水平以下,則本I/O服務(wù)器無(wú)需進(jìn)行負(fù)載遷移。如果b大于C,說(shuō)明本I/O服務(wù)器負(fù)載升高較為嚴(yán)重,轉(zhuǎn)入下一步驟進(jìn)一步判斷是否需要進(jìn)行負(fù)載遷移。
其中,存儲(chǔ)系統(tǒng)的第二時(shí)刻下的負(fù)載平均值c可以通過(guò)以下步驟獲得
該I/O服務(wù)器向所在存儲(chǔ)系統(tǒng)的其它I/O服務(wù)器發(fā)送收集第二時(shí)刻下的負(fù)載值的請(qǐng)求;
該I/O服務(wù)器接收其它I/O服務(wù)器發(fā)送的在第二時(shí)刻下的負(fù)載值;
該I/O服務(wù)器根據(jù)其它I/O服務(wù)器在第二時(shí)刻下的負(fù)載值及本I/O服務(wù)器的第二負(fù)載值,計(jì)算存儲(chǔ)系統(tǒng)在第二時(shí)刻下的負(fù)載平均值。
在其它實(shí)施例中,也可以是該I/O服務(wù)器將自己在第二時(shí)刻下的負(fù)載值發(fā)送至其它某一 I/O服務(wù)器,由其它I/O服務(wù)器計(jì)算獲得平均值后,發(fā)送至該I/O服務(wù)器。
步驟204,I/O服務(wù)器獲取存儲(chǔ)系統(tǒng)在第二時(shí)刻下的負(fù)載均衡因子。
在本實(shí)施例中,I/O服務(wù)器還可以進(jìn)一步獲取存儲(chǔ)系統(tǒng)在第二時(shí)刻下的負(fù)載均衡因子,該負(fù)載均衡因子能夠體現(xiàn)存儲(chǔ)系統(tǒng)在某個(gè)時(shí)刻整個(gè)系統(tǒng)負(fù)載均衡的程度。若該負(fù)載均衡因子小于預(yù)設(shè)的負(fù)載均衡因子閾值,則說(shuō)明存儲(chǔ)系統(tǒng)的負(fù)載已經(jīng)失衡,需要進(jìn)行負(fù)載遷移以實(shí)現(xiàn)負(fù)載均衡。
其中,該負(fù)載均衡因子閾值為衡量該存儲(chǔ)系統(tǒng)負(fù)載均衡的下限,小于該下限說(shuō)明負(fù)載失衡,具體數(shù)值可以根據(jù)需要進(jìn)行設(shè)定,此處不作限定。
I/O服務(wù)器獲取存儲(chǔ)系統(tǒng)負(fù)載均衡因子的方法可以是基于存儲(chǔ)系統(tǒng)的負(fù)載平均值 c計(jì)算獲得的,具體的可以是存儲(chǔ)系統(tǒng)的負(fù)載平均值占存儲(chǔ)系統(tǒng)最大負(fù)載值的百分比,該最大負(fù)載值是根據(jù)存儲(chǔ)系統(tǒng)的存儲(chǔ)性能設(shè)定的。該負(fù)載均衡因子越大,說(shuō)明存儲(chǔ)系統(tǒng)的負(fù)載越均衡。負(fù)載均衡的計(jì)算方法要求簡(jiǎn)單有效,盡可能不要增加高負(fù)載下I/O服務(wù)器的額外負(fù)載。加入負(fù)載均衡因子后作為遷移的參考條件后,能夠提高負(fù)載遷移決策的有效度,避免一些無(wú)效負(fù)載遷移的動(dòng)作。
步驟205,當(dāng)b大于c,且存儲(chǔ)系統(tǒng)的負(fù)載均衡因子小于負(fù)載均衡因子閾值時(shí),I/O 服務(wù)器將待遷移的數(shù)據(jù)文件遷移至目標(biāo)I/O服務(wù)器。
當(dāng)該I/O服務(wù)器第二時(shí)刻的負(fù)載值大于存儲(chǔ)系統(tǒng)的負(fù)載平均值,且存儲(chǔ)系統(tǒng)的負(fù)載均衡因子小于負(fù)載均衡因子閾值,則說(shuō)明該I/O服務(wù)器需要進(jìn)行負(fù)載遷移,以降低自身的負(fù)載值,以均衡存儲(chǔ)系統(tǒng)的負(fù)載。顯然,該I/O服務(wù)器進(jìn)行負(fù)載遷移的目標(biāo)I/O服務(wù)器的負(fù)載值至少需要小于該I/O服務(wù)器的負(fù)載值。
其中,具體的負(fù)載遷移過(guò)程可以如圖3所示,包括
步驟301,I/O服務(wù)器選擇待遷移的數(shù)據(jù)文件。
在本實(shí)施例中,I/O服務(wù)器決定進(jìn)行負(fù)載遷移后,需要選擇待遷移的數(shù)據(jù)文件,該選擇過(guò)程可以是首先,計(jì)算存儲(chǔ)的每一個(gè)數(shù)據(jù)文件的負(fù)載值與數(shù)據(jù)量的比值。然后,選擇比值最大的一定數(shù)量的數(shù)據(jù)文件作為待遷移的數(shù)據(jù)文件。
其中,數(shù)據(jù)文件負(fù)載值與數(shù)據(jù)量比值越大,說(shuō)明該數(shù)據(jù)文件在該I/O服務(wù)器中占的負(fù)載值越大,可以?xún)?yōu)先選擇遷移該數(shù)據(jù)文件,則可以實(shí)現(xiàn)遷移少量該類(lèi)數(shù)據(jù)文件即可快速降低本I/O服務(wù)器的負(fù)載值。選擇比值最大的一定數(shù)量的數(shù)據(jù)文件作為待遷移數(shù)據(jù)文件,其中,該一定數(shù)量可以是預(yù)先約定的,在本實(shí)施例中,可以選擇比值最大的前十個(gè)數(shù)據(jù)文件作為待遷移的數(shù)據(jù)文件。
步驟302,I/O服務(wù)器根據(jù)一預(yù)定策略在存儲(chǔ)系統(tǒng)的其他I/O服務(wù)器確定一目標(biāo)I/ 0服務(wù)器。
在本實(shí)施例中,該預(yù)定策略可以是
目標(biāo)I/O服務(wù)器在第二時(shí)刻下的負(fù)載值與待遷移的數(shù)據(jù)文件的負(fù)載值之和不大于該I/O服務(wù)器在第二時(shí)刻下的負(fù)載值;或者,目標(biāo)I/O服務(wù)器在第二時(shí)刻下的負(fù)載值與待遷移的數(shù)據(jù)文件的負(fù)載值之和不大于該I/O服務(wù)器在第二時(shí)刻下的負(fù)載值與待遷移的數(shù)據(jù)文件的負(fù)載值之差。當(dāng)然,在其它實(shí)施例中,還可以根據(jù)存儲(chǔ)系統(tǒng)的負(fù)載情況設(shè)定其它選擇目標(biāo)I/O服務(wù)器的條件,此處不再一一列舉。
采用這樣的策略是為了判斷當(dāng)某個(gè)負(fù)載從高負(fù)載的I/O服務(wù)器遷移到低負(fù)載目標(biāo)I/O服務(wù)器時(shí),目標(biāo)I/O服務(wù)器的負(fù)載不能高于I/O服務(wù)器第二時(shí)刻的負(fù)載值,這樣才能消除高負(fù)載I/O服務(wù)器,有效均衡整個(gè)存儲(chǔ)系統(tǒng)的負(fù)載分布情況。
本步驟與前一步驟可以同時(shí)進(jìn)行或調(diào)整順序。
步驟303,I/O服務(wù)器向目標(biāo)I/O服務(wù)器發(fā)送遷移請(qǐng)求。
在該I/O服務(wù)器選定待遷移的數(shù)據(jù)文件和目標(biāo)I/O服務(wù)器之后,即獲取待遷移的數(shù)據(jù)文件的屬性,并向目標(biāo)I/O服務(wù)器發(fā)送遷移請(qǐng)求,該請(qǐng)求中可以包括該待遷移數(shù)據(jù)文件的屬性。
目標(biāo)I/O服務(wù)器接收到遷移請(qǐng)求后,可以根據(jù)該請(qǐng)求中包含的待遷移數(shù)據(jù)文件的屬性,在本地建立新的文件屬性,然后向I/O服務(wù)器發(fā)送遷移響應(yīng)。
步驟304,I/O服務(wù)器接收目標(biāo)I/O服務(wù)器反饋的遷移響應(yīng)。
步驟305,I/O服務(wù)器將待遷移的數(shù)據(jù)文件發(fā)送至目標(biāo)I/O服務(wù)器,并刪除本地的待遷移的數(shù)據(jù)文件。
I/O服務(wù)器接收到遷移響應(yīng)后,即可將待遷移數(shù)據(jù)文件發(fā)送至目標(biāo)I/O服務(wù)器,然后將本地的該數(shù)據(jù)文件刪除。遷移完成后,I/O服務(wù)器還可以進(jìn)一步通知元數(shù)據(jù)服務(wù)器以更新該數(shù)據(jù)文件的分布信息。
本發(fā)明實(shí)施例方法實(shí)現(xiàn)了對(duì)下一時(shí)刻系統(tǒng)負(fù)載的均衡,而且加入負(fù)載均衡因子后,能夠提高負(fù)載遷移決策的有效度,避免一些無(wú)效負(fù)載遷移的動(dòng)作。所以即使當(dāng)前時(shí)刻存在網(wǎng)絡(luò)通信延時(shí),也不會(huì)對(duì)下一時(shí)刻系統(tǒng)的負(fù)載均衡產(chǎn)生較大影響,從而減少了因?yàn)榫W(wǎng)絡(luò)通信延時(shí)而造成的負(fù)載頻繁遷移;另一方面,通過(guò)比較各負(fù)載值對(duì)是否進(jìn)行負(fù)載均衡的情況進(jìn)行篩選,更減少了負(fù)載的頻繁遷移。
參見(jiàn)圖4,為本發(fā)明實(shí)施例一種I/O服務(wù)器的結(jié)構(gòu)示意圖。
本實(shí)施例中,該I/O服務(wù)器應(yīng)用于至少由兩臺(tái)I/O服務(wù)器構(gòu)成的存儲(chǔ)系統(tǒng)中,該I/ 0服務(wù)器可以包括
負(fù)載預(yù)測(cè)單元401,用于在第一時(shí)刻下根據(jù)一預(yù)測(cè)算法計(jì)算出第二時(shí)刻的第二負(fù)載值。
負(fù)載獲取單元402,用于獲取存儲(chǔ)系統(tǒng)在第二時(shí)刻下的負(fù)載平均值。
負(fù)載遷移單元403,用于當(dāng)?shù)诙?fù)載值大于負(fù)載平均值時(shí),將待遷移的數(shù)據(jù)文件遷移至目標(biāo)I/O服務(wù)器,目標(biāo)I/O服務(wù)器在第二時(shí)刻下的負(fù)載值小于第二負(fù)載值。
負(fù)載預(yù)測(cè)單元401基于一定的預(yù)測(cè)算法對(duì)自己在下一時(shí)刻可能的負(fù)載值進(jìn)行預(yù)測(cè)。預(yù)測(cè)算法可以是依據(jù)現(xiàn)有的模型和/或算法,例如線性預(yù)測(cè)自相關(guān)(Levinson-Durbin) 算法、赤池信息準(zhǔn)則、自回歸AR預(yù)測(cè)模型等,此處不再贅述。負(fù)載獲取單元402進(jìn)一步獲取第二時(shí)刻下該I/O服務(wù)器所在存儲(chǔ)系統(tǒng)的負(fù)載平均值,具體的獲取方法可以是該I/O服務(wù)器向其它I/O服務(wù)器請(qǐng)求第二時(shí)刻下的負(fù)載值后計(jì)算獲得,也可以是由其它I/O服務(wù)器直接發(fā)送的。當(dāng)I/O服務(wù)器的第二負(fù)載值大于存儲(chǔ)系統(tǒng)的負(fù)載平均值時(shí),說(shuō)明該I/O服務(wù)器在第二時(shí)刻的負(fù)載情況相對(duì)于存儲(chǔ)系統(tǒng)內(nèi)的其它I/O服務(wù)器來(lái)說(shuō),處于高負(fù)載狀態(tài),要在第二時(shí)刻達(dá)到存儲(chǔ)系統(tǒng)的負(fù)載均衡,需要將該I/O服務(wù)器內(nèi)的部分?jǐn)?shù)據(jù)文件遷移至負(fù)載相對(duì)較低的I/O服務(wù)器中。此時(shí),負(fù)載遷移單元403將本地待遷移的數(shù)據(jù)文件遷移至目標(biāo)I/ 0服務(wù)器中,實(shí)現(xiàn)存儲(chǔ)系統(tǒng)負(fù)載的均衡。
本發(fā)明實(shí)施例通過(guò)上述單元實(shí)現(xiàn)了對(duì)下一時(shí)刻系統(tǒng)負(fù)載的均衡,所以即使當(dāng)前時(shí)刻存在網(wǎng)絡(luò)通信延時(shí),也不會(huì)對(duì)下一時(shí)刻系統(tǒng)的負(fù)載均衡產(chǎn)生較大影響,從而減少了因?yàn)榫W(wǎng)絡(luò)通信延時(shí)而造成的負(fù)載頻繁遷移。
參見(jiàn)圖5,為本發(fā)明實(shí)施例另一種I/O服務(wù)器的結(jié)構(gòu)示意圖。
該I/O服務(wù)器除了可以包括負(fù)載預(yù)測(cè)單元501、負(fù)載獲取單元502、負(fù)載遷移單元 503之外,還可以包括負(fù)載計(jì)算單元504和均衡因子獲取單元505。
其中,負(fù)載預(yù)測(cè)單元501與前述實(shí)施例中的負(fù)載預(yù)測(cè)單元401類(lèi)似,此處不再贅述。
負(fù)載計(jì)算單元504,用于計(jì)算第一時(shí)刻下的第一負(fù)載值。
負(fù)載獲取單元502,還可以用于當(dāng)?shù)诙?fù)載值大于第一負(fù)載值時(shí),再獲取存儲(chǔ)系統(tǒng)在第二時(shí)刻下的負(fù)載平均值。
均衡因子獲取單元505,用于獲取存儲(chǔ)系統(tǒng)在第二時(shí)刻下的負(fù)載均衡因子。
負(fù)載遷移單元503,還可以用于當(dāng)負(fù)載均衡因子小于負(fù)載均衡因子閾值時(shí),再將待遷移的數(shù)據(jù)文件遷移至目標(biāo)I/O服務(wù)器。
具體的,負(fù)載獲取單元502又可以包括
負(fù)載請(qǐng)求子單元5021,用于向存儲(chǔ)系統(tǒng)的其它I/O服務(wù)器發(fā)送收集第二時(shí)刻下的負(fù)載值的請(qǐng)求。
負(fù)載接收子單元5022,用于接收其它I/O服務(wù)器反饋的在所述第二時(shí)刻下的負(fù)載值。
計(jì)算子單元5023,用于根據(jù)其它I/O服務(wù)器在第二時(shí)刻下的負(fù)載值及第二負(fù)載值計(jì)算存儲(chǔ)系統(tǒng)在第二時(shí)刻下的負(fù)載平均值。
負(fù)載遷移單元503又可以包括
選擇子單元5031,用于選擇待遷移的數(shù)據(jù)文件。選擇子單元5031還可以包括比值計(jì)算子單元和文件選擇子單元。其中,比值計(jì)算子單元用于計(jì)算存儲(chǔ)的每一個(gè)數(shù)據(jù)文件的負(fù)載值與數(shù)據(jù)量的比值;文件選擇子單元用于選擇比值最大的預(yù)定數(shù)量的數(shù)據(jù)文件作為待遷移的數(shù)據(jù)文件。
確定子單元5032,用于根據(jù)一預(yù)定策略在存儲(chǔ)系統(tǒng)的其他I/O服務(wù)器確定一目標(biāo) I/O服務(wù)器;預(yù)定策略可以為目標(biāo)I/O服務(wù)器在第二時(shí)刻下的負(fù)載值與待遷移的數(shù)據(jù)文件的負(fù)載值之和不大于I/O服務(wù)器在第二時(shí)刻下的負(fù)載值。
遷移請(qǐng)求子單元5033,用于向目標(biāo)I/O服務(wù)器發(fā)送遷移請(qǐng)求。
響應(yīng)接收子單元5034,用于接收目標(biāo)I/O服務(wù)器發(fā)送的遷移響應(yīng)。
遷移子單元5035,用于將待遷移的數(shù)據(jù)文件發(fā)送至目標(biāo)I/O服務(wù)器,并刪除本地的待遷移的數(shù)據(jù)文件。
負(fù)載預(yù)測(cè)單元501預(yù)測(cè)獲得I/O服務(wù)器在第二時(shí)刻下的第二負(fù)載值,負(fù)載計(jì)算單元504計(jì)算獲得I/O服務(wù)器在第一時(shí)刻下的第一負(fù)載值之后,通過(guò)比較,若第二負(fù)載值大于第一負(fù)載值,則負(fù)載獲取單元502通過(guò)負(fù)載請(qǐng)求子單元5021、負(fù)載接收子單元5022和計(jì)算子單元5023,獲得該I/O服務(wù)器所在的存儲(chǔ)系統(tǒng)在第二時(shí)刻下的負(fù)載平均值,均衡因子獲取單元505獲取存儲(chǔ)系統(tǒng)在第二時(shí)刻下的負(fù)載均衡因子。當(dāng)該I/O服務(wù)器的第二負(fù)載值大于負(fù)載平均值,且存儲(chǔ)系統(tǒng)的負(fù)載均衡因子小于預(yù)設(shè)的閾值時(shí),負(fù)載遷移單元503通過(guò)選擇子單元5031、確定子單元5032、遷移請(qǐng)求子單元5033、響應(yīng)接收子單元5034和遷移子單元5035將待遷移數(shù)據(jù)文件遷移至目標(biāo)I/O服務(wù)器。該目標(biāo)I/O服務(wù)器在第二時(shí)刻下的負(fù)載值與待遷移的數(shù)據(jù)文件的負(fù)載值之和不大于I/O該服務(wù)器在第二時(shí)刻下的負(fù)載值。
本發(fā)明實(shí)施例通過(guò)上述單元基于下一時(shí)刻的負(fù)載值確定負(fù)載均衡策略,實(shí)現(xiàn)了對(duì)下一時(shí)刻系統(tǒng)負(fù)載的均衡,所以即使當(dāng)前時(shí)刻存在網(wǎng)絡(luò)通信延時(shí),也不會(huì)對(duì)下一時(shí)刻系統(tǒng)的負(fù)載均衡產(chǎn)生較大影響,從而減少了因?yàn)榫W(wǎng)絡(luò)通信延時(shí)而造成的負(fù)載頻繁遷移;另一方面,通過(guò)多個(gè)單元比較各負(fù)載值對(duì)是否進(jìn)行負(fù)載均衡的情況進(jìn)行篩選,更減少了負(fù)載的頻繁遷移。
參見(jiàn)圖6,為本發(fā)明實(shí)施例一種存儲(chǔ)系統(tǒng)的結(jié)構(gòu)示意圖。
該存儲(chǔ)系統(tǒng)中包括至少兩臺(tái)I/O服務(wù)器,本實(shí)施例以三臺(tái)I/O服務(wù)器601、602、603 為例。
每臺(tái)I/O服務(wù)器均用于在第一時(shí)刻下根據(jù)一預(yù)測(cè)算法計(jì)算出第二時(shí)刻的第二負(fù)載值;獲取存儲(chǔ)系統(tǒng)在第二時(shí)刻下的負(fù)載平均值;當(dāng)?shù)诙?fù)載值大于負(fù)載平均值時(shí),將待遷移的數(shù)據(jù)文件遷移至目標(biāo)I/O服務(wù)器,目標(biāo)I/O服務(wù)器在第二時(shí)刻下的負(fù)載值小于第二負(fù)載值。
每臺(tái)I/O服務(wù)器還可以首先獲得第一時(shí)刻下的第一負(fù)載值,當(dāng)?shù)诙?fù)載值大于第一負(fù)載值時(shí),再獲取存儲(chǔ)系統(tǒng)在第二時(shí)刻下的負(fù)載平均值的步驟。每臺(tái)I/O服務(wù)器也還可以首先獲取存儲(chǔ)系統(tǒng)在第二時(shí)刻下的負(fù)載均衡因子,當(dāng)負(fù)載均衡因子小于負(fù)載均衡因子閾值時(shí),再將待遷移的數(shù)據(jù)文件遷移至目標(biāo)I/O服務(wù)器的步驟。
在本實(shí)施例中,I/O服務(wù)器601、602、603分別計(jì)算自己當(dāng)前時(shí)刻(也即第一時(shí)刻) 下的負(fù)載值,并根據(jù)預(yù)測(cè)算法計(jì)算第二時(shí)刻下的負(fù)載值,然后分別請(qǐng)求其它I/O服務(wù)器第二時(shí)刻的負(fù)載值,計(jì)算獲得存儲(chǔ)系統(tǒng)的負(fù)載平均值,并計(jì)算獲得第二時(shí)刻下存儲(chǔ)系統(tǒng)的負(fù)載均衡因子。假設(shè)I/O服務(wù)器601第二時(shí)刻下的負(fù)載值大于第一時(shí)刻下的負(fù)載值,且大于負(fù)載平均值,而且第二時(shí)刻下存儲(chǔ)系統(tǒng)的負(fù)載均衡因子小于負(fù)載均衡因子閾值,則I/O服務(wù)器601在本地的數(shù)據(jù)文件中選擇負(fù)載值與數(shù)據(jù)量的比值最大的數(shù)據(jù)文件作為待遷移的數(shù)據(jù)文件,在I/O服務(wù)器602、603中選擇第二時(shí)刻下的負(fù)載值與待遷移的數(shù)據(jù)文件的負(fù)載值之和不大于I/O服務(wù)器601在第二時(shí)刻下的負(fù)載值的一個(gè),作為目標(biāo)I/O服務(wù)器,例如為 I/O服務(wù)器602。I/O服務(wù)器601向I/O服務(wù)器602發(fā)送遷移請(qǐng)求,待接收到I/O服務(wù)器602 返回的遷移響應(yīng)后,將待遷移的數(shù)據(jù)文件發(fā)送至I/O服務(wù)器602,并刪除本地待遷移的數(shù)據(jù)文件,完成數(shù)據(jù)文件從高負(fù)載的I/O服務(wù)器601向低負(fù)載的I/O服務(wù)器602的遷移,從而實(shí)現(xiàn)存儲(chǔ)系統(tǒng)內(nèi)的負(fù)載均衡。
本實(shí)施例中,存儲(chǔ)系統(tǒng)通過(guò)在每臺(tái)I/O服務(wù)器上都運(yùn)行上述均衡方法,這種獨(dú)立分布式的結(jié)構(gòu)可以避免傳統(tǒng)集中式管理方法的瓶頸和單點(diǎn)故障的問(wèn)題;該負(fù)載均衡算法可以減少I(mǎi)/O服務(wù)器間的交互信賴(lài),盡可能讓工作量在本服務(wù)器上,只有滿足一定條件的服務(wù)器才需要進(jìn)一步收集必要的信息。本發(fā)明實(shí)施例通過(guò)每臺(tái)I/O服務(wù)器基于下一時(shí)刻的負(fù)載值確定負(fù)載均衡策略,實(shí)現(xiàn)了對(duì)下一時(shí)刻系統(tǒng)負(fù)載的均衡,所以即使當(dāng)前時(shí)刻存在網(wǎng)絡(luò)通信延時(shí),也不會(huì)對(duì)下一時(shí)刻系統(tǒng)的負(fù)載均衡產(chǎn)生較大影響,從而減少了因?yàn)榫W(wǎng)絡(luò)通信延時(shí)而造成的負(fù)載頻繁遷移。
以上裝置中各單元、子單元及系統(tǒng)的具體實(shí)現(xiàn)過(guò)程請(qǐng)參照前述方法實(shí)施例中的相應(yīng)描述,此處不再贅述。
以上所述的本發(fā)明實(shí)施方式,并不構(gòu)成對(duì)本發(fā)明保護(hù)范圍的限定。任何在本發(fā)明的精神和原則之內(nèi)所作的修改、等同替換和改進(jìn)等,均應(yīng)包含在本發(fā)明的權(quán)利要求保護(hù)范圍之內(nèi)。
權(quán)利要求
1.一種I/O負(fù)載均衡方法,所述方法應(yīng)用一 I/O服務(wù)器中,以至少兩臺(tái)所述I/O服務(wù)器構(gòu)成一存儲(chǔ)系統(tǒng),其特征在于,包括在第一時(shí)刻下根據(jù)一預(yù)測(cè)算法計(jì)算出第二時(shí)刻的第二負(fù)載值; 獲取所述存儲(chǔ)系統(tǒng)在所述第二時(shí)刻下的負(fù)載平均值;當(dāng)所述第二負(fù)載值大于所述負(fù)載平均值時(shí),將待遷移的數(shù)據(jù)文件遷移至目標(biāo)I/O服務(wù)器,所述目標(biāo)I/O服務(wù)器在所述第二時(shí)刻下的負(fù)載值小于所述第二負(fù)載值。
2.根據(jù)權(quán)利要求1所述的方法,其特征在于,還包括 獲得所述第一時(shí)刻下的第一負(fù)載值;當(dāng)所述第二負(fù)載值大于所述第一負(fù)載值時(shí),再執(zhí)行所述獲取所述存儲(chǔ)系統(tǒng)在所述第二時(shí)刻下的負(fù)載平均值的步驟。
3.根據(jù)權(quán)利要求1所述的方法,其特征在于,還包括 獲取所述存儲(chǔ)系統(tǒng)在所述第二時(shí)刻下的負(fù)載均衡因子;當(dāng)所述負(fù)載均衡因子小于負(fù)載均衡因子閾值時(shí),再執(zhí)行所述將待遷移的數(shù)據(jù)文件遷移至目標(biāo)I/O服務(wù)器的步驟。
4.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述I/O服務(wù)器獲取所在存儲(chǔ)系統(tǒng)在所述第二時(shí)刻下的負(fù)載平均值,包括向所述存儲(chǔ)系統(tǒng)的其它I/O服務(wù)器發(fā)送收集所述第二時(shí)刻下的負(fù)載值的請(qǐng)求; 接收所述其它I/O服務(wù)器反饋的在所述第二時(shí)刻下的負(fù)載值; 根據(jù)所述其它I/O服務(wù)器在所述第二時(shí)刻下的負(fù)載值及所述第二負(fù)載值計(jì)算所述存儲(chǔ)系統(tǒng)在所述第二時(shí)刻下的負(fù)載平均值。
5.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述將待遷移的數(shù)據(jù)文件遷移至目標(biāo)I/O 服務(wù)器,包括選擇待遷移的數(shù)據(jù)文件;向所述目標(biāo)I/O服務(wù)器發(fā)送遷移請(qǐng)求;接收所述目標(biāo)I/O服務(wù)器返回的遷移響應(yīng);將所述待遷移的數(shù)據(jù)文件發(fā)送至所述目標(biāo)I/O服務(wù)器,并刪除本地的所述待遷移的數(shù)據(jù)文件。
6.根據(jù)權(quán)利要求5所述的方法,其特征在于,所述選擇待遷移的數(shù)據(jù)文件,包括 計(jì)算存儲(chǔ)的每一個(gè)數(shù)據(jù)文件的負(fù)載值與數(shù)據(jù)量的比值;選擇比值最大的預(yù)定數(shù)量的數(shù)據(jù)文件作為待遷移的數(shù)據(jù)文件。
7.根據(jù)權(quán)利要求6所述的方法,其特征在于,還包括根據(jù)一預(yù)定策略在所述存儲(chǔ)系統(tǒng)的其他I/O服務(wù)器確定一所述目標(biāo)I/O服務(wù)器; 所述預(yù)定策略為所述目標(biāo)I/O服務(wù)器在所述第二時(shí)刻下的負(fù)載值與所述待遷移的數(shù)據(jù)文件的負(fù)載值之和不大于所述I/O服務(wù)器在所述第二時(shí)刻下的負(fù)載值。
8.一種I/O服務(wù)器,應(yīng)用于至少兩臺(tái)所述I/O服務(wù)器構(gòu)成的一存儲(chǔ)系統(tǒng)中,其特征在于,包括負(fù)載預(yù)測(cè)單元,用于在第一時(shí)刻下根據(jù)一預(yù)測(cè)算法計(jì)算出第二時(shí)刻的第二負(fù)載值; 負(fù)載獲取單元,用于獲取所述存儲(chǔ)系統(tǒng)在所述第二時(shí)刻下的負(fù)載平均值; 負(fù)載遷移單元,用于當(dāng)所述第二負(fù)載值大于所述負(fù)載平均值時(shí),將待遷移的數(shù)據(jù)文件遷移至目標(biāo)I/O服務(wù)器,所述目標(biāo)I/O服務(wù)器在所述第二時(shí)刻下的負(fù)載值小于所述第二負(fù)載值。
9.根據(jù)權(quán)利要求8所述的I/O服務(wù)器,其特征在于,還包括 負(fù)載計(jì)算單元,用于計(jì)算第一時(shí)刻下的第一負(fù)載值;所述負(fù)載獲取單元,還用于當(dāng)所述第二負(fù)載值大于所述第一負(fù)載值時(shí),再獲取所述存儲(chǔ)系統(tǒng)在所述第二時(shí)刻下的負(fù)載平均值。
10.根據(jù)權(quán)利要求8所述的I/O服務(wù)器,其特征在于,還包括均衡因子獲取單元,用于獲取所述存儲(chǔ)系統(tǒng)在所述第二時(shí)刻下的負(fù)載均衡因子; 所述負(fù)載遷移單元,還用于當(dāng)所述負(fù)載均衡因子小于負(fù)載均衡因子閾值時(shí),再將待遷移的數(shù)據(jù)文件遷移至目標(biāo)I/O服務(wù)器。
11.根據(jù)權(quán)利要求8所述的I/O服務(wù)器,其特征在于,所述負(fù)載獲取單元包括負(fù)載請(qǐng)求子單元,用于向所述存儲(chǔ)系統(tǒng)的其它I/O服務(wù)器發(fā)送收集所述第二時(shí)刻下的負(fù)載值的請(qǐng)求;負(fù)載接收子單元,用于接收所述其它I/O服務(wù)器反饋的在所述第二時(shí)刻下的負(fù)載值; 計(jì)算子單元,用于根據(jù)所述其它I/O服務(wù)器在所述第二時(shí)刻下的負(fù)載值及所述第二負(fù)載值計(jì)算所述存儲(chǔ)系統(tǒng)在所述第二時(shí)刻下的負(fù)載平均值。
12.根據(jù)權(quán)利要求8所述的I/O服務(wù)器,其特征在于,所述負(fù)載遷移單元包括 選擇子單元,用于選擇待遷移的數(shù)據(jù)文件;遷移請(qǐng)求子單元,用于向所述目標(biāo)I/O服務(wù)器發(fā)送遷移請(qǐng)求; 響應(yīng)接收子單元,用于接收所述目標(biāo)I/O服務(wù)器發(fā)送的遷移響應(yīng); 遷移子單元,用于將所述待遷移的數(shù)據(jù)文件發(fā)送至所述目標(biāo)I/O服務(wù)器,并刪除本地的所述待遷移的數(shù)據(jù)文件。
13.根據(jù)權(quán)利要求12所述的I/O服務(wù)器,其特征在于,所述選擇子單元包括 比值計(jì)算子單元,用于計(jì)算存儲(chǔ)的每一個(gè)數(shù)據(jù)文件的負(fù)載值與數(shù)據(jù)量的比值;文件選擇子單元,用于選擇比值最大的預(yù)定數(shù)量的數(shù)據(jù)文件作為待遷移的數(shù)據(jù)文件。
14.根據(jù)權(quán)利要求13所述的I/O服務(wù)器,其特征在于,所述負(fù)載遷移單元還包括確定子單元,用于根據(jù)一預(yù)定策略在所述存儲(chǔ)系統(tǒng)的其他I/O服務(wù)器確定一所述目標(biāo) I/O服務(wù)器;所述預(yù)定策略為所述目標(biāo)I/O服務(wù)器在所述第二時(shí)刻下的負(fù)載值與所述待遷移的數(shù)據(jù)文件的負(fù)載值之和不大于所述I/O服務(wù)器在所述第二時(shí)刻下的負(fù)載值。
全文摘要
本發(fā)明提供一種I/O負(fù)載均衡方法及I/O服務(wù)器。I/O負(fù)載均衡方法應(yīng)用一I/O服務(wù)器中,以至少兩臺(tái)所述I/O服務(wù)器構(gòu)成一存儲(chǔ)系統(tǒng),包括在第一時(shí)刻下根據(jù)一預(yù)測(cè)算法計(jì)算出第二時(shí)刻的第二負(fù)載值;獲取所述存儲(chǔ)系統(tǒng)在所述第二時(shí)刻下的負(fù)載平均值;當(dāng)所述第二負(fù)載值大于所述負(fù)載平均值時(shí),將待遷移的數(shù)據(jù)文件遷移至目標(biāo)I/O服務(wù)器,所述目標(biāo)I/O服務(wù)器在所述第二時(shí)刻下的負(fù)載值小于所述第二負(fù)載值。本發(fā)明實(shí)施例方法通過(guò)基于下一時(shí)刻的負(fù)載值確定負(fù)載均衡策略,實(shí)現(xiàn)了對(duì)下一時(shí)刻系統(tǒng)負(fù)載的均衡,所以即使當(dāng)前時(shí)刻存在網(wǎng)絡(luò)通信延時(shí),也不會(huì)對(duì)下一時(shí)刻系統(tǒng)的負(fù)載均衡產(chǎn)生較大影響,從而減少了因?yàn)榫W(wǎng)絡(luò)通信延時(shí)而造成的負(fù)載頻繁遷移。
文檔編號(hào)H04L29/08GK102480502SQ201010562558
公開(kāi)日2012年5月30日 申請(qǐng)日期2010年11月26日 優(yōu)先權(quán)日2010年11月26日
發(fā)明者潘勇 申請(qǐng)人:聯(lián)想(北京)有限公司