本發(fā)明屬于虛擬機管理領域,尤其涉及一種虛擬機調度管理方法及調度器。
背景技術:
云計算管理平臺項目(openstack),能夠有效管理計算、存儲與網絡資源,大大提高了硬件資源的利用率,而且極大地提高了業(yè)務系統(tǒng)的可維護性及擴展性;云計算管理平臺項目(openstack)提供了負載均衡即服務(lbaas,loadbalanceasaservice)的高級功能,通過在多個虛擬機之間分發(fā)負載來提升系統(tǒng)性能和可靠性。
但是負載均衡即服務(lbaas)在實現(xiàn)負載均衡時,對集群中的虛擬機的調度管理方式主要有以下幾點:
1、集群中的虛擬機需要添加時,需要手動操作,不夠智能;
2、通過調度策略池在對集群中的虛擬機進行調度時,沒有考慮到根據負載信息對集群中的虛擬機數量進行動態(tài)管理,導致系統(tǒng)資源利用率不高;
3、通過健康檢查監(jiān)視器獲取集群中虛擬機的狀態(tài)特征信息(正??捎脿顟B(tài)、異常不可用狀態(tài)),若虛擬機處于異常不可用狀態(tài),則健康檢查監(jiān)視器向調度策略池發(fā)送刪除指令,所述調度策略池執(zhí)行所述刪除指令,將集群中處于異常不可用狀態(tài)的虛擬機刪除。
上述技術方案存在以下缺點:
1、對虛擬機進行管理的部分環(huán)節(jié)(例如:添加虛擬機)需要手動操作,不夠智能;
2、對虛擬機進行調度時,沒有考慮到根據負載信息對集群中的虛擬機數量進行動態(tài)管理,導致系統(tǒng)資源利用率不高;
3、調度策略池、健康檢查監(jiān)視器都是對虛擬機進行管理的決策者,決策者過多,沒有一個統(tǒng)一的集群調度中心,不利于資源的統(tǒng)一調度。
因此,迫切需要一種靈活、高效利用資源的對虛擬機進行統(tǒng)一管理的方案來解決上述技術問題。
技術實現(xiàn)要素:
本發(fā)明提供一種虛擬機調度管理方法及調度器,以解決上述問題。
本發(fā)明實施例提供一種虛擬機調度管理方法。上述方法包括以下步驟:通過調度器獲取集群中虛擬機的業(yè)務特征信息和/或狀態(tài)特征信息并根據所述業(yè)務特征信息和/或所述狀態(tài)特征信息,對虛擬機進行管理;其中,所述業(yè)務特征信息包括以下至少之一:負載大小信息、負載分布信息、虛擬機空閑時間信息、虛擬機連接失敗信息;所述狀態(tài)特征信息包括:正常狀態(tài)、異常不可用狀態(tài)。
本發(fā)明實施例提供一種調度器,包括獲取模塊、管理模塊;其中,所述獲取模塊與所述管理模塊相連;
所述獲取模塊,用于獲取集群中虛擬機的業(yè)務特征信息和/或狀態(tài)特征信息;其中,所述業(yè)務特征信息包括以下至少之一:負載大小信息、負載分布信息、虛擬機空閑時間信息、虛擬機連接失敗信息;所述狀態(tài)特征信息包括:正常狀態(tài)、異常不可用狀態(tài);
所述管理模塊,用于根據從所述獲取模塊中獲取的所述業(yè)務特征信息和/或所述狀態(tài)特征信息,對虛擬機進行管理。
本發(fā)明實施例提供了以下技術方案:通過調度器獲取集群中虛擬機的業(yè)務特征信息和/或狀態(tài)特征信息并根據所述業(yè)務特征信息和/或所述狀態(tài)特征信息,對虛擬機進行管理;其中,所述業(yè)務特征信息包括以下至少之一:負載大小信息、負載分布信息、虛擬機空閑時間信息、虛擬機連接失敗信息;所述狀態(tài)特征信息包括:正常狀態(tài)、異常不可用狀態(tài)。
上述技術方案中,通過調度器實現(xiàn)了對集群中虛擬機的自動調度,相比人工操作,顯得更加智能靈活;另外,調度器在對虛擬機進行管理時,依據集群中虛擬機的負載信息和/或狀態(tài)特征信息對集群中的虛擬機數量進行動態(tài)管理,提高了系統(tǒng)資源利用率。
另外,上述技術方案中,實現(xiàn)了調度器對集群中的虛擬機資源進行統(tǒng)一調度。
本發(fā)明實施例提供了以下技術方案:若檢測到集群中存在虛擬機處于異常不可用狀態(tài),則通過所述調度器或所述健康檢查監(jiān)視器向所述調度策略池發(fā)送刪除指令;所述調度策略池執(zhí)行所述刪除指令,將集群中處于異常不可用狀態(tài)的虛擬機從集群中刪除;或者,若檢測到集群中對應的虛擬機負載連接數超過預設值且待工作隊列中無虛擬機,則創(chuàng)建虛擬機并將創(chuàng)建的虛擬機加入集群中;或者,若隊列有待工作虛擬機,則啟動隊首虛擬機并將其加入集群中;或者,若集群中的虛擬機空閑時間超過預設時間,則將其關機入隊,從集群中刪除;或者,若集群中虛擬機連接失敗次數大于預設次數,則刪除該虛擬機。
上述技術方案中,根據集群中虛擬機的實際情況,對虛擬機進行創(chuàng)建刪除,使得集群中虛擬機的添加刪除更加靈活,并能根據負載量動態(tài)地創(chuàng)建虛擬機和刪除虛擬機,提高了集群的負載響應能力與資源利用率,能夠有效提高集群的實用價值。
附圖說明
此處所說明的附圖用來提供對本發(fā)明的進一步理解,構成本申請的一部分,本發(fā)明的示意性實施例及其說明用于解釋本發(fā)明,并不構成對本發(fā)明的不當限定。在附圖中:
圖1所示為本發(fā)明實施例1的虛擬機調度管理架構示意圖;
圖2所示為本發(fā)明實施例2的又一虛擬機調度管理架構示意圖;
圖3所示為本發(fā)明實施例3的基于圖1所示的虛擬機調度管理架構下的實現(xiàn)的虛擬機調度管理方法處理流程圖;
圖4所示為本發(fā)明實施例4的調度器調度流程圖;
圖5所示為本發(fā)明實施例5的調度器內部結構圖。
具體實施方式
下文中將參考附圖并結合實施例來詳細說明本發(fā)明。需要說明的是,在不沖突的情況下,本申請中的實施例及實施例中的特征可以相互組合。
圖1所示為本發(fā)明實施例1的虛擬機調度管理架構示意圖,包括調度器、端口監(jiān)聽器、調度策略池、健康檢查監(jiān)視器、包含多個虛擬機的集群;
其中,所述調度器分別與端口監(jiān)聽器、調度策略池、健康檢查監(jiān)視器相連,所述端口監(jiān)聽器通過所述調度策略池與對應的集群相連;所述健康檢查監(jiān)視器分別與所述調度策略池、所述集群相連。
圖2所示為本發(fā)明實施例2的又一虛擬機調度管理架構示意圖,包括調度器1、端口監(jiān)聽器1、調度策略池1、健康檢查監(jiān)視器1、包含虛擬機的集群1;
其中,所述調度器1分別與端口監(jiān)聽器1、調度策略池1、健康檢查監(jiān)視器1相連,所述端口監(jiān)聽器1通過所述調度策略池1與對應的集群1相連;所述健康檢查監(jiān)視器1分別與所述調度策略池1、所述集群1相連;
還包括調度器2、端口監(jiān)聽器2、調度策略池2、健康檢查監(jiān)視器2、包含虛擬機的集群2;
其中,所述調度器2分別與端口監(jiān)聽器2、調度策略池2、健康檢查監(jiān)視器2相連,所述端口監(jiān)聽器2通過所述調度策略池2與對應的集群2相連;所述健康檢查監(jiān)視器2分別與所述調度策略池2、所述集群2相連。
進一步地,端口監(jiān)聽器1監(jiān)聽端口80上的請求;端口監(jiān)聽器2監(jiān)聽端口443上的請求。
圖3所示為本發(fā)明實施例3的基于圖1所示的虛擬機調度管理架構下的實現(xiàn)的虛擬機調度管理方法處理流程圖,包括以下步驟:
步驟301:通過調度器獲取集群中虛擬機的業(yè)務特征信息和/或狀態(tài)特征信息;其中,所述業(yè)務特征信息包括負載大小信息、負載分布信息、虛擬機空閑時間信息、虛擬機連接失敗信息;所述狀態(tài)特征信息包括:正常狀態(tài)、異常不可用狀態(tài)。
進一步地,通過調度器獲取集群中虛擬機的業(yè)務特征信息和/或狀態(tài)特征信息之前,還包括:
需要設定以下幾個參數或文件:1)每個虛擬機最大負載連接數量cmax;2)用于調度創(chuàng)建虛擬機用的鏡像;3)虛擬機創(chuàng)建后運行服務的啟動腳本;4)負載連接數檢測周期t;5)虛擬機空閑等待時間tmax。
進一步地,所述調度器通過端口監(jiān)聽器、調度策略池獲取集群中虛擬機的業(yè)務特征信息。
其中,所述調度器通過端口監(jiān)聽器、調度策略池獲取集群中虛擬機的業(yè)務特征信息之前,還包括:
創(chuàng)建用于端口監(jiān)聽的端口監(jiān)聽器,每個所述端口監(jiān)聽器綁定一個端口來監(jiān)聽該端口上的請求。
進一步地,所述調度器通過健康檢查監(jiān)視器獲取集群中虛擬機的狀態(tài)特征信息;所述狀態(tài)特征信息包括:正常狀態(tài)、異常不可用狀態(tài)。
其中,所述調度策略池pool中的調度策略包括:將請求分發(fā)至當前正在處理的請求數最少的虛擬機;或者,輪流分發(fā)請求;或者,根據請求中攜帶的ip地址信息,將所述請求分發(fā)至處理該ip地址的虛擬機。
其中,通過健康檢查監(jiān)視器monitor來檢測集群中各個虛擬機是否處于正常狀態(tài)。
選擇http、ping、tcp三種monitor類型。它采用周期性的探測方法,用探測周期interval、重試次數retries、超時時間timeout三個參數來設置探測動作。
若健康檢查監(jiān)視器檢測到某個虛擬機處于異常不可用狀態(tài),則通知調度器由所述調度器向調度策略池發(fā)送刪除指令;所述調度策略池執(zhí)行所述刪除指令,將集群中處于異常不可用狀態(tài)虛擬機刪除;或者,健康檢查監(jiān)視器檢測到某個虛擬機處于異常不可用狀態(tài),則由健康檢查監(jiān)視器直接向調度策略池發(fā)送刪除指令;所述調度策略池執(zhí)行所述刪除指令,將集群中處于異常不可用狀態(tài)虛擬機刪除。
步驟302:根據獲取的所述業(yè)務特征信息和/或所述狀態(tài)特征信息,對虛擬機進行管理。
進一步地,若檢測到集群中對應虛擬機處于異常不可用狀態(tài),通過所述調度器或所述健康檢查監(jiān)視器向所述調度策略池發(fā)送刪除指令;所述調度策略池執(zhí)行所述刪除指令,將集群中處于異常不可用狀態(tài)的虛擬機從集群中刪除。
進一步地,若檢測到集群中對應的虛擬機負載連接數超過預設值且待工作隊列中無虛擬機,則創(chuàng)建虛擬機并將創(chuàng)建的虛擬機加入集群中;其中,所述調度策略池定時或實時將收集到的虛擬機負載連接數上報至所述調度器。
其中,若隊列有待工作虛擬機,則啟動隊首虛擬機并將其加入集群中。
進一步地,若集群中的虛擬機空閑時間超過預設時間,則將其關機入隊,從集群中刪除;或者,若集群中虛擬機連接失敗次數大于預設次數,則刪除該虛擬機;其中,所述調度策略池定時或實時將收集到的虛擬機空閑時間或虛擬機連接失敗次數上報至所述調度器。
本發(fā)明實施例提供了以下技術方案:通過調度器獲取集群中虛擬機的業(yè)務特征信息和/或狀態(tài)特征信息并根據所述業(yè)務特征信息和/或所述狀態(tài)特征信息,對虛擬機進行管理;其中,所述業(yè)務特征信息包括以下至少之一:負載大小信息、負載分布信息;所述狀態(tài)特征信息包括:正常狀態(tài)、異常不可用狀態(tài)。
上述技術方案中,實現(xiàn)了調度器對集群中的虛擬機資源進行統(tǒng)一調度;將調度任務集成于一個調度器,該調度器負責執(zhí)行信息收集、執(zhí)行調度任務的任務。
本發(fā)明實施例中,通過調度器獲取集群中虛擬機的業(yè)務特征信息和/或狀態(tài)特征信息并根據所述業(yè)務特征信息和/或所述狀態(tài)特征信息,對虛擬機進行管理;其中,管理方式包括創(chuàng)建虛擬機(根據用戶指定的鏡像、網絡及類型模板flavor創(chuàng)建虛擬機)并將其加入集群中、刪除虛擬機、終結虛擬機。
一方面實現(xiàn)了調度器對集群中的虛擬機資源進行統(tǒng)一調度,另一方面通過調度器實現(xiàn)了對集群中虛擬機的自動調度,相比人工操作,顯得更加智能靈活;另外,調度器在對虛擬機進行管理時,依據集群中虛擬機的負載信息和/或狀態(tài)特征信息對集群中的虛擬機數量進行動態(tài)管理,提高了系統(tǒng)資源利用率。
調度器在執(zhí)行調度時,通過調用nova、neutron、glance模塊api進行調度操作。
圖4所示為本發(fā)明實施例4的調度器調度流程圖,包括以下步驟:
步驟401:開始;
步驟402:初始化;
步驟403:調度器收集信息并判斷;
通過調度器獲取集群中虛擬機的業(yè)務特征信息和/或狀態(tài)特征信息并根據所述業(yè)務特征信息和/或所述狀態(tài)特征信息,進行判斷。
步驟404:若檢測到集群中對應的虛擬機負載連接數超過預設值,若不超過預設值,則執(zhí)行步驟405;否則,執(zhí)行步驟406;
步驟405:判斷集群中的虛擬機空閑時間是否超過預設時間,若超過,則執(zhí)行步驟409,否則,執(zhí)行步驟410;
步驟406:判斷待工作隊列是否為空,若為空,則執(zhí)行步驟407,否則,執(zhí)行步驟408;
步驟407:創(chuàng)建虛擬機并加入集群;
步驟408:啟動隊首虛擬機并加入集群;
步驟409:關機并入隊列;
若集群中的虛擬機空閑時間超過預設時間,則將其關機入隊,從集群中刪除。
步驟410:判斷集群中虛擬機連接失敗次數是否大于預設次數,若是,則執(zhí)行步驟411;否則,執(zhí)行步驟403;
步驟411:刪除虛擬機。
圖5所示為本發(fā)明實施例5的調度器內部結構圖,包括獲取模塊、管理模塊;其中,所述獲取模塊與所述管理模塊相連;
所述獲取模塊,用于通過調度器獲取集群中虛擬機的業(yè)務特征信息和/或狀態(tài)特征信息;其中,所述業(yè)務特征信息包括以下至少之一:負載大小信息、負載分布信息、虛擬機空閑時間信息、虛擬機連接失敗信息;所述狀態(tài)特征信息包括:正常狀態(tài)、異常不可用狀態(tài);
所述管理模塊,用于根據從所述獲取模塊中獲取的所述業(yè)務特征信息和/或所述狀態(tài)特征信息,對虛擬機進行管理。
本發(fā)明實施例提供了以下技術方案:通過調度器獲取集群中虛擬機的業(yè)務特征信息和/或狀態(tài)特征信息并根據所述業(yè)務特征信息和/或所述狀態(tài)特征信息,對虛擬機進行管理;其中,所述業(yè)務特征信息包括以下至少之一:負載大小信息、負載分布信息、虛擬機空閑時間信息、虛擬機連接失敗信息;所述狀態(tài)特征信息包括:正常狀態(tài)、異常不可用狀態(tài)。
上述技術方案中,通過調度器實現(xiàn)了對集群中虛擬機的自動調度,相比人工操作,顯得更加智能靈活;另外,調度器在對虛擬機進行管理時,依據集群中虛擬機的負載信息和/或狀態(tài)特征信息對集群中的虛擬機數量進行動態(tài)管理,提高了系統(tǒng)資源利用率。
另外,上述技術方案中,實現(xiàn)了調度器對集群中的虛擬機資源進行統(tǒng)一調度。
本發(fā)明實施例提供了以下技術方案:若檢測到集群中存在虛擬機處于異常不可用狀態(tài),則通過所述調度器或所述健康檢查監(jiān)視器向所述調度策略池發(fā)送刪除指令;所述調度策略池執(zhí)行所述刪除指令,將集群中處于異常不可用狀態(tài)的虛擬機從集群中刪除;或者,若檢測到集群中對應的虛擬機負載連接數超過預設值且待工作隊列中無虛擬機,則創(chuàng)建虛擬機并將創(chuàng)建的虛擬機加入集群中;或者,若隊列有待工作虛擬機,則啟動隊首虛擬機并將其加入集群中;或者,若集群中的虛擬機空閑時間超過預設時間,則將其關機入隊,從集群中刪除;或者,若集群中虛擬機連接失敗次數大于預設次數,則刪除該虛擬機。
上述技術方案中,根據集群中虛擬機的實際情況,對虛擬機進行創(chuàng)建刪除,使得集群中虛擬機的添加刪除更加靈活,并能根據負載量動態(tài)地創(chuàng)建虛擬機和刪除虛擬機,提高了集群的負載響應能力與資源利用率,能夠有效提高集群的實用價值。
以上所述僅為本發(fā)明的優(yōu)選實施例而已,并不用于限制本發(fā)明,對于本領域的技術人員來說,本發(fā)明可以有各種更改和變化。凡在本發(fā)明的精神和原則之內,所作的任何修改、等同替換、改進等,均應包含在本發(fā)明的保護范圍之內。