一種負載分擔的方法和裝置的制造方法
【技術領域】
[0001]本發明涉及通信技術領域,尤其涉及一種負載分擔的方法和裝置。
【背景技術】
[0002]隨著數據中心業務日益增加,用戶需求不斷提高,數據中心的規模和功能日趨復雜,管理難度越來越高,因此,對數據中心資源進行虛擬化,成為目前數據中心整合的重要趨勢。虛擬化技術通過對物理資源和提供的服務進行抽象化,讓資源使用者和系統管理者不關心對象的物理特征和服務邊界的細節,從而降低資源使用和管理的復雜度,提高使用效率。因而,對數據中心的虛擬化能夠提高數據中心的資源利用率,并降低系統的能耗。進一步的,通過專用的虛擬化軟件可以將一臺物理服務器虛擬出多臺虛擬機,每個虛擬機獨立運行,互不影響,都有自己的操作系統、應用程序和硬件環境。
[0003]當虛擬機對外提供應用時,如果有大量用戶需要訪問該應用,則提供該應用的虛擬機可能無法滿足大量用戶的訪問需求,因此,需要增加提供該應用的虛擬機的數量。而且,如果訪問該應用的用戶數量較少時,如果有大量的虛擬機均提供該應用,則會浪費虛擬機的資源,因此,需要減少提供該應用的虛擬機的數量。基于此,需要知道何時增加提供該應用的虛擬機的數量,以及何時減少提供該應用的虛擬機的數量,從而動態調整虛擬機的數量。
【發明內容】
[0004]本發明提供一種負載分擔的方法,業務虛擬機組內包括多個虛擬機,且業務虛擬機組內的虛擬機用于提供同一應用,所述方法包括以下步驟:
[0005]獲得所述業務虛擬機組中的每個虛擬機的應用信息和性能信息;
[0006]利用所述業務虛擬機組中的每個虛擬機的應用信息和性能信息,對所述業務虛擬機組中的虛擬機進行動態資源擴展DRX處理;
[0007]利用負載均衡算法,在DRX處理之后的所述業務虛擬機組中的各虛擬機之間,對訪問所述應用的用戶訪問請求報文進行負載分擔。
[0008]本發明提供一種負載分擔的裝置,業務虛擬機組內包括多個虛擬機,且業務虛擬機組內的虛擬機用于提供同一應用,所述裝置具體包括:獲得模塊,用于獲得所述業務虛擬機組中的每個虛擬機的應用信息和性能信息;
[0009]處理模塊,用于利用所述業務虛擬機組中的每個虛擬機的應用信息和性能信息,對所述業務虛擬機組中的虛擬機進行動態資源擴展DRX處理;
[0010]負載模塊,用于利用負載均衡算法,在DRX處理之后的所述業務虛擬機組中的各虛擬機之間,對訪問所述應用的用戶訪問請求報文進行負載分擔。
[0011]基于上述技術方案,本發明實施例中,通過配置包括多個虛擬機的業務虛擬機組,并且業務虛擬機組內的虛擬機提供同一應用,從而可以利用業務虛擬機組中的每個虛擬機的應用信息和性能信息對業務虛擬機組中的虛擬機進行DRX(Dynamic Resourceextens1n,動態資源擴展)處理,當有大量用戶需要訪問該應用時,可以增加提供該應用的虛擬機的數量,以滿足大量用戶的訪問需求,增強處理能力;當需要訪問該應用的用戶數量減少時,可以減少提供該應用的虛擬機的數量,以回收虛擬機的資源。上述方式通過動態調整虛擬機的數量,提高了資源利用率,并可以合理的利用虛擬機的資源。
【附圖說明】
[0012]圖1是本發明一種實施方式中的負載分擔的方法的流程圖;
[0013]圖2是本發明一種實施方式中的負載分擔設備的硬件結構圖;
[0014]圖3是本發明一種實施方式中的負載分擔的裝置的結構圖。
【具體實施方式】
[0015]針對現有技術中存在的問題,本發明實施例中提出一種負載分擔的方法,該方法應用于包括多個虛擬機的系統中。虛擬機是物理服務器上虛擬化的邏輯的虛擬機,不同的虛擬機可以位于相同的物理服務器上,也可以位于不同的物理服務器上。通過DRX技術,可以將多個虛擬機添加到一個業務虛擬機組中。基于此,業務虛擬機組內包括多個虛擬機,且業務虛擬機組內的虛擬機可用于提供同一應用。例如,業務虛擬機組內的多個虛擬機均用于對外提供網頁應用,或業務虛擬機組內的多個虛擬機均用于對外提供郵箱應用等。
[0016]在上述應用場景下,如圖1所示,該負載分擔的方法具體包括以下步驟:
[0017]步驟101,獲得業務虛擬機組中的每個虛擬機的應用信息和性能信息。
[0018]步驟102,利用業務虛擬機組中的每個虛擬機的應用信息和性能信息,對業務虛擬機組中的虛擬機進行DRX (動態資源擴展)處理。
[0019]步驟103,利用負載均衡算法,在DRX處理之后的業務虛擬機組中的各虛擬機之間,對訪問應用的用戶訪問請求報文進行負載分擔。
[0020]本發明實施例中,可以啟動定時任務,該定時任務用于周期性的執行上述負載分擔的方法,即每隔一段時間,執行上述步驟101-步驟103,對業務虛擬機組中的虛擬機進行DRX處理,以下結合一次執行過程進行說明。
[0021]本發明實施例中,性能信息具體包括但不限于CPU (Central Processing Unit,中央處理器)利用率和/或內存利用率。應用信息具體包括但不限于應用運行狀態和應用指標,應用運行狀態具體可以為可用狀態或者不可用狀態。
[0022]當然,性能信息并不局限于CPU利用率和/或內存利用率,還可以包括吞吐率、帶寬利用率等其它性能信息,為了方便描述,本發明實施例的后續過程中,以性能信息包括CPU利用率和/或內存利用率為例進行說明。
[0023]在一種DRX技術中,通過將多個虛擬機添加到一個業務虛擬機組中,定時檢測業務虛擬機組中的各虛擬機的CPU利用率和內存利用率。如果所有虛擬機的CPU利用率和內存利用率均小于預設閾值,則減少業務虛擬機組中的虛擬機數量,如果有虛擬機的CPU利用率和/或內存利用率大于預設閾值,則增加業務虛擬機組中的虛擬機數量。基于此,在只利用業務虛擬機組中的每個虛擬機的性能信息(如CPU利用率和/或內存利用率)對業務虛擬機組中的虛擬機進行DRX處理時,則會出現如下情況:1、雖然所有虛擬機的CPU利用率和內存利用率均小于預設閾值,但是可能有虛擬機已經無法在處理訪問應用的用戶訪問請求報文,其原因是該虛擬機上可能有大量的用戶訪問請求報文待處理,在此情況下,如果減少業務虛擬機組中的虛擬機數量,則分配到該虛擬機上的用戶訪問請求報文會更多,即更多的用戶訪問請求報文無法被及時處理。2、雖然有虛擬機的CPU利用率和/或內存利用率大于預設閾值,但是可能有虛擬機上只處理很少的用戶訪問請求報文,該虛擬機有大量的資源還可以使用,在此情況下,如果增加業務虛擬機組中的虛擬機數量,則分配到該虛擬機上的用戶訪問請求報文會更少,浪費了虛擬機的資源。
[0024]針對上述發現,本發明實施例中,在對業務虛擬機組中的虛擬機進行DRX處理時,會綜合考慮業務虛擬機組中的每個虛擬機的應用信息(如應用運行狀態和應用指標)和性能信息(如CPU利用率和/或內存利用率),對業務虛擬機組中的虛擬機進行DRX處理。為了實現這一 DRX處理過程,需要先統計出業務虛擬機組中的每個虛擬機的應用信息和性能
?目息O
[0025]其中,在業務虛擬機組中的每個虛擬機的使用過程中,可以直接統計出該虛擬機的性能信息(如CPU利用率和/或內存利用率)。
[0026]其中,針對業務虛擬機組中的每個虛擬機,通過檢測虛擬機對外是否能夠提供相應應用,確定該虛擬機的應用運行狀態為可用狀態或者不可用狀態。當虛擬機對外不能夠提供相應應用時,則確定該虛擬機的應用運行狀態為不可用狀態。當虛擬機對外能夠提供相應應用時,則確定該虛擬機的應用運行狀態為可用狀態。例如,針對網頁應用(Web應用),在虛擬機處理用戶訪問請求報文的過程中,如果虛擬機向指定的URL(UniformResource Locator,統一資源定位符)頁面發送 HTTP (Hyper Text Transfer Protocol,超文本傳輸協議)請求時,能夠收到狀態碼為200的HTTP響應(狀態碼200的響應代表請求已成功),則認為該虛擬機對外能夠提供網頁應用,確定該虛擬機的應用運行狀態為可用狀態。如果虛擬機向指定的URL頁面發送HTTP請求時,能夠收到狀態碼為404的HTTP響應(狀態碼404的響應代表頁面不存在),或者在最大超時時間范圍內沒有收到任何HTTP響應,則認為該虛擬機對外不能夠提供網頁應用,確定該虛擬機的應用運行狀態為不可用狀
??τ O
[0027]進一步的,在虛擬機的應用運行狀態為可用狀態時,還可以檢測該虛擬機的應用指標。其中,該應用指標可以根據實際經驗任意配置,這些應用指標用于表示該應用的健康狀況。例如,針對網頁應用,則可以配置應用指標為當前連接Sess1n(會話)個數、連接響應時間等。針對Apache應用,則可以配置應用指標為每次請求字節數、每秒請求數、每秒請求字節數等。
[0028]本發明實施例中,利用業務虛擬機組中的每個虛擬機的應用信息和性能信息,對業務虛擬機組中的虛擬機進行DRX處理的過程,具體可以包括但不限于如下方式:如果業務虛擬機組中有虛擬機的應用運行狀態為不可用狀態,則對該虛擬機進行重啟處理,或者對該虛擬機進行關閉處理。或者,如果業務虛擬機組中有多個虛擬機(如所有虛擬機)的應用運行狀態為可用狀態,且這多個虛擬機中的每個虛擬機的應用指標均小于預設第一閾值,性能信息均小于預設第二閾值,