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