專利名稱:一種大規模機群的機群管理系統及其信息處理方法
技術領域:
本發明涉及計算機機群管理技術,具體涉及一種機群管理系統及其信息處理方法。
背景技術:
計算機作為一種能進行快速運算和對數據進行復雜處理的工具,在當今的科學技術發展和日常生活中都發揮著重要的作用。而隨著對計算機運算速度和處理能力的越來越高的要求,目前的單個計算機已經逐漸難以適應,因此,目前人們一方面在積極研制運算速度更快的巨型計算機,另一方面也想到了通過日益成熟的網絡技術將大量的普通計算機連接在一起,通過共享它們各自的資源和統一利用它們各自的運算能力,從而實現更高的運算處理能力。于是,計算機機群系統應運而生。
機群系統就是由一組相互獨立并通過高速網絡互聯的計算機所組成的網絡系統。大量計算機連接在一起,但是如何集中并統一發揮它們的作用,從而實現更廣泛的資源和更復雜的處理能力,這就需要一個對機群系統進行管理的機群管理系統。機群管理系統是一個邏輯概念,它通過對機群系統進行分工并在各個單獨計算機上運行相應管理軟件,使各個計算機在整個機群系統中協同工作,從而可以充分利用機群系統中的每一臺計算機所擁有的資源和處理能力,通過并行處理實現更復雜的運算。
目前的機群管理系統大多采用分布式的軟件結構,即客戶端—服務器端結構。在這種結構中,客戶端負責接收用戶的請求并將其發送給各個服務器端,各個服務器端接受請求,在執行命令的同時將執行結果返回給客戶端,客戶端處理后再反饋給用戶。其中,客戶端和服務器端之間的通信機制有多種,例如java的RMI機制、corba通信機制和基于socket的通信機制等等。當結點數規模較大時,考慮到系統資源的占用情況、命令的響應速度、可靠性、穩定性等多方面的因素,目前一般采用基于socket的通信機制。
在這種socket通信機制中,每一臺通訊的主機都有一個本網絡環境中唯一的IP地址,一臺主機上往往有多個通訊程序存在,每個這樣的程序都要占用一個通訊端口。因此,通過一個IP地址和一個通訊端口就能確定一個通訊程序的位置,也就是某個程序是在某個IP上并占用了某個端口。在目前相互通信的socket網絡程序中,一方稱為客戶程序(client),另一方稱為服務程序(server),服務程序總是被動地等待連接。服務程序啟動后,初始化完畢就進入等待連接狀態;而客戶程序啟動后,首先向遠程服務程序發出連接請求,服務程序收到請求后,按照一定的規則建立連接,連接完成后,兩個程序就建立了一個虛擬的數據通訊鏈路。這些程序可以直接從自己打開的套接口讀入和寫出數據,而不用關心實際的數據鏈路。
如圖1所示,通常的采用socket通信機制的機群管理系統的分布式結構采用單客戶端—多服務器端的并發編程模式。這種結構只有一個客戶端用來接收來自用戶的請求,這種請求通常是在機群中的多個結點并行的執行命令。客戶端接到這種多結點的并行命令請求后,為每個結點的請求生成一個socket連接,向這些結點的服務器進程請求連接服務。等待最后一個socket收到回應后,將結果處理后返回上層程序。
上述編程模式適用于結點數規模較少的情況,當結點規模很大時,這種結構由于操作系統本身允許同時打開的文件個數和socket通信機制對線程個數的限制,不能滿足讓多個結點并發執行命令的需要。因此這些系統管理方法僅能實現基本的系統管理,不具有可擴展性和管理大規模機群結點的能力。隨著科學技術和網絡的進一步發展和人們對計算機運算速度和處理能力的要求的進一步提高,需要在一個機群系統中包含更多的計算機,因此系統結點數規模也就更大,這時目前的機群管理系統在對更復雜和規模更大的機群系統的管理上就顯得力不從心,嚴重地影響到大規模機群的應用,從而阻礙了科學技術的進一步發展。
發明內容
有鑒于此,為了解決現有技術的缺點,本發明的一個目的是提供一種可擴展的、可以管理大規模計算機機群的機群管理系統。
本發明的另一個目的是提供一種上述機群管理系統進行信息處理的方法。
本發明的上述目的是通過如下的技術方案予以解決的一種機群管理系統,包括一個作為最上一級結點的客戶端和大于1個的作為最下一級結點的服務器端,并進一步包括大于等于1級的并且每一級包含大于1個的子服務結點,其中每一個子服務結點進一步包括一個子服務結點服務器端和一個子服務結點客戶端,最上一級結點、各級子服務結點和最下一級結點通過上一級結點的客戶端連接到下一級結點的服務器端、下一級結點的客戶端連接到再下一級結點的服務器端的方式順序連接。
在上述機群管理系統中,最上一級結點和最下一級結點之間的子服務結點的級數可以是1級,并且與每一個上一級結點連接的下一級結點的數量可以相等。同時每一級結點之間的連接可以是socket通信連接。
一種基于上述機群管理系統進行信息處理的方法,包括如下步驟a.最上一級結點的客戶端接收到用戶請求信息數據包后,提取該數據包所包含的目的服務器端的IP地址,并確定發送該數據包的逐級目的子服務結點;b.最上一級結點將該數據包發送到步驟a確定的下一級結點的服務器端,下一級結點服務器端將該數據包轉發到該級結點的客戶端,該級結點的客戶端將該數據包轉發到再下一級結點的服務器端,并連續以這種方式將該數據包順序轉發到最下一級結點的服務器端;c.最下一級結點的服務器端執行命令,通過和步驟b轉發數據包的相反順序將包含執行命令結果的數據包轉發到最上一級結點的客戶端。
在上述信息處理方法中,在建立機群管理系統的同時可以預先在最上一級結點的客戶端建立一個最上一級結點到最下一級結點的樹形映射關系表,步驟a中根據該樹形映射關系表確定發送數據包的逐級目的子服務結點。
從本發明的技術方案可以看出,通過在現有的機群管理系統中設置子服務結點,這樣運行在機群中的各個結點上的服務器端進程不再是獨立的,這些服務器進程被分成幾個小組,每個小組由一個子服務結點系列統一建立和最上一級結點的聯系。這些分組的服務器進程不再和最上一級結點的客戶端進程直接通信,而是與本組內的子服務結點進行通信。每組內的子服務結點在執行并行命令的通信過程中具有雙重身份,它既是下一級結點的服務器端的客戶端,又是上一級結點的客戶端的服務器端。作為服務器端它接收來自上一級結點的客戶端發來的連接請求和命令,但是它并不執行該命令,這時它又作為客戶端將根據從上一級結點的客戶端請求最終與組內的各個服務器進程建立連接,將請求命令最終發送到組內的各個服務器進程,由各個服務器進程真正執行命令,并返回給組內的子服務結點,子服務結點將匯總這些結果,將結果順序返回給最上一級結點的客戶端,也就是現有技術中的客戶端。這樣,使最上一級結點所需要建立的socket連接的數據大大減少,滿足了操作系統本身允許同時打開的文件個數和socket通信機制對線程個數的限制,使更多的結點可以同時并發執行命令,極大地提高了機群管理系統對大規模機群系統的管理能力。
同時,由于本發明通過設置子服務結點的形式擴展系統功能,占用了較少的系統資源,并且基本保持了原有系統的執行命令的速度,在增強系統性能的同時并不會過分增加系統資源和降低處理速度。由于子服務結點與服務器端以及客戶端的連接關系并沒有變化,因此其內部改變對于客戶端上層的用戶以及服務器端下層的命令都是透明的,從而方便系統的維護。本發明可以設置多個層次的子服務結點,因此使管理的機群規模可以任意擴展,大大提高了系統的擴展性。
圖1是根據現有技術的單客戶端—多服務器端系統的機群管理系統示意圖;圖2是根據本發明的經過分組的單客戶端—多服務器端系統的機群管理系統示意圖;圖3是根據本發明的機群管理系統的信息處理流程圖。
具體實施例方式
下面結合附圖和具體實施例對本發明進行詳細介紹。
本發明通過一種分組的結構對現有技術的機群管理系統進行了擴展。圖2是根據本發明的經過分組的單客戶端—多服務器端系統的機群管理系統示意圖,為了易于說明,在圖2中展示了只有一級子服務結點的情況。如圖2所示,本發明將原有的客戶端稱為作為最上一級結點的客戶端,也稱為主服務結點的客戶端,將原有的服務器端稱為最下一級結點的服務器端,在保留了原有的客戶端和服務器端的基礎上,另外增加了子服務結點,這種子服務結點自身分別具有一個服務器端和一個客戶端,它們分別被稱為子服務結點的服務器端和子服務結點的客戶端。在本發明中,將最下一級結點的服務器端進行分組,所分的組的個數等于子服務結點的數量,這樣,將同一組的作為最下一級結點的服務器端和相應的一個子服務結點的客戶端建立socket連接,而該子服務結點的服務器端和主服務結點的客戶端建立socket連接。對每一組最下一級結點的服務器端、相應子服務結點和主服務結點的客戶端都按照上述方法連接,即構成了本發明的機群管理系統。這樣在執行用戶的并發命令請求時,客戶端不再是由一個結點組成,而是由包括主服務結點和子服務結點在內的多個結點共同組成,一個主服務結點、多個子服務結點和更多的服務器端之間形成了一個樹形結構。
在本發明中,需要建立的子服務結點的數量以及和每一個子服務結點建立socket連接的服務器端的數量根據機群系統的規模而定。一般地,和每一個子服務結點建立socket連接的服務器端的數量應該相同或者大致相同,也就是對服務器端的分組最好按照平均原則,這樣可以使來自主服務結點的數據包基本上平均分配給每一個子服務結點,從而避免子服務結點負荷不均的現象,保證系統的順利工作。
在介紹了本發明的機群管理系統的結構之后,下面介紹根據本發明的機群管理系統是如何處理具體信息的。在如上所述增加了子服務結點從而建立根據本發明的機群管理系統后,也就是在建立了主服務結點、子服務結點和服務器端之間的樹形結構后,首先在主服務結點建立一個它們之間的映射關系表,也就是每一個服務器端是通過哪一個子服務結點連接到主服務結點,這樣在主服務結點接收到包含該服務器端IP地址的數據包后,可以明確將該數據包分發給哪一個子服務結點。隨后的具體信息處理步驟如圖3所示。
在本發明的機群管理系統中,當主服務結點在步驟S301接收到來自用戶的請求信息數據包后,首先在步驟S302提取該信息數據包中所包含的目的服務器端的IP地址,然后在步驟S303根據映射關系表確定和上述IP地址相應的服務器端建立socket連接的是哪一個子服務結點,從而確定發送此信息數據包的目的子服務結點。在步驟S304,主服務結點將此信息數據包根據上述確定結果發送到相應的子服務結點的服務器端。
在子服務結點的服務器端接收到來自主服務結點的客戶端發送的用戶請求信息數據包后,并不像普通服務器端一樣對該數據包進行處理,而是在步驟S305直接將此數據包轉發給同樣位于該子服務結點中的子服務結點客戶端,子服務結點的客戶端在步驟S306根據數據包所包含的IP地址將該數據包發送到具有相應IP地址的服務器端。
服務器端在接收到來自子服務結點的數據包后,在步驟S307中和現有技術一樣執行命令,然后在步驟S308將包含執行命令結果的數據包返回到和它建立連接的子服務結點的客戶端。此時,子服務結點的客戶端同樣不對該數據包進行處理,而是在步驟S309將其直接轉發給子服務結點的服務器端,由子服務結點的服務器端在步驟S310將該數據包發送給主服務結點的客戶端。
上述是本發明執行一次用戶命令的過程。可以知道,作為主服務結點的客戶端可以同時接收多個用戶命令,在機群管理系統中可以同時進行多個同樣的信息處理過程。在本發明中,由于主服務結點不再和每一個服務器端建立直接聯系,而是和子服務結點建立連接,這樣需要在主服務結點打開的文件數量和線程數量都大大減少,大量的文件和線程可以選擇在子服務結點打開,從而和現有技術相比,根據本發明的機群管理系統使主服務結點可以接收更多的用戶命令,并且可以執行更復雜的運算。
在實施例中展示的機群管理系統和方法中僅設置了一級子服務結點,但是本領域的技術人員很容易理解,如果系統結點規模較大,也可以設置兩級、三級或更多級的子服務結點,此時只要將最上一級的客戶端連接到下一級結點的服務器端,下一級結點的客戶端連接到再下一級的服務器端即可,這樣順序連接,也就是形成了一個更大規模的樹形結構。這樣建立的系統可以應用于更大規模的機群系統,能同時并行處理更多更復雜的命令。因此可以理解,本發明所展示的實施例僅用于說明本發明的精神,而不用于限制本發明。
權利要求
1.一種機群管理系統,包括一個作為最上一級結點的客戶端和大于1個的作為最下一級結點的服務器端,其特征是,該系統進一步包括大于等于1級的并且每一級包含大于1個的子服務結點,所述每一個子服務結點進一步包括一個子服務結點服務器端和一個子服務結點客戶端,所述最上一級結點、各級子服務結點和最下一級結點通過上一級結點的客戶端連接到下一級結點的服務器端、下一級結點的客戶端連接到再下一級結點的服務器端的方式順序連接。
2.根據權利要求1所述的機群管理系統,所述最上一級結點和最下一級結點之間的子服務結點的級數為1級。
3.根據權利要求1所述的機群管理系統,其特征是,所述與每一個上一級結點連接的下一級結點的數量相等。
4.根據權利要求1所述的機群管理系統,其特征是,所述每一級結點之間的連接是socket通信連接。
5.一種權利要求1所述的機群管理系統進行信息處理的方法,包括如下步驟a.最上一級結點的客戶端接收到用戶請求信息數據包后,提取該數據包所包含的目的服務器端的IP地址,并確定發送該數據包的逐級目的子服務結點;b.最上一級結點將該數據包發送到步驟a確定的下一級結點的服務器端,所述下一級結點服務器端將該數據包轉發到該級結點的客戶端,該級結點的客戶端將該數據包轉發到再下一級結點的服務器端,并連續以這種方式將該數據包順序轉發到最下一級結點的服務器端;c.最下一級結點的服務器端執行命令,通過和步驟b轉發數據包的相反順序將包含執行命令結果的數據包轉發到最上一級結點的客戶端。
6.根據權利要求5所述的信息處理方法,其特征是,在建立機群管理系統的同時預先在最上一級結點的客戶端建立一個最上一級結點到最下一級結點的樹形映射關系表,步驟a中根據所述樹形映射關系表確定發送數據包的逐級目的子服務結點。
全文摘要
本發明公開了一種機群管理系統,除了一個作為最上一級結點的客戶端和大于1個的作為最下一級結點的服務器端之外,該系統進一步包括大于等于1級的并且每一級包含大于1個的子服務結點,每一個子服務結點進一步包括一個子服務結點服務器端和一個子服務結點客戶端,最上一級結點、各級子服務結點和最下一級結點通過上一級結點的客戶端連接到下一級結點的服務器端、下一級結點的客戶端連接到再下一級結點的服務器端的方式順序連接。本發明同時還公開了這種機群管理系統的一種信息處理方法。通過本發明,可以管理更大規模的機群系統。
文檔編號G06F9/46GK1512371SQ0215990
公開日2004年7月14日 申請日期2002年12月27日 優先權日2002年12月27日
發明者趙玉萍, 肖利民, 楊帆 申請人:聯想(北京)有限公司