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