一種雲計算伺服器集群的均衡負載系統及方法與流程
2023-07-09 05:20:47 1

本發明涉及集群伺服器技術領域,具體涉及一種雲計算伺服器集群的均衡負載系統及方法。
背景技術:
伴隨著計算需求的發展,雲計算的發展越來越快。雲計算集群通常採用大規模計算模塊進行計算,為了保證集群的安全性、穩定性以及用戶的體驗,需要採用負載均衡集群。
目前常用的集群負載均衡系統一般只能對資源進行一次分配,這種機制的弊端在於,分配後當用戶真正提交任務並開始運算時,根據規則分配的伺服器資源不一定能滿足用戶的計算需求,而由於分配是單層、單向、靜態的,所以容易造成伺服器資源過載、用戶使用體驗不佳的情況發生。
考慮到系統性價比、用戶體驗等問題,因此,實現集群負載的自動化、智能化、在線化是亟待解決的問題。
技術實現要素:
本發明的目的在於提供一種雲計算伺服器集群的均衡負載系統及方法,用以解決現有集群負載均衡系統不夠自動化、智能化、在線化,系統性價比及用戶體驗不佳的問題。
為實現上述目的,本發明設計了一種雲計算伺服器集群的均衡負載系統及方法。具體地,一種雲計算伺服器集群的均衡負載系統,關鍵是,該系統包括:用於存放用戶數據和用戶計算數據的存儲伺服器、一組用於執行用戶計算任務的GPU計算伺服器和用於分配、監控GPU計算伺服器運行情況的管理伺服器;
其中,所述的管理伺服器包括:
登錄模塊:用於獲得和保存用戶登錄信息,並將用戶登錄信息傳給監控模塊和分配模塊;
監控模塊:用於監控每個GPU計算伺服器的用戶數量、GPU佔用情況、內存佔用情況;
分配模塊:用於將登錄的用戶分配給特定的計算伺服器;
資源預估模塊:用於在用戶提交作業後進行佔用的資源預估。
進一步地,所述的GPU計算伺服器能容納的並發用戶數量的最大值由管理員設定。
進一步地,所述的存儲伺服器中設有公共目錄和用戶目錄,用戶目錄包括所有用戶各自的目錄,用戶登錄後可調用自身目錄中的信息和數據。
基於上述系統的一種雲計算伺服器集群的均衡負載方法,所述方法包括以下步驟:
a、用戶登錄時,由管理伺服器中的登錄模塊獲得用戶的登錄信息,然後觸發登錄事件,登錄事件觸發後,監控模塊立即將所有GPU計算伺服器的用戶數量、GPU佔用情況、內存佔用情況發送給分配模塊,分配模塊將用戶分配給當前用戶數最少的GPU計算伺服器;
b、用戶調用存儲伺服器中的數據,在管理伺服器為其分配的GPU計算伺服器運行任務,提交任務時,觸發資源預估事件,由管理伺服器中的資源預估模塊根據提交任務時的描述和選擇參數對任務佔用的資源進行預估,所述的預估方法包括根據數據類型、大小、任務流程中所用軟體,在根據以往運行任務積累的經驗創建的的資料庫中查到預計需要的GPU佔用率,以及需要的內存、IO、網絡容量,通過預估結果及監控模塊傳來的實時資源佔用情況,若發現已分配的資源不足以完成任務,則由分配模塊進行再次分配;
c、任務運行完畢後,用戶退出登錄,結束。
進一步地,所述的步驟a中,分配模塊將用戶分配給當前用戶數最少的GPU計算伺服器時,若當前用戶數最少的GPU計算伺服器數量大於1時,將用戶按順序分配給GPU計算伺服器。
進一步地,步驟a中,用戶登錄後,調用存儲伺服器中公共目錄和用戶目錄中的數據。
進一步地,所述的步驟a中,分配模塊將用戶分配給當前用戶數最少的GPU計算伺服器時,當若監控模塊監控到所有GPU計算伺服器都達到最大並發用戶數,則向登錄模塊發送信息,登錄模塊向用戶發出提示信息。
進一步地,所述的步驟a中,分配模塊將用戶分配給當前用戶數最少的GPU計算伺服器時,當監控模塊監控到所有GPU計算伺服器都達到最大並發用戶數的80%,則向管理員發出提示信息。
還有,管理員有查看監控模塊中的GPU計算伺服器的用戶數量、GPU佔用情況、內存佔用情況的信息的權限,管理員有停止用戶進程額權限,存儲伺服器中用戶個人數據的查看權限僅為用戶個人。
進一步地,管理伺服器中的登錄模塊將用戶的登錄信息保存在資料庫中,步驟c,用戶在退出登錄時可以選擇暫時下線或結束進程,若選擇暫時下線,則登錄信息不從資料庫中刪除,系統認為該用戶還是登錄狀態,用戶再次從網頁或客戶端登錄時,將自動匹配到之前的GPU計算伺服器,繼續之前的進程;若選擇結束進程,登錄信息將從登錄模塊的資料庫中刪除,用戶下次登錄將重新分配GPU計算伺服器。
本發明具有如下優點:1、雲計算平臺往往是針對某個特定領域的,這就決定了用的任務主要集中在一個有限的範圍內,這使得用戶提交任務時進行資源預估成為可能。本方案利用資源預估技術,進行雙層資源分配,力求達到資源利用的動態、充分、有效。2、本發明基於事件驅動的雙層分配機制,實現集群的負載均衡,具有自動化、智能化、在線執行的特點,在進行負載均衡時以用戶使用體驗為主要考慮,使得負載均衡策略更加簡單、高效、透明,保證了集群系統的高性能、高服務質量和彈性擴展。
附圖說明
圖1是本發明的系統結構框圖。
圖2是本發明的方法流程圖。
具體實施方式
以下實施例用於說明本發明,但不用來限制本發明的範圍。
本發明的技術方案首先包括系統物理結構的部署,具體可參見圖1,該雲計算伺服器集群的均衡負載系統的物理結構包括:
管理伺服器,用於分配用戶、監控計算伺服器運行情況,
GPU計算伺服器,用於執行用戶的計算任務,
存儲伺服器,用於存放用戶數據和計算數據。
上述管理伺服器包括:
登錄模塊,用於獲得和保存用戶登錄信息,並將用戶登錄信息傳給監控模塊和分配模塊;
監控模塊,用於監控每個計算伺服器的用戶數量、GPU佔用情況、內存佔用情況;
分配模塊,用於將登錄的用戶分配給特定的計算伺服器;
資源預估模塊,用於在用戶提交作業後進行可能佔用資源的預估。
其中,本發明中所述的GPU計算伺服器可有多個,每個GPU計算伺服器最多能容納的並發用戶數由管理員定義。
還有,本發明所述的存儲伺服器下有公共目錄和用戶目錄,用戶目錄包括所有用戶各自的目錄。
參見圖2,用戶使用本發明所述的一種雲計算伺服器集群的均衡負載系統的流程如下:
a)用戶從網頁或客戶端發起登錄;
b)管理伺服器中的登錄模塊獲得用戶的登錄信息,然後觸發登錄事件;
c)登錄事件觸發後,管理伺服器中的監控模塊將所有GPU計算伺服器的用戶數量、GPU佔用情況、內存佔用情況發送給管理伺服器中的分配模塊;
d)分配模塊進行第一層分配,將用戶分配給當前用戶數最少的GPU計算伺服器,若當前用戶數最少的GPU計算伺服器數量大於1,則將用戶按順序分配給GPU計算伺服器;
e)用戶在分配到的GPU計算伺服器上提交任務,觸發資源預估事件;
f)資源預估模塊根據用戶提交任務時的描述及選擇的參數進行資源資源預估;所述的預估方法包括根據數據類型、大小、任務流程中所用軟體,在根據以往運行任務積累的經驗創建的的資料庫中查到預計需要的GPU佔用率,以及需要的內存、IO、網絡容量;
g)分配模塊根據預估的資源佔用情況和當前各GPU計算伺服器的佔用情況,進行第二層分配,將用戶分配給能夠最大限度滿足其使用需求的GPU計算伺服器;
h)用戶運行任務;
i)用戶可以調用存儲伺服器中公共目錄和自己目錄中的數據,並可將數據存入自己的目錄中;
j)用戶每次提交任務時,都觸發資源預估事件,進行二層分配;
k)用戶退出,可以選擇暫時下線或結束進程,若選擇暫時下線,則登錄信息不從資料庫中刪除,系統認為該用戶還是登錄狀態,用戶再次從網頁或客戶端登錄時,將自動匹配到之前的GPU計算伺服器,繼續之前的進程;若選擇結束進程,登錄信息將從登錄模塊的資料庫中刪除,用戶下次登錄將重新分配GPU計算伺服器。
其中,該方法流程中,登錄事件觸發時,若監控模塊監控到所有GPU計算伺服器都達到最大並發用戶數,則向登錄模塊發送信息,登錄模塊向用戶給出「登錄用戶數已達到上限,請聯繫管理員」的提示。
若監控模塊監控到所有GPU計算伺服器都達到最大並發用戶數的80%,則系統向管理員給出「登錄用戶較多,請增加GPU計算伺服器」的提示。
管理員可以查看監控模塊,得到所有GPU計算伺服器的用戶數量、CPU佔用情況、內存佔用情況的信息,但沒有查看存儲伺服器中用戶個人數據的權限,管理員還可以停止掉某個用戶的進程。
實施例1
步驟1、管理伺服器中的監控模塊通過接受GPU計算伺服器周期性發送的用戶數、GPU佔用情況、內存佔用情況等信息對GPU計算伺服器進行監控,若所有GPU計算伺服器的用戶數均達到最大並發用戶數的80%,則執行步驟2;若所有GPU計算伺服器的用戶數均達到最大並發用戶數,則執行步驟3;否則,則執行步驟4;
步驟2、系統向管理員給出「登錄用戶較多,請增加GPU計算伺服器」的提示,管理員在線增加一臺GPU計算伺服器S n+1,跳至步驟4;
步驟3、用戶從網頁或客戶端發起登錄,登錄模塊向用戶給出「登錄用戶數已達到上限,請聯繫管理員」的提示,跳至步驟14;
步驟4、用戶從網頁或客戶端發起登錄,觸發登錄事件,登錄模塊將用戶的登錄信息發送給監控模塊,並將用戶的登錄信息保存到資料庫中;
步驟5、監控模塊將所有GPU計算伺服器的用戶數量、GPU佔用情況、內存佔用情況發送給管理伺服器中的分配模塊;
步驟6、若當前用戶數最少的GPU計算伺服器數量等於1,則執行步驟7;若當前用戶數最少的GPU計算伺服器數量大於1,則執行步驟8;
步驟7、分配模塊將用戶分配給該用戶數最少的GPU計算伺服器,若管理員執行了步驟2中增加GPU計算伺服器S n+1的操作,則按照該方法,先將用戶分配給S n+1,直至S n+1的用戶數與其他GPU計算伺服器用戶數相同為止,跳至步驟9;
步驟8、將用戶按照S1,S2,S3…Sn,Sn+1的順序分配給GPU計算伺服器;
步驟9、用戶提交任務,觸發資源預估事件,資源預估模塊根據提交任務的描述和參數進行資源預估,若預計當前分配的GPU計算伺服器能夠滿足該計算需求,則執行步驟11,否則執行步驟10;
步驟10、分配模塊根據資源預估模塊預估的資源佔用情況和監控模塊觀察的當前所有GPU計算伺服器的資源佔用情況進行第二層分配調度;
步驟11、用戶在分配的GPU計算伺服器上進行運算,可以調用存儲伺服器中公共目錄和自己目錄中的數據,並可將數據存入自己的目錄中;
步驟12、用戶退出,可以選擇暫時下線或結束進程,若選擇暫時下線,則執行步驟13;若選擇結束進程,則執行步驟14;
步驟13、登錄信息不從資料庫中刪除,系統認為該用戶還是登錄狀態,用戶再次從網頁或客戶端登錄時,將自動匹配到之前的GPU計算伺服器,繼續之前的進程;
步驟14、登錄信息將從登錄模塊的資料庫中刪除,用戶下次登錄將重新從步驟1開始,分配GPU計算伺服器;
步驟15,退出登錄,結束。
本發明中步驟1一直在執行中。本發明基於事件驅動的雙層分配機制,實現集群的負載均衡,具有自動化、智能化、在線執行的特點,在進行負載均衡時以用戶使用體驗為主要考慮,使得負載均衡策略更加簡單、高效、透明,保證了集群系統的高性能、高服務質量和彈性擴展。
雖然,上文中已經用一般性說明及具體實施例對本發明作了詳盡的描述,但在本發明基礎上,可以對之作一些修改或改進,這對本領域技術人員而言是顯而易見的。因此,在不偏離本發明精神的基礎上所做的這些修改或改進,均屬於本發明要求保護的範圍。