專利名稱:一種網格計算中節點間負載轉移的方法
技術領域:
本發明涉及網格計算技術領域,尤其是涉及一種網格計算中節點間負載轉移的方法。
背景技術:
隨著互聯網廣泛應用于電子商務并向前不斷發展,網上主機大量增加,但其利用率卻普遍不高。而高性能計算的應用需求又使計算能力不可能在單一計算機上獲得,必須通過構建網絡虛擬超級計算機來滿足其超強的計算能力。網格計算技術因此應運而生,該技術通過網絡連接地理上分布的各類計算機、數據庫、各類設備和存儲設備等,形成對用戶相對透明的虛擬的高性能計算環境。該技術應用包括分布式計算、高吞吐量計算、協同工程和數據查詢等諸多功能。簡單地講,網格計算技術就是把整個因特網整合成一臺巨大的超級計算機,實現計算資源、存儲資源、數據資源、信息資源、知識資源、專家資源的全面共享。現在,網格計算模式已經發展為連接和統一各類不同遠程資源的一種基礎結構。
目前網格架構正在標準化,OASIS(Organization for theAdvancement of Structured Information Standards,結構化信息標準促進組織)提供了一套網格資源框架WSRF(Web Service ResourceFramework,WEB服務資源框架),該框架表示有狀態的資源和WEB服務之間的聯系。WSRF是一系列的規范,用于支持網格服務,屬于網格和WEB服務結構的融合。WSRF推出的目的在于定義出一個通用且開放的架構,利用Web服務對具有狀態屬性的資源進行存取,并包含描述狀態屬性的機制,另外也包含如何將機制延伸至Web服務中的方式。
Globus Toolkit 4.0提供了一個WSRF的實現方案,該方案完整地采用了WEB服務,并使用WS-Resource(Web Service Resource,WEB服務資源)來向用戶提供有狀態的服務。WS-Resource是由Web服務和有狀態的資源構成的實體,有狀態的資源可以在Web服務消息交換中使用。WS-Resource可以被創建和銷毀,而且可以通過消息交換查詢或更改其狀態。
在網格中,負載均衡是十分重要的功能。負載均衡問題是由于工作負載在網格系統資源中的分散特性所引起的。當作業被提交到網格任務管理器中時,工作負載可以通過推模式、拉模式或組合模式進行分布。推模式是通過循環的方式將任務發送到網格資源上;拉模式是網格資源從任務隊列中獲取任務;在推模式和拉模式的組合模式中,每一個網格資源可以決定何時能接收更多的工作,并向網格任務服務器發送工作請求,然后,任務服務器就向其發送新的工作。在上述負載均衡模式下,都需要考慮故障恢復的條件,需要檢測出哪些網格資源已經無法繼續操作了。
典型的基于Globus Toolkit 4.0中WSRF規范的負載均衡方法如圖1所示。該系統包括五個客戶節點C1、C2、C3、C4和C5,一個網格發現節點G1,三個服務節點N1、N2和N3。客戶節點C1、C2、C3、C4、C5分別通過發現信息D1、D2、D3、D4、D5與網格發現節點G1進行通信,服務節點N1、N2、N3分別通過發現信息D6、D7、D8與網格發現節點G1進行通信,服務節點N1通過服務信息S1接受客戶節點C1的任務請求,服務節點N2分別通過服務信息S2、S3、S5接受客戶節點C1、C2、C5的任務請求,服務節點N3通過服務信息S4接受客戶節點C4的任務請求。在服務節點上,客戶節點的任務請求用以百分比方式標明的負載表示,服務節點的負載耐受值用門限值表示。圖1中,服務節點N1的門限值為70%、負載為65%,服務節點N2的門限值為65%、負載為70%,服務節點N3的門限值為80%、負載為55%。負載情況通過本地負載通知服務維護,一旦服務節點上的負載超過門限值,該服務節點將不再接受新的任務請求,直到現有的負載降低到門限值以下為止。根據OGSA(Open GRID Services Architecture,開放網格服務架構)的描述,上述過程會刷新駐留VOLI(VirtualOrganization Level Index,虛擬組織層次索引)的網格發現節點以及上層資源調度器中的負載信息。
采用上述負載均衡方法,當服務節點接受客戶節點的任務請求后,該客戶節點只能與該服務節點進行通信來完成所請求的任務,而該服務節點不能將該客戶節點的任務請求轉移到其它節點上。圖1中服務節點N2的負載已經超過門限值,這樣就很容易引起服務節點N2上運行的服務不可用的故障。
發明內容
本發明的目的是提供一種網格計算中節點間負載轉移的方法,以克服現有技術中服務節點在負載超過門限值后,不能將負載轉移到其它節點的缺陷。
本發明包括以下步驟A、源節點確定需要轉移的服務;B、源節點確定服務轉移的目的節點;C、在目的節點上創建所述服務;D、將源節點中所述服務的狀態同步到目的節點。
按照本發明的一個方面,步驟A具體為源節點的本地負載均衡器通過本地負載通知服務監測本地負載,當確定本節點過載時,從處于活動狀態的服務中選擇需要轉移的服務。
按照本發明的另一個方面,步驟B進一步包括首先,源節點的本地負載均衡器向網絡發現節點請求可運行所述服務的輕載節點;然后,網絡發現節點收集服務節點的信息,選擇一個可運行所述服務并且未過載的節點作為服務轉移的目的節點并返回給源節點。
按照本發明的再一個方面,步驟D進一步包括首先,源節點的本地負載均衡器向源節點的服務資源發送設置狀態信息,源節點的服務資源將附加狀態信息設置到所述服務資源的屬性中;然后,源節點的負載均衡器用所述服務資源的屬性更新目的節點的服務資源的相應屬性;接著,源節點通知目的節點進行狀態恢復;最后,目的節點根據所述附加狀態信息恢復目的節點所述服務的狀態。
與現有技術相比,本發明具有以下優點在服務節點過載的情況下,需要把部分現有負載轉移到其余節點上去,所以需要使客戶的資源狀態在源節點和目的節點之間保持同步,該轉移方法對客戶是透明的,完全在服務器端進行。應用本發明,客戶節點不會綁定具體的服務節點,只要有未過載的能運行該客戶節點所請求任務的服務節點存在,就能繼續完成該客戶節點所請求的任務,從而規避了由服務節點過載所引起的故障,使網格計算環境更加健壯。
圖1是基于Globus Toolkit 4.0中WSRF規范的負載均衡方法的系統示意圖。
圖2是本發明中節點間負載轉移的方法的系統示意圖。
具體實施例方式
本發明的核心思想在于將被轉移的服務的相關狀態信息從源節點同步到目的節點中,從而使所述服務被轉移到新節點后能順利繼續進行。所述相關狀態信息在本發明中稱為附加狀態信息,可以是該服務使用的數據庫連接、文件等等,與具體服務相關,本發明不做限制。
本發明包括以下步驟步驟s101,源節點確定需要轉移的服務。
某個服務是否需要轉移可以根據需要由管理員確定并發起,也可以通過其它方式,如源節點的本地負載均衡器通過本地負載通知服務監測本地負載,當確定源節點過載時,從處于活動狀態的服務中選擇需要轉移的服務。
步驟s102,源節點確定服務轉移的目的節點。
服務轉移的目的節點可以是由人工確定,但較優的方案是通過網格發現節點確定,如源節點的本地負載均衡器請求與源節點連接的網格發現節點提供可運行所選服務的輕載節點,作為進行負載轉移的目的節點,該網格發現節點將滿足要求的目的節點信息返回給源節點的本地負載均衡器。
步驟s103,在目的節點上創建所述服務。
首先,源本地負載均衡器向目的本地負載均衡器發出創建資源消息,并注明需要轉移的服務;然后,目的本地負載均衡器根據該消息創建相應的WEB服務。
步驟s104,將源節點中所述服務的狀態同步到目的節點。
首先,源節點的本地負載均衡器向源節點的服務資源發送設置狀態信息,源節點的服務資源將附加狀態信息設置到所述服務資源的屬性中;然后,源節點的負載均衡器用所述服務資源的屬性更新目的節點的服務資源的相應屬性;接著,源節點通知目的節點進行狀態恢復;目的節點再根據所述附加狀態信息恢復目的節點所述服務的狀態。
通過以上步驟即完成了網格計算中節點間的負載轉移。重復以上過程,可以對所有需要轉移的服務全部進行狀態同步。
下面結合圖2再詳細描述本發明的具體實施方式
。參閱圖2,該系統包括五個客戶節點C1、C2、C3、C4和C5,一個網格發現節點G1,三個服務節點N1、N2和N3。其中N2為進行狀態同步的源節點,N3為進行狀態同步的目的節點。客戶節點C1、C2、C3、C4、C5分別通過發現信息D1、D2、D3、D4、D5與網格發現節點G1進行通信,服務節點N1、N2、N3分別通過發現信息D6、D7、D8與網格發現節點G1進行通信,服務節點N1通過服務信息S1接受客戶節點C1的任務請求,源節點N2分別通過服務信息S2、S3、S5接受客戶節點C1、C2、C5的任務請求,目的節點N3通過服務信息S4接受客戶節點C4的任務請求。源節點N2包含源節點的本地負載均衡器LLBS和源WEB服務資源RA1,目的節點N3包含目的節點的本地負載均衡器LLBD和目的WEB服務資源RA2。LLBS通過發現信息D9與網格發現節點G1進行通信,LLBS通過狀態同步信息SS1與LLBD進行通信。圖2中服務節點N1的門限值為70%、負載為65%,源節點N2的門限值為65%、負載為70%,目的節點N3的門限值為80%、負載為55%。源節點N2的負載已經超過了門限值,需要將部分負載轉移到目的節點N3上,在源節點N2和目的節點N3之間進行負載轉移,包括以下步驟步驟s201,LLBS識別源節點N2上當前所有處于活動狀態的服務;
步驟s202,LLBS從本地負載通知服務獲取每個服務的負載情況;步驟s203,LLBS構造一個根據負載增加量排列的服務清單列表,可配置為負載增加量由高到低或由低到高;步驟s204,LLBS請求網格發現節點G1提供可運行清單列表中服務的輕載節點,做為進行負載轉移的目的節點;步驟s205,網格發現節點將滿足要求的目的節點N3的信息回復給LLBS;步驟s206,LLBS向源WEB服務資源RA1發出需要和目的節點N3進行狀態同步的SET_STATE消息;步驟s207,接收到LLBS發出的SET_STATE消息后,源WEB服務資源RA1以XML(Extensible Markup Language,可擴展標識語言)的方式準備好附加狀態信息,并設置到源WEB服務資源RA1的ADD_STATE資源屬性中,如果源WEB服務資源RA1沒有附加狀態,ADD_STATE資源屬性將被設置為<empty>;步驟s208,LLBS以WEB服務資源屬性規范中定義的方式獲取源WEB服務資源RA1的資源屬性;步驟s209,LLBS向LLBD發出CREATE_RESOURCE消息,通過URL(UniformResource Locator,統一資源定位器)注明需要轉移的服務,該服務由應用決定;步驟s210,LLBD將對應于該服務的目的WEB服務資源RA2上新創建的參考端點返回給LLBS;步驟s211,LLBS接收到LLBD返回的參考端點后,使用該參考端點的信息來更新目的WEB服務資源RA2的資源屬性;步驟s212,LLBS向目的WEB服務資源RA2發出RESTORE_STATE消息;步驟s213,接收到來自LLBS的RESTORE_STATE消息后,目的WEB服務資源RA2根據ADD_STATE資源屬性的值來恢復其所維護的附加狀態,如果目的WEB服務資源RA2中的ADD_STATE資源屬性的值為<empty>,則不進行恢復;步驟s214,針對所有需要轉移的服務重復進行步驟s206到步驟s213。
經過上述步驟,客戶節點的任務請求已經由LLBS轉交給目的節點,完成源節點和目的節點之間的負載轉移。
如果目的節點N3不能完成源節點N2需要轉移的所有服務,則源節點先將目的節點N3能夠完成的服務轉移到目的節點N3上,然后源節點再向網格發現節點請求一個新的能運行相應服務的輕載節點,繼續轉移剩余服務。
根據WEB服務資源生命周期規范,上述源WEB服務資源RA1被轉移后可以保持存活或者被刪除。
本發明提供的方法不僅可用于節點過載時對服務進行轉移,還可用于其它需要對服務進行轉移的情況,如在應用切換場景時對應用涉及的服務進行轉移。
以上所述僅是本發明的優選實施方式,應當指出,對于本技術領域的普通技術人員來說,在不脫離本發明原理的前提下,還可以作出若干改進和潤飾,這些改進和潤飾也應視為本發明的保護范圍。
權利要求
1.一種網格計算中節點間負載轉移的方法,其特征在于,包括以下步驟A、源節點確定需要轉移的服務;B、源節點確定服務轉移的目的節點;C、在目的節點上創建所述服務;D、將源節點中所述服務的狀態同步到目的節點。
2.如權利要求1所述的方法,其特征在于,所述步驟B具體包括以下步驟B1、源節點向網絡發現節點請求可運行所述服務的節點;B2、網絡發現節點選擇一個可運行所述服務的節點作為服務轉移的目的節點并返回給源節點。
3.如權利要求2所述的方法,其特征在于,所述步驟B2的具體為網絡發現節點選擇一個可運行所述服務并且未過載的節點作為服務轉移的目的節點并返回給源節點。
4.如權利要求1所述的方法,其特征在于,所述步驟D具體包括以下步驟D1、源節點將所述服務的附加狀態信息發送給目的節點;D2、源節點通知目的節點進行狀態恢復;D3、目的節點根據所述附加狀態信息恢復目的節點所述服務的狀態。
5.如權利要求4所述的方法,其特征在于,所述步驟D1具體包括以下步驟D11、源節點的負載均衡器向源節點的服務資源發送設置狀態信息;D12、源節點的服務資源將附加狀態信息設置到所述服務資源的屬性中;D13、源節點的負載均衡器用所述服務資源的屬性更新目的節點的服務資源的相應屬性。
6.如權利要求1所述的方法,其特征在于,所述步驟A具體為源節點的本地負載均衡器通過本地負載通知服務監測本地負載,當確定本節點過載時,從處于活動狀態的服務中選擇需要轉移的服務。
全文摘要
一種網格計算中節點間負載轉移的方法,涉及網格計算技術領域,克服現有技術中服務節點在負載超過門限值后,不能進行負載轉移的缺陷。本發明包括以下步驟首先源節點確定需要轉移的服務和服務轉移的目的節點,然后在目的節點上創建所述服務,最后將源節點中所述服務的狀態同步到目的節點。
文檔編號G06F9/46GK1870526SQ200510131849
公開日2006年11月29日 申請日期2005年12月20日 優先權日2005年12月20日
發明者尼拉特·阿默, 拉維·基蘭, 馬哈希娃·里迪 申請人:華為技術有限公司