專利名稱:一種虛擬化集群系統(tǒng)負載平衡方法、裝置及系統(tǒng)的制作方法
技術領域:
本發(fā)明涉及電子通信技術領域,具體涉及一種虛擬化集群系統(tǒng)負載平衡方法、裝置及系統(tǒng)。
背景技術:
系統(tǒng)級虛擬化是在計算機硬件和操作系統(tǒng)之間增加虛擬機監(jiān)控器(VMM,Virtual Machine Monitor),以解除計算機硬件和計算機操作系統(tǒng)之間的直接依賴關系,這里的虛擬機監(jiān)控器為一計算機硬件平臺虛擬化的軟件,通過虛擬機監(jiān)控器,可以在同一計算機上運行多個虛擬機實例,每個虛擬機上具有相應的機器名、獨立的虛擬網(wǎng)絡地址,且每個虛擬才幾上的用戶管理相互獨立,使用分配的部分設備資源。將具有獨立運算存儲能力的硬件設備(如包括CPU、內存、硬盤等硬件資源的計算機)看作一個物理節(jié)點,由多個物理節(jié)點組成的集群稱為虛擬化集群系統(tǒng),為有效管理虛擬化集群系統(tǒng)中的多個物理節(jié)點以及每個物理節(jié)點上的多個虛擬機,需要相應的集群負載平衡技術。虛擬化集群系統(tǒng)的負載平衡技術包括同 一物理節(jié)點上虛擬機間的負載平衡、虛擬化集群系統(tǒng)中多個物理節(jié)點間的負載平衡等。
現(xiàn)有技術一般采用基于效率損失的平衡算法,針對一臺虛擬機,效率損失定義為其可以完成最大效率與其當前實際完成效率的差值,其中,最大效率是該虛擬機在所有物理節(jié)點上執(zhí)行可能獲得的最大效率;當前效率是指其所在當前物理節(jié)點上的效率。負載平衡的目標是使得虛擬機間效率損失的差異最小。
發(fā)明人在實現(xiàn)本發(fā)明過程中發(fā)現(xiàn),基于效率損失的平衡算法至少存在以下缺點
在計算效率損失時需要全部虛擬機參與,進行全局計算,因此確定遷移虛擬機及其遷移到的目的物理節(jié)點的開銷較大。
發(fā)明內容
本發(fā)明實施例在于提供一種虛擬化集群系統(tǒng)負載平衡方法、裝置及系統(tǒng), 以降低在實現(xiàn)虛擬化集群系統(tǒng)負載平衡時所需的開銷。
本發(fā)明實施例是通過以下技術方案實現(xiàn)的
本發(fā)明實施例提供了 一種虛擬化集群系統(tǒng)負載平衡方法,包括如下步驟
獲取虛擬化集群系統(tǒng)中物理節(jié)點中虛擬機的負載信息,所述負載信息包 括所述虛擬機的CPU使用率和內存使用大??;
根據(jù)所述負載信息在第一時刻得到第一負載信息,根據(jù)所述第一負載信 息調整所述物理節(jié)點中虛擬機的CPU使用率和內存使用大??;
根據(jù)所述負載信息在第二時刻得到第二負載信息,根據(jù)所述第二負載信 息調整所述虛擬化集群系統(tǒng)中所述物理節(jié)點間虛擬機的遷移。
本發(fā)明實施例還提供了 一種虛擬化集群系統(tǒng)負載平衡裝置,包括
負載信息獲取單元,用于獲取虛擬化集群系統(tǒng)中物理節(jié)點中虛擬機的負 載信息,所述負載信息包括所述虛擬機的CPU使用率和內存使用大小;
局部負載平衡單元,用于根據(jù)所述負載信息在第一時刻得到的第一負載 信息,根據(jù)所述第一負載信息調整所述物理節(jié)點中虛擬機的CPU使用率和內 存使用大?。?br>
全局負載平衡單元,用于根據(jù)所述負載信息在第二時刻得到第二負載信 息,根據(jù)所述第二負載信息調整所述虛擬化集群系統(tǒng)中所述物理節(jié)點間虛擬 才幾的遷移。
以及,本發(fā)明實施例還提供了一種虛擬化集群系統(tǒng)負載平衡系統(tǒng),包括 物理節(jié)點,管理節(jié)點,所述管理節(jié)點為具有管理功能的物理節(jié)點; 所述物理節(jié)點包括虛擬機監(jiān)控器,用于在所述物理節(jié)點上運行虛擬機; 所述虛擬機監(jiān)控器還用于獲取虛擬化集群系統(tǒng)中所述物理節(jié)點中虛擬
機的負載信息,所述負載信息包括所述虛擬機的CPU使用率和內存使用大??; 所述物理節(jié)點還包括局部調度器,用于根據(jù)所述負載信息在第一時刻得
到第一負載信息,根據(jù)所述第一負載信息調整所述物理節(jié)點中虛擬機的CPU
使用率和內存使用大??;
所述管理節(jié)點包括全局調度器,用于根據(jù)所述負載信息在第二時刻得到第二負載信息,根據(jù)所述第二負載信息調整所述虛擬化集群系統(tǒng)中所述物理 節(jié)點間虛擬^/L的遷移。
在本發(fā)明實施例中,采用包括局部調度和全局調度的二級調度策略,可 以避免出現(xiàn)負載在物理節(jié)點范圍內的分配不均和在整個虛擬化集群系統(tǒng)中物 理節(jié)點間的分配不均現(xiàn)象,并可以降低實現(xiàn)虛擬化集群系統(tǒng)負載平衡時所需 的開銷,從而更好地實現(xiàn)虛擬化集群系統(tǒng)平衡的高效性和高吞吐率。
為了更清楚地說明本發(fā)明實施例或現(xiàn)有技術中的技術方案,下面將對實 施例或現(xiàn)有技術描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面 描述中的附圖僅僅是本發(fā)明的一些實施例,對于本領域普通技術人員來講, 在不付出創(chuàng)造性勞動性的前提下,還可以根據(jù)這些附圖獲得其他的附圖。
圖1為本發(fā)明實施例虛擬化集群系統(tǒng)結構示意圖2為本發(fā)明方法實施例虛擬化集群系統(tǒng)負載平衡方法流程圖3為本發(fā)明方法實施例虛擬化集群系統(tǒng)局部調度示意圖4為本發(fā)明方法實施例虛擬化集群系統(tǒng)全局調度示意圖5為本發(fā)明裝置實施例虛擬化集群系統(tǒng)負載平衡裝置結構示意圖6為本發(fā)明系統(tǒng)實施例虛擬化集群系統(tǒng)負載平衡系統(tǒng)結構示意圖。
具體實施例方式
下面將結合本發(fā)明實施例中的附圖,對本發(fā)明實施例中的技術方案進行 清楚、完整地描述,顯然,所描述的實施例僅僅是本發(fā)明一部分實施例,而 不是全部的實施例?;诒景l(fā)明中的實施例,本領域普通技術人員在沒有作 出創(chuàng)造性勞動前提下所獲得的所有其他實施例,都屬于本發(fā)明保護的范圍。
在虛擬化集群系統(tǒng)中,包含有多個物理節(jié)點,其中包括具有管理功能的 管理節(jié)點和不具有管理功能的物理節(jié)點(為描述方便,下文中出現(xiàn)的物理節(jié) 點如無特別說明都表示不具有管理功能的物理節(jié)點)。每個物理節(jié)點都包括虛 擬機監(jiān)控器,通過虛擬機監(jiān)控器可以運行多個虛擬機;每個物理節(jié)點還包括 局部調度器,局部調度器用來實現(xiàn)局部調度策略,即對物理節(jié)點內CPU和內存進行動態(tài)分配。管理節(jié)點包括全局調度器,用于實現(xiàn)全局調度策略,即在 物理節(jié)點間實現(xiàn)虛擬機動態(tài)遷移。局部調度器根據(jù)虛擬機監(jiān)控器提供的各虛擬機使用CPU和內存情況,定 期地調整該物理節(jié)點中虛擬才幾間的CPU和內存的分配,以實現(xiàn)該物理節(jié)點局 部負載平衡,即確保不出現(xiàn)某些虛擬機CPU使用率和內存使用過高、而某些 虛擬機CPU使用率和內存使用過低的不均衡情況。全局調度器根據(jù)局部調度器提供的對應物理節(jié)點上虛擬機CPU和內存的使用狀況,計算每個虛擬機的開銷,及遷移后的開銷,判定是否需要進行虛 擬機的遷移,并發(fā)起相應的虛擬機在物理節(jié)點上的遷移,以達到在所有物理 節(jié)點上的全局平衡負載目的。以管理虛擬化集群系統(tǒng)中CPU和內存資源在不同虛擬機間的分配,實現(xiàn)虛擬化集群系統(tǒng)的負載平衡。以下通過附圖對本發(fā)明方法實施例作具體描述參見圖1,為本發(fā)明實施例一種虛擬化集群系統(tǒng)結構框圖。如圖l所示, 虛擬化集群系統(tǒng)包括多個節(jié)點,包括具有管理功能的管理節(jié)點和其它沒有管 理功能的物理節(jié)點,如物理節(jié)點l、物理節(jié)點n等等,上述管理功能包括創(chuàng)建 或終止其它虛擬機;或者對其它虛擬機的CPU、內存的分配進行管理等。所述沒有管理功能的物理節(jié)點(為描述方法,如果下文中沒特別指出, 物理節(jié)點都指沒有管理功能的物理節(jié)點)包括虛擬機監(jiān)控器,虛擬機監(jiān)控器 上可以運行多個虛擬才幾,如圖1所示,物理節(jié)點1包括虛擬才幾11、虛擬機12、 虛擬機ln等等。在多個虛擬機,具有管理功能的虛擬機包括局部調度器,如 圖1中的虛擬機ll、虛擬機nl等,局部調度器用于調整該物理節(jié)點中虛擬機 間的CPU和內存的分配。所述具有管理功能的物理節(jié)點包括全局調度器,用于負責調整虛擬化集 群系統(tǒng)中,虛擬機在多個物理節(jié)點的遷移。在另 一實施例中,管理節(jié)點也可以包括虛擬機監(jiān)控器和/或局部調度器, 通過虛擬機監(jiān)控器運行多個虛擬機,其局部和全局調度策略與不具有管理功 能的物理節(jié)點類似,在此不再贅述。局部調度器用于實現(xiàn)局部調度策略,全局調度器用于實現(xiàn)全局調度策略, 通過局部調度器和全局調度器的協(xié)同配合,可以實現(xiàn)虛擬化集群系統(tǒng)的負載 平衡。
參見圖2,本發(fā)明實施例包括以下步驟
51. 獲取虛擬化集群系統(tǒng)中物理節(jié)點中虛擬機的負載信息,所述負載信息 包括所述虛擬機的CPU和內存使用信息;
52. 根據(jù)所述負載信息在第一時刻得到第一負載信息,根據(jù)所述第一負載 信息調整所述物理節(jié)點中虛擬機的CPU使用率和內存使用大?。?br>
53. 根據(jù)所述負載信息在第二時刻得到第二負載信息,根據(jù)所述第二負載 信息調整所述虛擬化集群系統(tǒng)中所述物理節(jié)點間虛擬機的遷移。
下面分別對以上幾個步驟進行詳細說明
51. 獲取虛擬化集群系統(tǒng)中物理節(jié)點中虛擬機的負載信息,所述負載信息 包括所述虛擬機的CPU和內存使用信息
在S1步驟中,獲取物理節(jié)點中虛擬機的負載信息的步驟由物理節(jié)點中的 局部調度器來完成。局部調度器在虛擬化集群系統(tǒng)運行時不間斷地收集物理 節(jié)點中虛擬機的負載信息,包括各虛擬機的CPU和內存使用信息,包括但不 僅限于CPU空閑時間、CPU等待時間、CPU負載等,以及內存缺頁率,物 理內存使用大小或使用率、虛擬內存使用大小或使用率等。
52. 根據(jù)所述負載信息在第一時刻得到第一負載信息,才艮據(jù)所述第一負載 信息調整所述物理節(jié)點中虛擬機的CPU使用率和內存使用大小
步驟S2也可稱為局部調度過程,由局部調度器來完成,局部調度器在一 定時刻都會將上述負載信息轉化為第一負載信息(也可稱為局部負載信息), 第一負載信息主要包括CPU使用率和內存使用大小。在本發(fā)明實施例中,每 隔時間間隔T1都會將負載信息轉化為第一負載信息,并調整物理節(jié)點中虛擬 機的CPU使用率和內存使用大小。這里的T1取值并不唯一,針對不同的虛 擬化集群系統(tǒng),可以4艮據(jù)實際情況對T1進行調整,^f旦時間間隔不能過大,一 般是分鐘級。如在本發(fā)明實施例中將T1取值為2分鐘,3分鐘,或者5分鐘 等等。在另一實施例當中,用戶也可以每隔不同的時間間隔來對物理節(jié)點中
13的虛擬機進行調整,但每個不同的時間間隔也不宜取過大, 一般也取分鐘級,如先隔2分鐘進行一次調整,再隔3分鐘進行一次調整,繼而再隔1分鐘進 行一次調整。也可以根據(jù)虛擬化集群系統(tǒng)的特點來進行調整,如虛擬化集群 系統(tǒng)應用于Web服務器時,如果某一時段業(yè)務比較繁忙,信息量較大,此時 需要作大量的負載平衡,則可將這個時間段的間隔設得小一些,如l分鐘等; 相反,如果某一時段沒有業(yè)務,無需作過多的負載平衡,則可將這個時間段 的間隔值設得大一些,如10分鐘,或15分鐘等。上述將負載信息轉化為第 一 負載信息為本領域技術人員所公知的技術 (如在某些具體的虛擬化集群系統(tǒng)中,相關硬件資源會自動完成這種轉化, 局部調度器直接讀取轉化結果就可獲得第一負載信息),在此不再贅述。為了便于描述,第一負載信息中的CPU使用率用標志位cpu一usage來表 示,第一負載信息中的內存使用大小用mem一usage來表示。局部調度器得到上述第一負載信息中的CPU使用率(cpu一usage)和內存 使用大小(mem一usage)后通過下面步驟來調整物理節(jié)點中虛擬4幾的CPU使 用率和內存使用大小,參見圖3,以調整CPU使用率為例,包括如下步驟S21.將第一負載信息與閾值作對比,確定需要調整的虛擬機;將第一負載信息中的CPU使用率(cpu—usage)和內存使用大小 (mem—usage)與預設的閾值作對比,所述預設的閾值包括CPU使用率最大 值cpu—Max、 CPU 4吏用率最小值cpu—Min;內存最大值mem一Max和內存最 小值mem一Min。當 一臺虛擬機CPU使用率高于閾值cpu—Max時,則該虛擬 機CPU負載過重,需要減少其CPU資源;當某虛擬機CPU使用率低于閾值 cpi^Min時,則該虛擬機CPU負載過輕,需要增加其CPU資源。同理,當某 臺虛擬機的內存使用大小大于閾值mem—Max時,則該虛擬機內存負載過大, 需要減少其內存使用資源;當某臺虛擬機的內存使用大小小于閾值mem—Min 時,則該虛擬機內存負載過小,需要增加其內存使用資源。上述預設閾值限定了 CPU使用率和內存使用的最大和最小值,超過最大 值或低于最小值時,可認為該虛擬機處于不均衡狀態(tài)。這些預設閾值可通過 實驗或經(jīng)驗得到,如先設定一個閾值,然后通過運行系統(tǒng)得到相應的運行結 果,根據(jù)這個結果再調整相應的閾值,直到找出一個合理的閾值。預設閾值并不唯一固定,用戶可以根據(jù)實際系統(tǒng)的應用情況對閾值不斷調整,如硬件
配置較好的物理節(jié)點可以將其cpu—Max調得稍大點,配置較低的物理節(jié)點可 以將其cpu—Max調得稍小點。
當一臺虛擬機的CPU使用率大于閾值cpu—Max時,計算該虛擬機的標志 位max—flag_cpu,若該臺虛擬機的CPU使用率低于閾值cpu—Min時,計算該 虛擬機的標志位min一flag一cpu;若該臺虛擬機的內存l吏用高于mem—Max時, 計算該虛擬機的標志位max—flag_mem ,若該臺虛擬機的內存使用低于 mem Min時,計算該虛擬機的標志位 min—flag—mem 。
計算虛擬才幾的才示志4立max—flag—cpu 、 min—flag—cpu 、 max—flag—mem 、 min—flag—mem方法如下
針對虛擬才幾VM_i ( i殳i為該虛擬才幾的編號) 如果其CPU使用率大于CPU最大值cpu—Max,則
max—flag—cpu[i] - cpu—usage[i] — cpu—Max; 如果其CPU使用率小于CPU最小值cpu—Min,則
min—flag_cpu[i] = cpu_Min - cpu一usage[i]; 如果其內存使用值大于內存最大值mem—Max,貝'J:
max—flag—mem[i] = mem—usage[i] — mem—Max; 如果其內存使用值小于內存最小值mem一Min,則
min一flag一mem[i] = mem—Min - mem—usage [i];
S22.重分配物理節(jié)點中CPU使用權值;
通過對上述相關信息進行計算得到相關標志位后,可以對該物理節(jié)點上 的虛擬機進行決策調度,將該物理節(jié)點上所有虛擬機的CPU進行如下重分配
若該物理節(jié)點上所有虛擬機max—flag—cpu之和大于所有虛擬機 min—flag—cpu之和,則首先將CPU使用率低于預設閾值cpu一Min的虛擬機的 CPU使用率權值cpu—weight設置為cpu一Min, CPU使用率高于預設闊值 cpu—Max的虛擬機的CPU使用率權值cpu_weight設置為cpu—Max;再將 max—flag一cpu之和與min—flag—cpu之和的差佳j妄比例分配給,其它虛擬機包 括CPU使用率小于等于cpu一Max的虛擬機,比例由cpu_Max與其它各虛擬
15機CPU使用率差值(cpu—Max減去其它各虛擬機CPU使用率)的反比確定, 其它虛擬機最終的CPU使用率權值為原來的權值加上分配后得到的權值的總 和。例如某一物理節(jié)點有四臺虛擬機,編號分別是VM1、 VM2、 VM3、 VM4, CPU使用率分別為30/。、 10%、 20%、 60%, cpu—Min = 5%, cpu—Max = 50%, 則VM1的min—flag—cpu = 5% - 3% = 2%; VM4的max—flag—cpu = 60% - 50% = 10%;因為所有虛擬機的max—flag—cpu之和(10%)大于所有虛擬機的 min—flag—cpu之和(2%),所以做如下調整將VM1的cpu—weight調整為cpu—Min的值,即VM1的cpu—weight = 5%;將VM4的cpu—weight調整為cpu—Max的值,即VM4的cpu—weight = 50%;所有虛擬機的max—flag—cpu之和減去所有虛擬機的min—flag—cpu之和得 到的差值diff—cpu為diff—cpu = 10% - 2% = 8%;cpu—Max與其它各虛擬機CPU使用率差值分別如下cpu—Max與VM1的CPU使用率差值diff—cpu—VM1為50%隱5% = 45%;cpu—Max與VM2的CPU使用率差值diff—cpu—VM2為50% - 10% = 40%;cpu—Max與VM3的CPU使用率差值diff—cpu—VM3為50% - 20% = 30%;cpu—Max與其它虛擬機(VM1、 VM2、 VM3 )的CPU使用率差的反比為1/diff—cpu_VMl : 1/diff—cpu—VM2 : 1/diff—cpu—VM3 = 1/45 : 1/40 : 1/30 =8:9: 12;diff_cpu ( 8%)按8 : 9 : 12比例依次分配給VM1、 VM2、 VM3,再加上 原先的CPU使用率,得VM1的cpu—weight = (8 / 29) * 8% + 5%《2%;VM2的cpu—weight = (9 / 29) * 8% + 10% 12.5%;VM3的cpu—weight = (12 / 29) * 8% + 20% 23.3%;若所有虛擬機max—flag_cpu之和小于虛擬沖幾min_flag—cpu之和,則首先 將CPU使用率過低的虛擬機的CPU使用率權值cpu—weight設置為cpu—Min, CPU使用率過高的虛擬機的CPU <吏用率權值cpu—weight i殳置為cpu_Max,再將min—flag—cpu之和與max—flag—cpu之和的差佳j姿比例在其它虛擬4幾上進4亍 分配,其它虛擬機包括CPU使用率大于等于cpu一Min的虛擬機,比例由其它 各虛擬機CPU使用率與cpu—Min差值(其它各虛擬機CPU使用率減去 cpu—Min)的反比確定。
若所有虛擬機max—flag—cpu之和等于虛擬機min—flag_cpu之和,則將CPU 使用率過低的虛擬機的CPU使用率權值cpu—weight設置為cpu_Min, CPU使 用率過高的虛擬機的CPU使用率權值cpu—weight設置為cpu—Max。
物理節(jié)點上虛擬機的內存重分配方法與CPU重分配方法類似,具體包括
若該物理節(jié)點上所有虛擬才幾max—flag—mem之和大于所有虛擬才幾 min—flag_mem之和,則首先將內存使用值低于預設閾值mem—Min的虛擬機 的內存使用權值mem—weight設置為mem—Min,內存l吏用值高于預設閾值 mem—Max的虛擬才幾的內存l吏用^又^f直mem—weight i殳置為mem—Max;再將 max—flag—mem之和與min—flag—mem之和的差值按比例在其它虛擬機上進行 分配,其它虛擬機包括內存使用值小于等于mem一Max的虛擬機,比例由 mem—Max與其它各虛擬機內存使用值差值(mem—Max減去其它各虛擬機內 存使用值)的反比確定。
若所有虛擬機max—flag—mem之和小于虛擬機min—flag—mem之和,則首 先將內存使用值過4氐的虛擬才幾的內存使用權值mem一weighH殳置為mem一Min, 內存4吏用值過高的虛擬才幾的內存使用權值mem—weight i殳置為mem—Max,再 將max—flag—mem之和與min—flag—mem之和的差值按比例在其它虛擬機上進 行分配,其它虛擬機包括內存使用值大于等于mem—Min的虛擬機,比例由其 它各虛擬機內存使用值與mem—Min差值(其它各虛擬才幾內存使用值減去 mem—Min)的反比確定。
若所有虛擬機max—flag—mem之和小于虛擬機min—flag—mem之和,則將 內存使用值過低的虛擬機的內存使用權值mem一weight設置為mem—Min,內 存使用值過高的虛擬機的內存^f吏用權值mem—weight設置為mem—Max。
S23.根據(jù)重分配后的虛擬機CPU和內存使用權值調整CPU使用率和內 存使用大小;
局部調度器運行在物理節(jié)點上具有管理功能的虛擬機中,根據(jù)調整決策過程中確定的CPU權值cpu—weight和內存權值mem—weight,調整各虛擬機的 CPU使用率和內存使用大小,此步驟為本領域技術人員所公知的技術,在此 不在累述。S3.根據(jù)所述負載信息在第二時刻得到第二負載信息,根據(jù)所述第二負載 信息調整所述虛擬化集群系統(tǒng)中所述物理節(jié)點間虛擬機的遷移步驟S3也稱為全局調度過程,由全局調度器來完成,全局調度器在一定 時刻都會將上述負載信息轉化為第二負載信息(也可稱為全局負載信息),第 二負載信息也包括CPU使用率和內存使用大小。在本發(fā)明實施例中,每隔時 間間隔T2都會將負載信息轉化為第二負載信息,并調整虛擬化集群系統(tǒng)中物 理節(jié)點間虛擬機的遷移。這里的T2取值也不唯一,針對不同的虛擬化集群系 統(tǒng),可以根據(jù)實際情況的T2進行調整,但時間間隔要比Tl來得大, 一般是 幾十分鐘級或小時級,如設置成20分鐘,40分鐘,或1個小時等。與T1的 間隔類似,每個時間間隔也不固定,具體可以參考Tl取值規(guī)律來對T2進行 設置。上述將負載信息轉化為第二負載信息的過程同將負載信息轉化為第 一 負 載信息的過程類似,也為本領域技術人員所公知的技術,在此不再贅述。在本發(fā)明另 一實施例中,上述第二負載信息也可以根據(jù)第一負載信息來 得到,比如取多個T1間隔的算術平均值如虛擬化集群系統(tǒng)每隔時間Tl進 行一次局部調整,每隔時間間隔T2進行一次全局調整;布支設Tl取值為5分 鐘,T2取值為30分鐘;則每個T2周期內有6個T1,這時,可以取這6個 Tl中的第一負載信息中CPU使用率和內存使用大小的算術平均值。在實際使 用中也可以根據(jù)其它算法(如幾何平均值,或者根據(jù)6個Tl不同權值系數(shù)進 行調整的算法)來得到T2,在此不再累述。在這種情況下,第二負載信息可 由第一負載信息獲得,但第一負載信息又是通過負載信息得到,所以,第二 負載信息其實也是通過負載信息得到的,因此,可以把通過第一負載信息得 到第二負載信息這種獲得方式看成通過負載信息得到第二負載信息的一個特 殊的實現(xiàn)方式。在得到第二負載信息后,全局調整器通過以下步驟來調整虛擬化集群系
統(tǒng)中物理節(jié)點間虛擬機的遷移
531. 將CPU、內存使用情況轉化為開銷;
由于CPU和內存采用不同的度量單位,為了將虛擬機使用CPU的情況和 使用內存的情況進行統(tǒng)一,將CPU的使用情況和內存使用情況轉化為無量綱 的開銷,在選取虛擬機時行遷移時,將根據(jù)系統(tǒng)中所有虛擬機的開銷來決定。
開銷的定義如下
設整個虛擬化集群系統(tǒng)中物理節(jié)點總數(shù)為n (n為大于等于2的整數(shù)), 所有物理節(jié)點為CPU、內存等配置完全相同的同構計算機。假設有一個物理 節(jié)點Node[i] (i為物理節(jié)點的編號,為大于等于l的整數(shù)),該物理節(jié)點上有 一臺虛擬機VMJ (i為虛擬機的編號,為大于等于l的整數(shù)),記該物理點下 的該虛擬機的CPU的使用率為CPUper[i][j],該虛擬機的內存使用的大小記為 RAM[i][j],假設該物理節(jié)點總內存為RAM—tot[i]。則該虛擬機VMJ在物理 節(jié)點Node[i]上的開銷cost[i][j]為
cost[,'][y.] = + C * "層-帥]
其中C為權重系數(shù),為一常數(shù),取值范圍為0<C<1, C是反映CPU和 內存在對整個開銷影響中所占的比例。通常CPU對系統(tǒng)影響較大,因此C的 取值小于1。
在上述開銷公式中,虛擬機VMJ在實際中并不一定得在物理節(jié)點Node[i] 上,即可以是一個"相對"的計算如虛擬機VMJ在物理節(jié)點Node[i]上, 但也可以用上述公式計算VMJ在物理節(jié)點Node[k]上的開銷(VMJ并不在 Node[k]節(jié)點上),得到最后的開銷為cost剛,開銷公式中的CPUper[i][j]、 RAM[i][j]為虛擬機VMJ在物理節(jié)點Node[k]上CPU使用率和內存使用大小, 但公式中的RAM_tot[i]則變成RAM_tot[k],為物理節(jié)點Node[k]上的總內存。
上述定義開銷的公式并不是唯一的,用戶在實際應用中也可以使用其它 計算公式來計算CPU和內存的開銷。
532. 根據(jù)開銷獲取需要遷移的虛擬機及其遷移的目的物理節(jié)點;
19步驟S32由全局調度器來完成,全局調度器對整個虛擬化集群系統(tǒng)中的 每個虛擬機作如下計算針對物理節(jié)點Node[i]上的虛擬機VMJ計算它的開銷cost[i][j];計算該虛擬4幾VMJ在其它物理節(jié)點Node[k]上的開銷cost[k][j] ( k != i, 且k為大于等于1的整數(shù))。在進行虛擬機VMJ在其它物理節(jié)點Node[k]上 的開銷時,開銷公式中的CPU使用率為VMJ在物理節(jié)點Node[i]上的CPU 使用率;內存使用大小為VMJ在物理節(jié)點Node[i]上的內存使用大?。欢?內存為物理節(jié)點Node[k]上的總內存。比較cost[i][j]和cost[k][j〗的差值(cost[i][j]減去cost[k][j]的值),在其它物 理節(jié)點上可以得到具有最大差值的物理節(jié)點,在該物理節(jié)點上該虛擬機的開 銷為最小,相應的開銷差值為最大,記為diff—cost[i][j]。比較虛擬化集群系統(tǒng)中所有虛擬機的diff—cost,記具有diff—cost最大值的 虛擬機為VM一n (n為虛擬機的編號,為大于等于1的整數(shù)),其所在的物理 節(jié)點記為Node[m] (m為物理節(jié)點的編號,為大于等于1的整數(shù)),其具有最 大開銷差值的物理節(jié)點為Node[m—max],其開銷差值為diff—cost[m][n]。若diff—cost[m][n]大于設定的遷移閾值m—value,則在本次全局調度過程 中將會發(fā)生虛擬機的遷移,即將要執(zhí)行遷移的虛擬機為VM—n,它將從物理節(jié) 點Node[m]遷移至物理節(jié)點Node[m—max];上述遷移閾值m—value也可通過實 驗獲得,其獲得過程可參見獲得cpu_Max等闊值的過程。若diff一cost[m][n]小于等于設定的遷移閾值m—value,則在本次全局調度 過程中將不會發(fā)生虛擬機的遷移,每個虛擬機仍在當前的物理節(jié)點上運行。S33.根據(jù)步驟獲取的需要遷移的虛擬機及其遷移的目的物理節(jié)點執(zhí)行遷 移操作;全局調度器才艮據(jù)通過步驟S2得到的需要遷移的虛擬機及其遷移的目的物 理節(jié)點,發(fā)起虛擬機的遷移操作,由源物理節(jié)點上的虛擬機監(jiān)控器和目的物 理節(jié)點上的虛擬機監(jiān)控器協(xié)同完成虛擬機的遷移操作,此步驟也屬于本領域 技術人員所公知的技術,在此不再具體贅述。在本發(fā)明具體實施例中,局部調度器和全局調度器分別以時間間隔T1和時間間隔T2執(zhí)行各自的調度,即局部調度和全局調度。在虛擬化集群中,單
個物理節(jié)點內局部調度策略(即在單個物理節(jié)點上調整其上的虛擬機使用
CPU和內存的分配情況)所需的操作較少、時間較短;多個物理節(jié)點之間的 全局調度策略(即在多個物理節(jié)點之間遷移虛擬機)所需的操作較多,時間 較長;因此,設置全局調度時間間隔T2的值大于局部調度操作時間間隔Tl 的值,具體數(shù)值可參考上文相關內容。
同時,為了避免全局調度策略和局部調度策略之間相互干擾,在局部調 度策略執(zhí)行物理節(jié)點內部的局部調度時,若同時發(fā)生集群范圍內的全局調度, 則全局調度操作將被延遲一個時間段。之后,全局調度器再根據(jù)最新的集群 范圍內各物理節(jié)點及虛擬機的狀態(tài)信息進行全局調度操作。
通過局部調度器和全局調度器以一定的時間間隔執(zhí)行各自的調度策略, 可以在單個物理節(jié)點范圍內和整個虛擬化集群系統(tǒng)范圍內實現(xiàn)負載平衡,避 免出現(xiàn)負載在物理節(jié)點范圍內的分配不均和在整個虛擬化集群系統(tǒng)中物理節(jié) 點間的分配不均現(xiàn)象,并且降低進行負載平衡時所需的開銷,從而更好地實 現(xiàn)虛擬化集群系統(tǒng)平衡的高效性和高吞吐率。
本發(fā)明方法具體實施例包括如下主要優(yōu)點
1. 通過層次化結構實現(xiàn)兩級調度,局部調度器用于實現(xiàn)局部調度,負責 同一物理機上虛擬機間的負載平衡,全局調度器用于實現(xiàn)全局調度。由于局 部調度所需的時間較短,因此,可以以一個較高的頻率周期性進行調度(如 實施例中以T1為周期進行調度);全局調度所需的時間較長,因此,可以以 一個較低的頻率周期性進行調度(如實施例中以T2為周期進行調度)。通過 兩級調度的方法,可以在實現(xiàn)虛擬化集群系統(tǒng)負載平衡時降低所需的開銷。
2. 本發(fā)明實施例中,兩級調度算法相互獨立,可以根據(jù)具體的集群應用 類型,對全局和局部的算法進行調整,如根據(jù)應用類型的不同,對調度時間, 預設閾值,權值分配比例等進行調整,使得應用更加方便靈活。
本發(fā)明實施例還提供了 一種虛擬化集群系統(tǒng)負載平衡裝置,包括 負載信息獲取單元10,用于獲取虛擬化集群系統(tǒng)中物理節(jié)點中虛擬機的 負載信息,所述負載信息包括所述虛擬機的CPU使用率和內存使用大?。?,用于根據(jù)所述負載信息在第一時刻得到的第一負 載信息,根據(jù)所述第一負載信息調整所述物理節(jié)點中虛擬機的CPU使用率和 內存使用大小,以實現(xiàn)所述物理節(jié)點中虛擬機的負載平衡;全局負載平衡單元20,用于根據(jù)所述負載信息在第二時刻得到第二負載 信息,根據(jù)所述第二負載信息調整所述虛擬化集群系統(tǒng)中所述物理節(jié)點間虛 擬機的遷移,以實現(xiàn)所述物理節(jié)點間虛擬機的負載平衡。所述局部負載平衡單元30根據(jù)所述第一負載信息調整所述物理節(jié)點中虛 擬機的CPU使用率和內存使用大小的步驟包括為所述物理節(jié)點中CPU使用率低的虛擬機增加CPU使用率; 為所述物理節(jié)點中CPU使用率高的虛擬機減少CPU使用率; 為所述物理節(jié)點中內存使用小的虛擬機增加內存使用大??; 為所述物理節(jié)點中內存使用大的虛擬機減少內存使用大小。 具體地,所述局部負載平衡單元30包括闞值獲取單元301,用于獲取CPU使用率最高閾值、CPU使用率最低閾 值、內存使用最大閾值和內存使用最小閾值;第一虛擬機獲取計算單元302,用于獲取所述物理節(jié)點中虛擬機CPU使 用率大于所述CPU使用率最高閾值的第一虛擬機;計算所有所述第一虛擬機 CPU使用率與所述CPU使用率最高閾值的差值的總和為第 一差值總和;第二虛擬機獲取計算單元303,用于獲取所述物理節(jié)點中虛擬機CPU使 用率小于所述CPU使用率最低閾值的第二虛擬機;計算所有所述CPU使用率 最低閾值與所述第二虛擬機CPU使用率的差值的總和為第二差值總和;第三虛擬機獲取計算單元304,用于獲取所述物理節(jié)點中虛擬機內存使用 大小大于所述內存使用最大閾值的第三虛擬機;計算所有所述第三虛擬機內 存使用大小與所述內存使用最大閾值的差值的總和為第三差值總和;第四虛擬機獲取計算單元305,用于獲取所述物理節(jié)點中虛擬機內存使用 大小小于所述內存使用最小閾值的第四虛擬機;計算所有所述內存使用最小 閾值與所述第四虛擬機內存使用大小的差值的總和為第四差值總和;局部CPU分配單元306,用于將所述第一虛擬機的CPU使用率權值設置 為所述CPU使用率最高閾值;將所述第二虛擬機的CPU使用率權值設置為所述CPU使用率最低閾值;
計算所述第一差值總和與所述第二差值總和的差值的絕對值,得到CPU 絕對差^i,貝'J:
若所述第一差值大于等于所述第二差值,則將所述CPU絕對差值按第 一比例在所述第一虛擬機所在的物理節(jié)點除所述第一虛擬機之外的第一其它 虛擬機上進行分配,得到所述第一其它虛擬機的CPU使用率權值;所述第一 比例由所述CPU使用率最高閾值與所述第一其它虛擬機的CPU使用率差值的 反比決定;
若所述第二差值大于所述第一差值,則將所述CPU絕對差值按第二比 例在所述第二虛擬機所在的物理節(jié)點除所述第二虛擬機之外的第二其它虛擬 機上進行分配,得到所述第二其它虛擬機的CPU使用率權值;所述第二比例 由所述第二其它虛擬機的CPU使用率與所述CPU使用率最低閾值差值的反比 決定;
局部CPU調整單元307,用于根據(jù)所述物理節(jié)點中虛擬機的CPU使用率 權值調整所述物理節(jié)點中虛擬機的CPU使用率。
局部內存分配單元308,用于將所述第三虛擬機的內存使用大小權值設置 為所述內存使用最大閾值;將所述第四虛擬機的內存使用大小權值設置為所 述內存使用最小閾值;
計算所述第三差值總和與所述第四差值總和的差值的絕對值,得到內存 絕對差寸直,則
若所述第三差值大于等于所述第四差值,則將所述內存絕對差值按第 三比例在所述第三虛擬機所在的物理節(jié)點除所述第三虛擬機之外的第三其它 虛擬機上進行分配,得到所述第三其它虛擬機的內存使用大小權值;所述第 三比例由所述內存使用最大閾值與所述第三其它虛擬機的內存使用大小差值 的反比決定;
若所述第四差值大于所述第三差值,則將所述內存絕對差值按第四比 例在所述第四虛擬機所在的物理節(jié)點除所述第四虛擬機之外的第四其它虛擬 機上進行分配,得到所述第四其它虛擬機的內存使用大小權值;所述第四比 例由所述第四其它虛擬機的內存使用大小與所述內存使用最小閾值差值的反比決定;
局部內存調整單元,309用于根據(jù)所述物理節(jié)點中虛擬機的內存使用大小 權值調整所述物理節(jié)點中虛擬機的內存使用大小。 具體地,所述全局負載平衡單元20包括
開銷轉化單元201 ,用于將所述第二負載信息統(tǒng)一轉化為無量綱的開銷, 包括
根據(jù)所述虛擬化集群系統(tǒng)中所述物理節(jié)點的個數(shù)、所述物理節(jié)點總內存 大小以及權重系數(shù)將所述第二負載信息統(tǒng)一轉化為開銷;所述負載信息中的 CPU使用率占開銷的權重大于所述第二負載信息中的內存使用大小占開銷的 權重;
所述開銷轉化單元201還用于通過公式
磨['-][乂]
cost[/][刀=""一小]w + C * "層-', 將所述第二負載信息統(tǒng)一轉化為開銷;
其中,cost[i][j]表示物理節(jié)點i上虛擬機j的開銷; n表示所述虛擬化集群系統(tǒng)中物理節(jié)點總數(shù); CPUper表示所述物理節(jié)點i上虛擬機j的CPU使用率; RAM[i][j]表示所述物理節(jié)點i上虛擬機j的內存使用大小; RAM一tot[i]表示所述物理節(jié)點i的總內存大?。?C為權重系數(shù),為一常數(shù),取值范圍為(XOcl。 所述全局負載平衡單元20還用于
通過比較所有所述物理節(jié)點中虛擬機在本身物理節(jié)點上的開銷和在其它 物理節(jié)點的開銷的差值,獲取具有最大差值的第一物理節(jié)點和第二物理節(jié)點; 如果所述最大差值大于遷移閾值,則將所述物理節(jié)點中虛擬機從所述第一物 理節(jié)點遷移到所述第二物理節(jié)點;如果所述最大差值小于等于遷移閾值,則 所述物理節(jié)點中虛擬機不發(fā)生遷移。
在本發(fā)明虛擬化集群系統(tǒng)負載平衡裝置中,所述第一時刻小于所述第二 時刻。
通過局部負載平tf單元30和全局負載平tf單元20在一定時刻執(zhí)行各自
24的調度策略,可以在單個物理節(jié)點中和整個虛擬化集群系統(tǒng)中各個物理節(jié)點 間實現(xiàn)負載平衡,避免出現(xiàn)負載在物理節(jié)點范圍內的分配不均和在整個虛擬 化集群系統(tǒng)中物理節(jié)點間的分配不均現(xiàn)象,并且降低實現(xiàn)負載平衡時所需的 開銷,從而更好地實現(xiàn)虛擬化集群系統(tǒng)平衡的高效性和高吞吐率。本發(fā)明實施例還提供了 一種虛擬化集群系統(tǒng)負載平衡系統(tǒng),包括 多個物理節(jié)點N1,至少一個管理節(jié)點N2,所述管理節(jié)點N2為具有管理功能的物理節(jié)點N1;所述物理節(jié)點Nl包括虛擬機監(jiān)控器Nll,用于在所述物理節(jié)點Nl上運行虛擬機;所述虛擬機監(jiān)控器Nil還用于獲取虛擬化集群系統(tǒng)中所述物理節(jié)點Nl 中虛擬機的負載信息,所述負載信息包括所述虛擬機的CPU使用率和內存使 用大??;所述物理節(jié)點N1還包括局部調度器N12,用于根據(jù)所述負載信息在第一 時刻得到第一負載信息,根據(jù)所述第一負載信息調整所述物理節(jié)點N1中虛擬 機的CPU使用率和內存使用大??;所述管理節(jié)點N2包括全局調度器N21,用于根據(jù)所述負載信息在第二時 刻得到第二負載信息,根據(jù)所述第二負載信息調整所述虛擬化集群系統(tǒng)中所 述物理節(jié)點N1間虛擬^^的遷移;所述局部調度器N12還用于獲取CPU使用率最高閾值、CPU使用率最 低閾值;獲取所述物理節(jié)點Nl中虛擬機CPU使用率大于所述CPU使用率最高閾 值的第一虛擬機;計算所有所述第一虛擬機CPU使用率與所述CPU使用率最 高閾值的差值的總和為第一差值總和;獲取所述物理節(jié)點Nl中虛擬機CPU使用率小于所述CPU使用率最低閾 值的第二虛擬機;計算所有所述CPU使用率最低閾值與所述第二虛擬機CPU 使用率的差值的總和為第二差值總和;將所述第一虛擬機的CPU使用率權值設置為所述CPU使用率最高閾值; 將所述第二虛擬機的CPU使用率權值設置為所述CPU使用率最低閾值;計算所述第一差值總和與所述第二差值總和的差值的絕對值,得到CPU絕對差^f直,貝寸若所述第一差值大于等于所述第二差值,則將所述CPU絕對差值按第 一比例在所述第一虛擬機所在的物理節(jié)點Nl除所述第一虛擬機之外的第一 其它虛擬機上進行分配,得到所述第一其它虛擬機的CPU使用率權值;所述 第一比例由所述CPU使用率最高閾值與所述第一其它虛擬機的CPU使用率差 值的反比決定;若所述第二差值大于所述第一差值,則將所述CPU絕對差值按第二比 例在所述第二虛擬機所在的物理節(jié)點Nl除所述第二虛擬機之外的第二其它 虛擬機上進行分配,得到所述第二其它虛擬機的CPU使用率權值;所述第二 比例由所述第二其它虛擬機的CPU使用率與所述CPU使用率最低閾值差值的 反比決定;根據(jù)所述物理節(jié)點中虛擬機的CPU使用率權值調整所述物理節(jié)點中虛擬 機的CPU使用率。獲取內存使用最大閾值和內存使用最小閾值;獲取所述物理節(jié)點Nl中虛擬機內存使用大小大于所述內存使用最大閾 值的第三虛擬機;計算所有所述第三虛擬機內存使用大小與所述內存使用最 大閾值的差值的總和為第三差值總和;獲取所述物理節(jié)點Nl中虛擬機內存使用大小小于所述內存使用最小閾 值的第四虛擬機;計算所有所述內存使用最小閾值與所述第四虛擬機內存使 用大小的差值的總和為第四差值總和;將所述第三虛擬機的內存使用大小權值設置為所述內存使用最大閾值; 將所述第四虛擬機的內存使用大小權值設置為所述內存使用最小閾值;計算所述第三差值總和與所述第四差值總和的差值的絕對值,得到內存絕對差值,貝'h若所述第三差值大于等于所述第四差值,則將所述內存絕對差值按第 三比例在所述第三虛擬機所在的物理節(jié)點Nl除所述第三虛擬機之外的第三 其它虛擬機上進行分配,得到所述第三其它虛擬機的內存使用大小權值;所 述第三比例由所述內存使用最大閾值與所述第三其它虛擬機的內存使用大小差值的反比決定;若所述第四差值大于所述第三差值,則將所述內存絕對差值按第四比 例在所述第四虛擬機所在的物理節(jié)點Nl除所述第四虛擬機之外的第四其它 虛擬機上進行分配,得到所述第四其它虛擬機的內存使用大小權值;所述第 四比例由所述第四其它虛擬機的內存使用大小與所述內存使用最小閾值差值 的反比決定;根據(jù)所述物理節(jié)點中虛擬機的內存使用大小權值調整所述物理節(jié)點中虛 擬機的內存使用大小。所述全局調度器N21還用于通過公式cost[/][)] = "cw,[,][)] + C * 將所述第二負載信息統(tǒng)一轉化為開銷;其中,cost[i][j]表示物理節(jié)點i上虛擬機j的開銷; n表示所述虛擬化集群系統(tǒng)中物理節(jié)點總數(shù); CPUper表示所述物理節(jié)點i上虛擬機j的CPU使用率; RAM[i][j]表示所述物理節(jié)點i上虛擬機j的內存使用大?。?RAM一tot[i]表示所述物理節(jié)點i的總內存大??; C為權重系數(shù),為一常數(shù),取值范圍為0〈CX1;通過比較所有所述物理節(jié)點N1中虛擬機在本身物理節(jié)點N1上的開銷和 在其它物理節(jié)點N1的開銷的差值,獲取具有最大差值的第一物理節(jié)點和第二 物理節(jié)點;如果所述最大差值大于遷移閾值,則將所述物理節(jié)點N1中虛擬機 從所述第一物理節(jié)點遷移到所述第二物理節(jié)點;如果所述最大差值小于等于 遷移閾值,則所述物理節(jié)點N1中虛擬機不發(fā)生遷移;在虛擬化集群系統(tǒng)負載平衡系統(tǒng)中,所述第一時刻小于所述第二時刻。 通過局部調度器N12和全局調度器N21以一定的時間間隔執(zhí)行各自的調 度策略,可以在單個物理節(jié)點N1范圍內和整個虛擬化集群系統(tǒng)范圍內實現(xiàn)負 載平衡,避免出現(xiàn)負載在物理節(jié)點N1范圍內的分配不均和在整個虛擬化集群 系統(tǒng)中物理節(jié)點Nl間的分配不均現(xiàn)象,并且降低進行負載平衡時所需的開 銷,從而更好地實現(xiàn)虛擬化集群系統(tǒng)平衡的高效性和高吞吐率。本領域普通4支術人員可以理解實現(xiàn)上述實施例方法中的全部或部分流 程,是可以通過計算機程序來指令相關的硬件來完成,所述的程序可存儲于 一計算機可讀取存儲介質中,該程序在執(zhí)行時,可包括如上述各方法的實施
例的流程。其中,所述的存儲介質可為^茲碟、光盤、只讀存儲記憶體(Read-Only Memory, ROM)或隨機存儲記憶體(Random Access Memory, RAM)等。
以上舉較佳實施例,對本發(fā)明的目的、技術方案和優(yōu)點進行了進一步 詳細說明,所應理解的是,以上所述僅為本發(fā)明的較佳實施例而已,并不 用以限制本發(fā)明,凡在本發(fā)明的精神和原則之內,所作的任何修改、等同 替換、改進等,均應包含在本發(fā)明的保護范圍之內。
權利要求
1. 一種虛擬化集群系統(tǒng)負載平衡方法,其特征在于,包括如下步驟獲取虛擬化集群系統(tǒng)中物理節(jié)點中虛擬機的負載信息,所述負載信息包括所述虛擬機的CPU和內存使用信息;根據(jù)所述負載信息在第一時刻得到第一負載信息,根據(jù)所述第一負載信息調整所述物理節(jié)點中虛擬機的CPU使用率和內存使用大?。桓鶕?jù)所述負載信息在第二時刻得到第二負載信息,根據(jù)所述第二負載信息調整所述虛擬化集群系統(tǒng)中所述物理節(jié)點間虛擬機的遷移。
2. 如權利要求1所述的虛擬化集群系統(tǒng)負載平衡方法,其特征在于,所 述根據(jù)所述第一負載信息調整所述物理節(jié)點中虛擬機的CPU使用率和內存使 用大小的步驟包括為所述物理節(jié)點中CPU使用率低的虛擬機增加CPU使用率; 為所述物理節(jié)點中CPU使用率高的虛擬機減少CPU使用率; 為所述物理節(jié)點中內存使用小的虛擬機增加內存使用大??; 為所述物理節(jié)點中內存使用大的虛擬機減少內存使用大小。
3. 如權利要求2所述的虛擬化集群系統(tǒng)負載平衡方法,其特征在于,所 述為所述物理節(jié)點中CPU使用率低的虛擬機增加CPU使用率;為所述物理節(jié) 點中CPU使用率高的虛擬機減少CPU使用率的步驟包括獲取CPU使用率最高閾值、CPU使用率最低閾值;獲取所述物理節(jié)點中虛擬機CPU使用率大于所述CPU使用率最高閾值的 第一虛擬機;計算所有所述第一虛擬機CPU使用率與所述CPU使用率最高閾 值的差值的總和為第一差值總和;獲取所述物理節(jié)點中虛擬機CPU使用率小于所述CPU使用率最低閾值的 第二虛擬機;計算所有所述CPU使用率最低閾值與所述第二虛擬機CPU使用 率的差值的總和為第二差值總和;將所述第一虛擬機的CPU使用率權值設置為所述CPU使用率最高閾值; 將所述第二虛擬機的CPU使用率權值設置為所述CPU使用率最低閾值;計算所述第一差值總和與所述第二差值總和的差值的絕對值,得到CPU 絕對差值,則若所述第一差值大于等于所述第二差值,則將所述CPU絕對差值按第一比例在所述第一虛擬機所在的物理節(jié)點除所述第一虛擬機之外的第一其它虛擬機上進行分配,得到所述第一其它虛擬機的CPU使用率權值;所述第一比 例由所述CPU使用率最高閾值與所述第一其它虛擬機的CPU使用率差值的反 比決定;若所述第二差值大于所述第一差值,則將所述CPU絕對差值按第二比 例在所述第二虛擬機所在的物理節(jié)點除所述第二虛擬機之外的第二其它虛擬 機上進行分配,得到所述第二其它虛擬機的CPU使用率權值;所述第二比例 由所述第二其它虛擬機的CPU使用率與所述CPU使用率最低閾值差值的反比 決定;根據(jù)所述物理節(jié)點中虛擬機的CPU使用率權值調整所述物理節(jié)點中虛擬 機的CPU使用率。
4.如權利要求2所述的虛擬化集群系統(tǒng)負載平衡方法,其特征在于,為 所述物理節(jié)點中內存使用小的虛擬機增加內存使用大??;為所述物理節(jié)點中 內存使用大的虛擬機減少內存使用大小的步驟包括獲取內存使用最大閾值和內存使用最小閾值;獲取所迷物理節(jié)點中虛擬機內存使用大小大于所述內存使用最大閾值的 第三虛擬機;計算所有所述第三虛擬機內存使用大小與所述內存使用最大閾 值的差值的總和為第三差值總和;獲取所述物理節(jié)點中虛擬機內存使用大小小于所述內存使用最小闊值的 第四虛擬機;計算所有所述內存使用最小閾值與所述第四虛擬機內存使用大 小的差值的總和為第四差值總和;將所述第三虛擬機的內存使用大'J、權值設置為所述內存使用最大閾值; 將所述第四虛擬機的內存使用大小權值設置為所述內存使用最小闊值;計算所述第三差值總和與所述第四差值總和的差值的絕對值,得到內存 絕對差值,則若所述第三差值大于等于所述第四差值,則將所述內存絕對差值按第三 比例在所述第三虛擬機所在的物理節(jié)點除所述第三虛擬機之外的第三其它虛 擬機上進行分配,得到所述第三其它虛擬機的內存使用大小權值;所述第三比例由所述內存使用最大閾值與所述第三其它虛擬機的內存使用大小差值的反比決定;若所述第四差值大于所述第三差值,則將所述內存絕對差值按第四比例 在所述第四虛擬機所在的物理節(jié)點除所述第四虛擬機之外的第四其它虛擬機 上進行分配,得到所述第四其它虛擬機的內存使用大小權值;所述第四比例 由所述第四其它虛擬機的內存使用大小與所述內存使用最小闊值差值的反比 決定;根據(jù)所述物理節(jié)點中虛擬機的內存使用大小權值調整所述物理節(jié)點中虛 擬機的內存4吏用大小。
5. 如權利要求1所述的虛擬化集群系統(tǒng)負載平衡方法,其特征在于,所 述根據(jù)所述第二負載信息調整所述虛擬化集群系統(tǒng)中所述物理節(jié)點間虛擬機 的遷移的步驟包括將所述第二負載信息統(tǒng)一轉化為無量綱的開銷,通過比較所述物理節(jié)點 間虛擬機開銷,調整所述虛擬化集群系統(tǒng)中所述物理節(jié)點間虛擬機的遷移。
6. 如權利要求5所述的虛擬化集群系統(tǒng)負載平衡方法,其特征在于,所 述將所述第二負載信息統(tǒng)一轉化為無量綱的開銷的步驟包括根據(jù)所述虛擬化集群系統(tǒng)中所述物理節(jié)點的個數(shù)、所述物理節(jié)點總內存 大小以及權重系數(shù)將所述第二負載信息統(tǒng)一轉化為開銷;所述負載信息中的 CPU使用率占開銷的權重大于所述第二負載信息中的內存使用大小占開銷的 權重;包括通過7^式 <formula>formula see original document page 4</formula>將所述第二負載信息統(tǒng)一轉化為開銷;其中,cost[i][j]表示物理節(jié)點i上虛擬4幾j的開銷; n表示所述虛擬化集群系統(tǒng)中物理節(jié)點總數(shù); CPUper表示所述物理節(jié)點i上虛擬機j的CPLM吏用率; RAM[i][j]表示所述物理節(jié)點i上虛擬機j的內存使用大??; RAM一tot[i]表示所述物理節(jié)點i的總內存大?。籧為權重系數(shù),為一常數(shù),取值范圍為0<:<1。
7. 如權利要求5所述的虛擬化集群系統(tǒng)負載平衡方法,其特征在于,所述通過比較所述物理節(jié)點間虛擬機開銷,調整所述虛擬化集群系統(tǒng)中所述物理節(jié)點間虛擬機的遷移的步驟包括通過比較所有所述物理節(jié)點中虛擬機在本身物理節(jié)點上的開銷和在其它 物理節(jié)點的開銷的差值,獲取具有最大差值的第一物理節(jié)點和第二物理節(jié)點; 如果所述最大差值大于遷移閾值,則將所述物理節(jié)點中虛擬機從所述第一物 理節(jié)點遷移到所述第二物理節(jié)點;如果所述最大差值小于等于遷移閾值,則 所述物理節(jié)點中虛擬機不發(fā)生遷移。
8. 如權利要求1-7任一所述的虛擬化集群系統(tǒng)負載平衡方法,其特征在于所述第一時刻小于所述第二時刻。
9. 一種虛擬化集群系統(tǒng)負載平衡裝置,其特征在于,包括負載信息獲取單元,用于獲取虛擬化集群系統(tǒng)中物理節(jié)點中虛擬機的負 載信息,所述負載信息包括所述虛擬機的CPU使用率和內存使用大??;局部負載平衡單元,用于根據(jù)所述負載信息在第一時刻得到的第一負載 信息,根據(jù)所述第一負載信息調整所述物理節(jié)點中虛擬機的CPU使用率和內 存使用大??;全局負載平衡單元,用于根據(jù)所述負載信息在第二時刻得到第二負載信 息,根據(jù)所述第二負載信息調整所述虛擬化集群系統(tǒng)中所述物理節(jié)點間虛擬 機的遷移。
10. 如權利要求9所述的虛擬化集群系統(tǒng)負載平衡裝置,其特征在于,所 述局部負載平衡單元包括CPU閾值獲取單元,用于獲取CPU使用率最高閾值、CPU使用率最低閾 值;第一虛擬機獲取計算單元,用于獲取所述物理節(jié)點中虛擬機CPU使用率 大于所述CPU使用率最高閾值的第一虛擬機;計算所有所述第一虛擬機CPU 使用率與所述CPU使用率最高閾值的差值的總和為第一差值總和;第二虛擬機獲取計算單元,用于獲取所述物理節(jié)點中虛擬機CPU使用率小于所述CPU使用率最低閾值的第二虛擬機;計算所有所述CPU使用率最低 閾值與所述第二虛擬機CPU使用率的差值的總和為第二差值總和;局部CPU分配單元,用于將所述第一虛擬機的CPU使用率權值設置為所 述CPU使用率最高閾值;將所述第二虛擬機的CPU使用率權值設置為所述 CPU使用率最低閾值;計算所述第一差值總和與所述第二差值總和的差值的絕對值,得到CPU 絕對差值,貝'J:若所述第一差值大于等于所述第二差值,則將所述CPU絕對差值按第 一比例在所述第 一虛擬機所在的物理節(jié)點除所述第 一虛擬機之外的第 一其它 虛擬機上進行分配,得到所述第一其它虛擬機的CPU使用率權值;所述第一 比例由所述CPU使用率最高閾值與所述第一其它虛擬機的CPU使用率差值的 反比決定;若所述第二差值大于所述第一差值,則將所述CPU絕對差值按第二比 例在所述第二虛擬機所在的物理節(jié)點除所述第二虛擬機之外的第二其它虛擬 機上進行分配,得到所述第二其它虛擬機的CPU使用率權值;所述第二比例 由所述第二其它虛擬機的CPU使用率與所述CPU使用率最低閾值差值的反比 決定;局部CPU調整單元,用于根據(jù)所述物理節(jié)點中虛擬機的CPU使用率權值 調整所述物理節(jié)點中虛擬機的CPU使用率。
11.如權利要求9所述的虛擬化集群系統(tǒng)負載平衡裝置,其特征在于,所 述局部負載平衡單元還包括內存閾值獲取單元,用于獲取內存使用最大閾值和內存使用最小閾值;第三虛擬機獲取計算單元,用于獲取所述物理節(jié)點中虛擬機內存使用大 小大于所述內存使用最大閾值的第三虛擬機;計算所有所述第三虛擬機內存 使用大小與所述內存使用最大閾值的差值的總和為第三差值總和;第四虛擬機獲取計算單元,用于獲取所述物理節(jié)點中虛擬機內存使用大 小小于所述內存使用最小閾值的第四虛擬機;計算所有所述內存使用最小閾 值與所述第四虛擬機內存使用大小的差值的總和為第四差值總和;局部內存分配單元,用于將所述第三虛擬機的內存使用大小權值設置為所述內存使用最大閾值;將所述第四虛擬機的內存使用大小權值設置為所述 內存使用最小閾值;計算所述第三差值總和與所述第四差值總和的差值的絕對值,得到內存 絕對差值,則.-若所述第三差值大于等于所述第四差值,則將所述內存絕對差值按第 三比例在所述第三虛擬機所在的物理節(jié)點除所述第三虛擬機之外的第三其它 虛擬機上進行分配,得到所述第三其它虛擬機的內存使用大小權值;所述第 三比例由所述內存使用最大閾值與所述第三其它虛擬機的內存使用大小差值 的反比決定;若所述第四差值大于所述第三差值,則將所述內存絕對差值按第四比 例在所述第四虛擬機所在的物理節(jié)點除所述第四虛擬機之外的第四其它虛擬 機上進行分配,得到所述第四其它虛擬機的內存使用大小權值;所述第四比 例由所述第四其它虛擬機的內存使用大小與所述內存使用最小閾值差值的反 比決定;局部內存調整單元,用于根據(jù)所述物理節(jié)點中虛擬機的內存使用大小權 值調整所述物理節(jié)點中虛擬機的內存使用大小。
12.如權利要求9所述的虛擬化集群系統(tǒng)負載平衡裝置,其特征在于,所 述全局負載平衡單元還包括開銷轉化單元,用于將所述第二負載信息統(tǒng)一轉化為無量綱的開銷,包括根據(jù)所述虛擬化集群系統(tǒng)中所述物理節(jié)點的個數(shù)、所述物理節(jié)點總內存 大小以及權重系數(shù)將所述第二負載信息統(tǒng)一轉化為開銷;所述負載信息中的 CPU使用率占開銷的權重大于所述第二負載信息中的內存使用大小占開銷的 權重;所述開銷轉化單元還用于通過公式層[!'][力cost[z.][y.]=+ C * " ] 將所述第二負載信息統(tǒng)一轉化為開銷; 其中,cost[i][j]表示物理節(jié)點i上虛擬才幾j的開銷;n表示所述虛擬化集群系統(tǒng)中物理節(jié)點,悉數(shù); CPUper表示所述物理節(jié)點i上虛擬機j的CPU使用率; RAM[i][j]表示所述物理節(jié)點i上虛擬才幾j的內存使用大?。?RAM—tot[i]表示所述物理節(jié)點i的總內存大?。?C為權重系數(shù),為一常數(shù),取值范圍為0<:<1。
13. 如權利要求12所述的虛擬化集群系統(tǒng)負載平衡裝置,其特征在于, 所述全局負載平衡單元還用于通過比較所有所述物理節(jié)點中虛擬機在本身物理節(jié)點上的開銷和在其它 物理節(jié)點的開銷的差值,獲取具有最大差值的第 一物理節(jié)點和第二物理節(jié)點; 如果所述最大差值大于遷移閾值,則將所述物理節(jié)點中虛擬機從所述第一物 理節(jié)點遷移到所迷第二物理節(jié)點;如果所述最大差值小于等于遷移闊值,則 所述物理節(jié)點中虛擬機不發(fā)生遷移。
14. 如權利要求9-13任一所述的虛擬化集群負載平衡裝置,其特征在于 所述第一時刻小于所述第二時刻。
15. —種虛擬化集群系統(tǒng)負載平衡系統(tǒng),其特征在于,包括 物理節(jié)點,管理節(jié)點,所述管理節(jié)點為具有管理功能的物理節(jié)點; 所述物理節(jié)點包括虛擬機監(jiān)控器,用于在所述物理節(jié)點上運行虛擬機; 所述虛擬機監(jiān)控器還用于獲取虛擬化集群系統(tǒng)中所述物理節(jié)點中虛擬機的負載信息,所述負載信息包括所述虛擬機的CPU使用率和內存使用大?。?所述物理節(jié)點還包括局部調度器,用于根據(jù)所述負載信息在第一時刻得到第一負載信息,根據(jù)所述第一負載信息調整所述物理節(jié)點中虛擬機的CPU使用率和內存^f吏用大?。凰龉芾砉?jié)點包括全局調度器,用于根據(jù)所述負載信息在第二時刻得到第二負載信息,根據(jù)所述第二負載信息調整所述虛擬化集群系統(tǒng)中所述物理節(jié)點間虛擬才幾的遷移。
全文摘要
本發(fā)明實施例公開了一種虛擬化集群系統(tǒng)負載平衡方法、裝置及系統(tǒng)。其中,所述方法包括獲取虛擬化集群系統(tǒng)中物理節(jié)點中虛擬機的負載信息,所述負載信息包括所述虛擬機的CPU使用率和內存使用大?。桓鶕?jù)所述負載信息在第一時刻得到第一負載信息,根據(jù)所述第一負載信息調整所述物理節(jié)點中虛擬機的CPU使用率和內存使用大小;根據(jù)所述負載信息在第二時刻得到第二負載信息,根據(jù)所述第二負載信息調整所述虛擬化集群系統(tǒng)中所述物理節(jié)點間虛擬機的遷移。通過本發(fā)明實施例,可以實現(xiàn)虛擬化集群系統(tǒng)的負載平衡,并降低實現(xiàn)負載平衡時所需的開銷。
文檔編號G06F9/50GK101504620SQ20091010593
公開日2009年8月12日 申請日期2009年3月3日 優(yōu)先權日2009年3月3日
發(fā)明者全小飛, 翁楚良 申請人:華為技術有限公司;上海交通大學