本發明涉及通信領域,尤其涉及一種虛擬機調度方法和裝置。
背景技術:
云計算,是一種基于互聯網的計算方式,通過這種計算方式,共享的軟硬件資源和信息可以按需提供給計算機和其他設備。云計算的核心思想,是將大量用網絡連接的虛擬機統一管理和調度,構成一個計算資源池向用戶按需服務。隨著近幾年信息技術的飛速發展,企業應用服務器的用戶量和業務訪問量越來越大,如何在幾分鐘內對應用系統進行擴容,提升系統的快速響應能力,是提升應用系統性能的關鍵因素之一。與此同時,越來越多的應用服務器將其業務遷移到云數據中心,以解決用戶量不均衡情況下應用系統如何快速響應用戶操作的問題。然而傳統數據中心應用服務器的部署在用戶量不均衡的情況下,并發量突發上升,造成服務器資源嚴重缺乏,致使服務器會出現癱瘓的情況。
技術實現要素:
本發明的主要目的在于提供一種虛擬機調度方法及裝置,旨在解決云計算應用在用戶量不均衡的情況下,服務器癱瘓的問題。
為實現上述目的,本發明提供的一種虛擬機調度方法,包括步驟:
監測各個虛擬機的運行數據,判斷所述運行數據是否超出預設的參數區間;
當所述運行數據超出預設的參數區間時,根據所述運行數據調度備用虛擬機資源。
優選地,所述監測各個虛擬機的運行數據,判斷所述運行數據是否超出預設的參數區間的步驟之前,還包括:
獲取待安裝云計算應用的安裝包;
基于所述安裝包將所述待安裝云計算應用安裝至相應的虛擬機;
采用所述安裝包中的配置信息配置安裝所述云計算應用的虛擬機。
優選地,所述基于所述安裝包將所述待安裝云計算應用安裝至相應的虛擬機的步驟包括:
獲取未安裝云計算應用的虛擬機作為可用虛擬機;
基于所述安裝包將所述待安裝云計算應用安裝至所述可用虛擬機。
優選地,所述虛擬機調度方法還包括:
監測備用虛擬機資源,判斷所述備用虛擬機資源是否充足;
當所述備用虛擬機資源不足時,創建新的虛擬機,將所述新的虛擬機設置為備用虛擬機;
當所述備用虛擬機資源充足時,繼續監測所述備用虛擬機資源。
優選地,所述虛擬機調度方法,還包括:
定時對備用虛擬機資源進行調度。
此外,為實現上述目的,本發明還提供一種虛擬機調度裝置,所述裝置包括:
監測模塊,用于監測虛擬機的運行數據;
判斷模塊,用于判斷所述運行數據是否超出預設的參數區間;
調度模塊,用于當所述運行數據超出預設的參數區間時,根據所述運行數據調度備用虛擬機資源。
優選地,所述的虛擬機調度裝置還包括:
獲取模塊,用于獲取待安裝云計算應用的安裝包;
安裝模塊,用于基于所述安裝包將所述待安裝云計算應用安裝至相應的虛擬機;
配置模塊,用于采用所述安裝包中的配置信息配置安裝所述云計算應用的虛擬機。
優選地,所述安裝模塊包括:
獲取單元,用于獲取未安裝云計算應用的虛擬機作為可用虛擬機;
安裝單元,用于基于所述安裝包將所述待安裝云計算應用安裝至所述可用虛擬機。
優選地,所述監測模塊,還用于監測備用虛擬機資源;所述判斷模塊,還用于判斷所述備用虛擬機資源是否充足;所述虛擬機調度裝置還包括創建模塊,用于當所述備用虛擬機資源不足時,創建新的虛擬機,將所述新的虛擬機設置為備用虛擬機;所述監測模塊,還用于當所述備用虛擬機資源充足時,繼續監測所述備用虛擬機資源。
優選地,所述調度模塊,還用于定時對備用虛擬機資源進行調度。
本發明通過監測各個虛擬機的運行數據,判斷所述運行數據是否超出預設的參數區間;當所述運行數據超出預設的參數區間時,根據所述運行數據調度備用虛擬機資源。通過虛擬化和應用集群技術,快速提升云計算應用系統的響應能力,解決了用戶量不均衡的情況下,服務器癱瘓的問題,實現了動態調度虛擬機資源。
附圖說明
圖1為本發明虛擬機調度方法的第一實施例的流程示意圖;
圖2為本發明虛擬機調度方法的第二實施例的流程示意圖;
圖3為圖2中步驟S02的細化流程示意圖;
圖4為本發明虛擬機調度方法的第三實施例的流程示意圖;
圖5為本發明虛擬機調度方法的第四實施例的流程示意圖;
圖6為本發明虛擬機調度裝置的第一實施例的功能模塊示意圖;
圖7為本發明虛擬機調度裝置的第二實施例的功能模塊示意圖;
圖8為圖7中安裝模塊的細化功能模塊示意圖;
圖9為本發明虛擬機調度裝置的第三實施例的功能模塊示意圖。
本發明目的的實現、功能特點及優點將結合實施例,參照附圖做進一步說明。
具體實施方式
應當理解,此處所描述的具體實施例僅僅用以解釋本發明,并不用于限定本發明。
本發明實施例的主要解決方案是:監測各個虛擬機的運行數據,判斷所述運行數據是否超出預設的參數區間;當所述運行數據超出預設的參數區間時,根據所述運行數據調度備用虛擬機資源。通過虛擬化和應用集群技術,快速提升云計算應用系統的響應能力,解決了用戶量不均衡的情況下,服務器癱瘓的問題,實現動態調度虛擬機資源。
由于現有數據中心應用服務器的部署在用戶量不均衡的情況下,并發量突發上升,造成服務器資源嚴重缺乏,如果按照傳統數據中心的應用部署方式,添加新服務器資源并部署應用,等部署應用完成之后,服務器已經出現癱瘓。
基于上述問題,本發明提供一種虛擬機調度方法
參照圖1,圖1為本發明虛擬機調度方法的第一實施例的流程示意圖.
在本實施例中,所述虛擬機調度方法包括:
步驟S10,監測各個虛擬機的運行數據,判斷所述運行數據是否超出預設的參數區間;
步驟S20,當所述運行數據超出預設的參數區間時,根據所述運行數據調度備用虛擬機資源。
云計算應用的服務器中含有監聽器,通過所述監聽器定時監測各個虛擬機運行數據,即定時或實時監測所述各個虛擬機運行數據,所述運行數據包括但不限于CPU利用率、內存使用率等。判斷所述運行數據是否超過預設的參數區間。如果連續N個采樣周期,某個虛擬機運行數據都超過其預設的參數區間,則判斷所述虛擬機運行數據超過預設的參數區間。采樣周期個數和采樣時間間隔可以根據所述虛擬機的配置和需要設置,如根據自身的性能調優結果,設置合適的采 樣周期個數和采樣時間間隔。在本實施例中,優選地,設置采樣周期個數為3個,采樣時間間隔為5秒。即虛擬機每隔5秒進行一次采樣,在連續3個采樣周期內采集到的所述虛擬機CPU利用率都超過90%時,判斷所述虛擬機CPU利用率超過預設的參數區間的上限值,發出告警信號。接收到所述告警信號后,生成云計算應用的性能告警事件,根據所述告警事件的類型和所述云計算應用設置的調度策略,即根據所述事件調度策略對所述云計算應用中的備用虛擬機資源進行調度。如當所述云計算應用的用戶量達到一個高峰,即所述云計算應用所在的虛擬機已達到性能高峰時,將從云計算應用系統的資源池中調度可用的備用虛擬機資源,以供所述云計算應用的用戶量分到其它虛擬機中,使所述虛擬機運行數據在一個正常的范圍內;如果所述云計算應用所在的虛擬機達到了性能低谷,如所述虛擬機每隔5秒進行一次采樣,在連續3個采樣周期內采集到的所述虛擬機CPU利用率都低過10%時,判斷所述虛擬機CPU利用率低于預設的參數區間的下限值,即所述云計算應用所在的虛擬機性能達到低谷,則將所述備用虛擬機資源進行回收。同時,調用所述云計算應用中的負載均衡器的配置接口,通過所述負載均衡器的配置接口,發起負載均衡動態配置請求,更新所述云計算應用的負載均衡配置。即根據所述云計算應用所在的備用虛擬機IP地址、端口以及上下文等信息,動態更改所述云計算應用的負載均衡器配置信息,使所述云計算應用可以使用所述備用虛擬機資源。
本實施例通過監測各個虛擬機的運行數據,判斷所述運行數據是否超出預設的參數區間;當所述運行數據超出預設的參數區間時,根據所述運行數據調度備用虛擬機資源。通過虛擬化和應用集群技術,快速提升云計算應用系統的響應能力,解決了用戶量不均衡的情況下,服務器癱瘓的問題,實現動態調度虛擬機資源。
參照圖2,圖2為本發明虛擬機調度方法的第二實施例的流程示意圖。基于第一實施例提出本發明虛擬機調度方法第二實施例,在本實施例中,所述步驟S10之前,還包括:
步驟S30,獲取待安裝云計算應用的安裝包;
步驟S40,基于所述安裝包將所述待安裝云計算應用安裝至相應的虛擬機;
步驟S50,采用所述安裝包中的配置信息配置安裝所述云計算應用的虛擬機。
具體地,參照圖3,步驟S40包括:
步驟S41,獲取未安裝云計算應用的虛擬機作為可用虛擬機;
步驟S42,基于所述安裝包將所述待安裝云計算應用安裝至所述可用虛擬機。
獲取待安裝云計算應用的安裝包,即上傳所述云計算應用的部署包,并設置動態調度策略。所述動態調度策略包括但不限于定時調度策略和事件調度策略。所述定時調度策略,即以時間為單位進行虛擬機資源調度,如可以設置按月或天進行定時調度,如設置按10天為單位進行虛擬機資源調度,即所述云計算應用每隔10天就自動進行虛擬機資源調度。所述事件調度策略,可以設置CPU的利用率、內存使用率以及端口并發連接數等閾值,通過監測所述云計算應用的虛擬機資源使用情況,根據不同的閾值,動態調用所述云計算應用的備用虛擬機資源,如所述云計算應用當前所在的虛擬機內存使用率已達87%,而所述內存使用率的閾值是85%,在這種情況下,就要調用所述備用虛擬機資源,減輕所述云計算應用所在虛擬機內存負擔。
獲取未安裝云計算應用的虛擬機作為可用虛擬機,基于所述安裝包將所述待安裝云計算應用安裝至所述可用虛擬機。即發布所述云計算應用之后,向所述云計算應用系統發起應用部署請求,即安裝所述云計算應用的請求,當接收到所述請求之后,將所述部署包上傳到所述云計算應用系統中,并遠程執行所述部署包的應用部署和配置腳本,完成所述云計算應用的部署,即完成所述云計算應用的安裝。
當完成對所述云計算應用的安裝之后,調用所述負載均衡器的配置接口,根據所述可用的云計算應用的部署的相關信息,動態更改所述可用云計算的負載均衡配置信息。所述相關信息包括但不限于云計算應用的部署的服務器的IP地址、端口以及上下文信息。當動態更 改所述可用云計算的負載均衡配置信息之后,發起性能的采集請求,遠程登陸到虛擬機系統中,啟動所述云計算應用的監控代理的守護進程,定時監測所述虛擬機運行指標。
本實施例通過部署云計算應用至虛擬機中,實現了自動部署和配置云計算應用,提高云計算應用部署的效率。
參照圖4,圖4為本發明虛擬機調度方法的第三實施例的流程示意圖。基于第一或第二實施例提出本發明虛擬機調度方法的第三實施例,在本實施例中,所述虛擬機調度方法還包括:
步驟S60,監測備用虛擬機資源,判斷所述備用虛擬機資源是否充足;
步驟S70,當所述備用虛擬機資源不足時,創建新的虛擬機,將所述新的虛擬機設置為備用虛擬機;
步驟S80,當所述備用虛擬機資源充足時,繼續監測所述備用虛擬機資源。
將云計算應用系統的資源池初始化,當在初始化時,啟動一個并行的守護進程,進行實時或定時監控所述資源池中的備用虛擬機資源,判斷所述備用虛擬機資源是否充足。當所述資源池的備用虛擬機資源不足時,如當資源池中的備用虛擬機資源全部都已經被云計算應用使用,且所述被云計算應用的備用虛擬機資源的內存利用率已達50%,判斷所述資源池中云計算應用的備用虛擬機資源不足。這時將調用云計算應用系統中的虛擬機創建接口,自動根據所述云計算應用的服務模板信息動態創建出新的虛擬機,云計算應用服務器的系統基礎環境全部通過腳本自動配置完成。調用所述云計算應用系統的應用部署接口,上傳所述部署包到所述虛擬機上,并遠程執行應用部署腳本和配置,并將所述虛擬機設置為所述云計算應用的備用虛擬機資源。調用所述云計算應用系統性能采集配置接口,將性能采集信息以及監控代理腳本上傳到所述備用虛擬機上,并遠程啟動守護進程,定時或實時監測各個云計算應用在其備用虛擬機中的運行數據。當所述備用虛擬機資源充足時,繼續監測所述云計算的備用虛擬機資源。
本實施例通過監測備用虛擬機資源,實現動態增加所述備用虛擬機資源。
參照圖5,圖5為本發明虛擬機調度方法的第四實施例的流程示意圖。基于第一、第二或第三實施例提出本發明虛擬機調度方法的第四實施例,在本實施例中,所述虛擬機調度方法還包括::
步驟S90,定時對備用虛擬機資源進行調度。
當云計算應用系統所采用的資源調度策略為定時調度時,確定所述云計算應用調度備用虛擬機資源的時間,并監測所述云計算應用系統的當前時間,判斷所述當前時間是否是所述調度備用虛擬機資源的時間,當所述當前時間是調度所述備用虛擬機資源的時間時,對所述備用虛擬機資源進行調度,當所述當前時間不是調度所述備用虛擬機資源的時間時,繼續監測所述云計算應用系統的當前時間。如確定所述云計算應用啟動備用虛擬機資源的時間為當前時間的10天之后,回收所述備用虛擬機資源的時間為當前時間的15天后。如果當前時間為2015年4月5號8時,則所述云計算應用啟動所述備用虛擬機資源的時間為2015年4月15號8時,回收所述備用虛擬機資源的時間為2015年4月20號8時。監測所述云計算應用的當前時間,如果監測到所述云計算應用的當前時間為2015年4月15號14時時,啟動所述備用虛擬機資源,如果監測到所述云計算應用的當前時間為2015年4月20號14時時,回收所述備用虛擬機資源;如監測到所述云計算應用的當前時間為2015年4月11號14時時,則繼續監測所述云計算應用系統的當前時間。
本實施例通過在所述云計算應用使用定時調度策略調度備用虛擬機資源,快速提升云計算應用系統的響應能力,解決了用戶量不均衡的情況下,服務器癱瘓的問題。
本發明進一步提供一種虛擬機調度裝置。
參照圖6,圖6為本發明虛擬機調度裝置的第一實施例的功能模塊示意圖。
在本實施例中,所述裝置包括:
監測模塊10,用于監測各個虛擬機的運行數據;
判斷模塊20,用于判斷所述運行數據是否超出預設的參數區間;
調度模塊30,用于當所述運行數據超出預設的參數區間時,根據所述運行數據調度備用虛擬機資源。
云計算應用的服務器中含有監聽器,通過所述監聽器定時監測各個虛擬機運行數據,即定時或實時監測所述各個虛擬機運行數據,所述運行數據包括但不限于CPU利用率、內存使用率等。判斷所述運行數據是否超過預設的參數區間。如果連續N個采樣周期,某個虛擬機運行數據都超過其預設的參數區間,則判斷所述虛擬機運行數據超過預設的參數區間。采樣周期個數和采樣時間間隔可以根據所述虛擬機的配置和需要設置,如根據自身的性能調優結果,設置合適的采樣周期個數和采樣時間間隔。在本實施例中,優選地,設置采樣周期個數為3個,采樣時間間隔為5秒。即虛擬機每隔5秒進行一次采樣,在連續3個采樣周期內采集到的所述虛擬機CPU利用率都超過90%時,判斷所述虛擬機CPU利用率超過預設的參數區間的上限值,發出告警信號。接收到所述告警信號后,生成云計算應用的性能告警事件,根據所述告警事件的類型和所述云計算應用設置的調度策略,即根據所述事件調度策略對所述云計算應用中的備用虛擬機資源進行調度。如當所述云計算應用的用戶量達到一個高峰,即所述云計算應用所在的虛擬機已達到性能高峰時,將從云計算應用系統的資源池中調度可用的備用虛擬機資源,以供所述云計算應用的用戶量分到其它虛擬機中,使所述虛擬機運行數據在一個正常的范圍內;如果所述云計算應用所在的虛擬機達到了性能低谷,如所述虛擬機每隔5秒進行一次采樣,在連續3個采樣周期內采集到的所述虛擬機CPU利用率都低過10%時,判斷所述虛擬機CPU利用率低于預設的參數區間的下限值,即所述云計算應用所在的虛擬機性能達到低谷,則將所述備用虛擬機資源進行回收。同時,調用所述云計算應用中的負載均衡器的配置接口,通過所述負載均衡器的配置接口,發起負載均衡動態配置請求,更新所述云計算應用的負載均衡配置。即根據所述云計算應 用所在的備用虛擬機IP地址、端口以及上下文等信息,動態更改所述云計算應用的負載均衡器配置信息,使所述云計算應用可以使用所述備用虛擬機資源。
本實施例通過監測各個虛擬機的運行數據,判斷所述運行數據是否超出預設的參數區間;當所述運行數據超出預設的參數區間時,根據所述運行數據調度備用虛擬機資源。通過虛擬化和應用集群技術,快速提升云計算應用系統的響應能力,解決了用戶量不均衡的情況下,服務器癱瘓的問題,實現動態調度虛擬機資源。
參照圖7,圖7為本發明虛擬機調度裝置的第二實施例的功能模塊示意圖。基于第一實施例提出本發明虛擬機調度裝置第二實施例,在本實施例中,所述虛擬機調度裝置還包括:
獲取模塊40,用于獲取待安裝云計算應用的安裝包;
安裝模塊50,用于基于所述安裝包將所述待安裝云計算應用安裝至相應的虛擬機;
配置模塊60,用于采用更新后的配置信息配置所述云計算應用的虛擬機。
具體地,參照圖8,所述安裝模塊50包括:
獲取單元51,用于獲取未安裝云計算應用的虛擬機作為可用虛擬機;
安裝單元52,用于基于所述安裝包將所述待安裝云計算應用安裝至所述可用虛擬機。
獲取待安裝云計算應用的安裝包,即上傳所述云計算應用的部署包,并設置動態調度策略。所述動態調度策略包括但不限于定時調度策略和事件調度策略。所述定時調度策略,即以時間為單位進行虛擬機資源調度,如可以設置按月或天進行定時調度,如設置按10天為單位進行虛擬機資源調度,即所述云計算應用每隔10天就自動進行虛擬機資源調度。所述事件調度策略,可以設置CPU的利用率、內存使用率以及端口并發連接數等閾值,通過監測所述云計算應用的虛擬機資源使用情況,根據不同的閾值,動態調用所述云計算應用的備 用虛擬機資源,如所述云計算應用當前所在的虛擬機內存使用率已達87%,而所述內存使用率的閾值是85%,在這種情況下,就要調用所述備用虛擬機資源,減輕所述云計算應用所在虛擬機內存負擔。
獲取未安裝云計算應用的虛擬機作為可用虛擬機,基于所述安裝包將所述待安裝云計算應用安裝至所述可用虛擬機。即發布所述云計算應用之后,向所述云計算應用系統發起應用部署請求,即安裝所述云計算應用的請求,當接收到所述請求之后,將所述部署包上傳到所述云計算應用系統中,并遠程執行所述部署包的應用部署和配置腳本,完成所述云計算應用的部署,即完成所述云計算應用的安裝。
當完成對所述云計算應用的安裝之后,調用所述負載均衡器的配置接口,根據所述可用的云計算應用的部署的相關信息,動態更改所述可用云計算的負載均衡配置信息。所述相關信息包括但不限于云計算應用的部署的服務器的IP地址、端口以及上下文信息。當動態更改所述可用云計算的負載均衡配置信息之后,發起性能的采集請求,遠程登陸到虛擬機系統中,啟動所述云計算應用的監控代理的守護進程,定時監測所述虛擬機運行指標。
進一步地,所述調度模塊30,還用于定時對備用虛擬機資源進行調度。
當云計算應用系統所采用的資源調度策略為定時調度時,確定所述云計算應用調度備用虛擬機資源的時間,并監測所述云計算應用系統的當前時間,判斷所述當前時間是否是所述調度備用虛擬機資源的時間,當所述當前時間是調度所述備用虛擬機資源的時間時,對所述備用虛擬機資源進行調度,當所述當前時間不是調度所述備用虛擬機資源的時間時,繼續監測所述云計算應用系統的當前時間。如確定所述云計算應用啟動備用虛擬機資源的時間為當前時間的10天之后,回收所述備用虛擬機資源的時間為當前時間的15天后。如果當前時間為2015年4月5號8時,則所述云計算應用啟動所述備用虛擬機資源的時間為2015年4月15號8時,回收所述備用虛擬機資源的時間為2015年4月20號8時。監測所述云計算應用的當前時間,如果監測到所述云計算應用的當前時間為2015年4月15號14時時,啟 動所述備用虛擬機資源,如果監測到所述云計算應用的當前時間為2015年4月20號14時時,回收所述備用虛擬機資源;如監測到所述云計算應用的當前時間為2015年4月11號14時時,則繼續監測所述云計算應用系統的當前時間。
本實施例通過部署云計算應用至虛擬機中,實現了自動部署和配置云計算應用,提高云計算應用部署的效率。并通過在所述云計算應用使用定時調度策略調度備用虛擬機資源,快速提升云計算應用系統的響應能力,解決了用戶量不均衡的情況下,服務器癱瘓的問題。
參照圖9,圖9為本發明虛擬機調度裝置的第三實施例的功能模塊示意圖。基于第一或第二實施例提出本發明虛擬機調度方法的第三實施例,在本實施例中,所述監測模塊10,還用于監測備用虛擬機資源;所述判斷模塊20,還用于判斷所述備用虛擬機資源是否充足;所述虛擬機調度裝置還包括創建模塊70,用于當所述備用虛擬機資源不足時,創建新的虛擬機,將所述新的虛擬機設置為備用虛擬機;所述監測模塊10,還用于當所述備用虛擬機資源充足時,繼續監測所述備用虛擬機資源。
將云計算應用系統的資源池初始化,當在初始化時,啟動一個并行的守護進程,進行實時或定時監控所述資源池中的備用虛擬機資源,判斷所述備用虛擬機資源是否充足。當所述資源池的備用虛擬機資源不足時,如當資源池中的備用虛擬機資源全部都已經被云計算應用使用,且所述被云計算應用的備用虛擬機資源的內存利用率已達50%,判斷所述資源池中云計算應用的備用虛擬機資源不足。這時將調用云計算應用系統中的虛擬機創建接口,自動根據所述云計算應用的服務模板信息動態創建出新的虛擬機,云計算應用服務器的系統基礎環境全部通過腳本自動配置完成。調用所述云計算應用系統的應用部署接口,上傳所述部署包到所述虛擬機上,并遠程執行應用部署腳本和配置,并將所述虛擬機設置為所述云計算應用的備用虛擬機資源。調用所述云計算應用系統性能采集配置接口,將性能采集信息以及監控代理腳本上傳到所述備用虛擬機上,并遠程啟動守護進程,定 時或實時監測各個云計算應用在其備用虛擬機中的運行數據。當所述備用虛擬機資源充足時,繼續監測所述云計算的備用虛擬機資源。
本實施例通過監測備用虛擬機資源,實現動態增加所述備用虛擬機資源。
上述本發明實施例序號僅僅為了描述,不代表實施例的優劣。通過以上的實施方式的描述,本領域的技術人員可以清楚地了解到上述實施例方法可借助軟件加必需的通用硬件平臺的方式來實現,當然也可以通過硬件,但很多情況下前者是更佳的實施方式。基于這樣的理解,本發明的技術方案本質上或者說對現有技術做出貢獻的部分可以以軟件產品的形式體現出來,該計算機軟件產品存儲在一個存儲介質(如ROM/RAM、磁碟、光盤)中,包括若干指令用以使得一臺終端設備(可以是手機,計算機,服務器,或者網絡設備等)執行本發明各個實施例所述的方法。
以上僅為本發明的優選實施例,并非因此限制本發明的專利范圍,凡是利用本發明說明書及附圖內容所作的等效結構或等效流程變換,或直接或間接運用在其他相關的技術領域,均同理包括在本發明的專利保護范圍內。