国产精品1024永久观看,大尺度欧美暖暖视频在线观看,亚洲宅男精品一区在线观看,欧美日韩一区二区三区视频,2021中文字幕在线观看

  • <option id="fbvk0"></option>
    1. <rt id="fbvk0"><tr id="fbvk0"></tr></rt>
      <center id="fbvk0"><optgroup id="fbvk0"></optgroup></center>
      <center id="fbvk0"></center>

      <li id="fbvk0"><abbr id="fbvk0"><dl id="fbvk0"></dl></abbr></li>

      一種虛擬機負載均衡方法和裝置的制作方法

      文檔序號:6438966閱讀:458來源:國知局
      專利名稱:一種虛擬機負載均衡方法和裝置的制作方法
      技術(shù)領(lǐng)域
      本發(fā)明涉及通信技術(shù)領(lǐng)域,特別涉及一種虛擬機負載均衡方法和裝置。
      技術(shù)背景
      隨著計算機、網(wǎng)絡等各種技術(shù)的日趨發(fā)展,網(wǎng)絡中聚合了各種計算資源、存儲資源、數(shù)據(jù)資源、軟件資源以及服務資源等,采用虛擬主機技術(shù)可以更加有效地整合這些分散的各種資源,實現(xiàn)資源共享和有效利用,降低能耗。
      由于各物理主機處理能力的差異以及各應用程序的不確定性,導致了虛擬計算環(huán)境中各物理主機或虛擬機的負載失衡,即有些物理主機或虛擬機的資源利用率很高,導致該物理主機或虛擬機的資源被耗盡,而有些物理主機或虛擬機的資源利用率很低,甚至被閑置,沒有得到有效地利用。因此,如何協(xié)調(diào)不同物理主機和虛擬主機的負載,維持高效的資源使用率,是虛擬計算環(huán)境中一個關(guān)健問題。
      現(xiàn)有的虛擬機負載均衡方法,一般是在物理主機和虛擬機上安裝專門的代理,通過代理搜集物理主機和虛擬機上的負載信息,一般僅考慮物理主機或虛擬機上的CPU負載情況,并通過代理來執(zhí)行調(diào)度指令。
      現(xiàn)有技術(shù)中至少存在如下缺點需要在物理主機和虛擬機上安裝專門的代理,由于虛擬機運行在不同的管理程序(hypervisor)上,如Xen、Hyper_V、VMware等,且運行在虛擬機之上的操作系統(tǒng)也是多樣的,如linux、windows等,如果在每個虛擬機上安裝代理,不同操作系統(tǒng)或同一操作系統(tǒng)的不同版本都需要各自的代理版本,其開發(fā)和維護代價較大; 而且現(xiàn)有實現(xiàn)僅僅考慮物理主機和虛擬機的CPU負載忽略了其他影響虛擬機負載均衡的因素。發(fā)明內(nèi)容
      有鑒于此,本發(fā)明提供一種虛擬機負載均衡方法和裝置,能夠在降低開發(fā)復雜性和成本的情況下,實現(xiàn)虛擬機的負載均衡。
      為解決上述技術(shù)問題,本發(fā)明的技術(shù)方案是這樣實現(xiàn)的
      一種虛擬機負載均衡方法,周期監(jiān)測各物理主機及虛擬機的負載信息,并根據(jù)所述負載信息分別計算各物理主機及各物理主機上運行的虛擬機的負載因子,所述方法包括
      獲取任一物理主機最近連續(xù)預設(shè)次數(shù)負載指數(shù),若該物理主機的所述預設(shè)次數(shù)負載指數(shù)都大于第一預設(shè)閾值,則獲取該物理主機上的所有當前運行的虛擬機的最近一次負載指數(shù),并根據(jù)各虛擬機的預設(shè)親和因子和其最近一次負載指數(shù)確定待遷移的虛擬機,其中,所述預設(shè)親和因子表示虛擬機對自身所在物理主機的依賴程度;
      獲取各物理主機最近一次負載指數(shù),確定負載指數(shù)最小且負載指數(shù)小于第二預設(shè)閾值的物理主機作為虛擬機遷移的目的物理主機,其中,所述第二預設(shè)閾值小于所述第二預設(shè)閾值;
      將所述待遷移虛擬機遷移至所述目的物理主機。
      一種虛擬機負載均衡裝置,該裝置包括配置單元、監(jiān)測單元、計算單元、第一獲取確定單元、第二獲取確定單元、第三獲取確定單元和遷移單元;
      所述配置單元,用于設(shè)置監(jiān)測周期、預設(shè)次數(shù),各虛擬機的預設(shè)親和因子,第一預設(shè)閾值,第二預設(shè)閾值,其中,所述第二預設(shè)閾值小于所述第一預設(shè)閾值;
      所述監(jiān)測單元,用于根據(jù)所述配置單元設(shè)置的監(jiān)測周期監(jiān)測各物理主機及各物理主機上運行的虛擬機的負載信息;
      所述計算單元,用于根據(jù)所述監(jiān)測單元監(jiān)測的負載信息計算各物理主機及各物理主機上運行的虛擬機的負載因子;
      所述第一獲取確定單元,用于獲取所述計算單元計算的任一物理主機最近連續(xù)所述配置單元設(shè)置的預設(shè)次數(shù)負載指數(shù),確定該物理主機的所述預設(shè)次數(shù)負載指數(shù)都大于所述配置單元設(shè)置的第一預設(shè)閾值;
      所述第二獲取確定單元,用于當所述第一獲取單元確定該物理主機的所述預設(shè)次數(shù)負載指數(shù)都大于第一預設(shè)閾值時,獲取所述計算單元計算的該物理主機上的所有當前運行的虛擬機的最近一次負載指數(shù),并根據(jù)所述配置單元設(shè)置的各虛擬機的預設(shè)親和因子和其最近一次負載指數(shù)確定待遷移的虛擬機,其中,所述預設(shè)親和因子表示虛擬機對自身所在物理主機的依賴程度;
      所述第三獲取確定單元,用于當所述第一獲取單元確定該物理主機的所述預設(shè)次數(shù)負載指數(shù)都大于第一預設(shè)閾值時,獲取所述計算單元計算的各物理主機最近一次負載指數(shù),確定負載指數(shù)最小且負載指數(shù)小于所述配置單元設(shè)置的第二預設(shè)閾值的物理主機作為待遷移虛擬機遷移的目的物理主機;
      所述遷移單元,用于將所述第二獲取確定單元確定的待遷移虛擬機遷移至所述第三獲取確定單元確定的目的物理主機。
      綜上所述,本發(fā)明通過周期監(jiān)測各物理主機和各物理主機上運行的虛擬機的負載信息,結(jié)合虛擬機與其所在物理主機的預設(shè)親和因子,確定哪個物理主機上的虛擬機需要遷移到哪個相對空閑的物理主機上。能夠在降低開發(fā)復雜性和成本的情況下,實現(xiàn)虛擬機的負載均衡。


      圖1為本發(fā)明實施例中實現(xiàn)虛擬機負載均衡流程示意圖2為本發(fā)明具體實施例中實現(xiàn)虛擬機負載均衡的裝置結(jié)構(gòu)示意圖。
      具體實施方式
      為使本發(fā)明的目的、技術(shù)方案及優(yōu)點更加清楚明白,以下參照附圖并舉實施例,對本發(fā)明所述方案作進一步地詳細說明。
      參見圖1,圖1為本發(fā)明實施例中實現(xiàn)虛擬機負載均衡流程示意圖。具體步驟為
      步驟101,虛擬機管理平臺周期監(jiān)測各物理主機及各物理主機上運行的虛擬機的負載信息,并根據(jù)負載信息分別計算各物理主機及虛擬機的負載因子。
      本步驟中根據(jù)負載信息分別計算各物理主機和虛擬機的負載因子的方法為根據(jù)IO吞吐量確定IO吞吐量因子,并分別對CPU利用率、內(nèi)存使用率和IO吞吐量因子進行加權(quán)計算負載因子,其中,負載信息包括CPU利用率、內(nèi)存使用率和IO吞吐量。
      根據(jù)IO吞吐量確定IO吞吐量因子的方法為在監(jiān)測到的各物理主機的IO吞吐量中,選擇出值最大的IO吞吐量,則各物理主機的IO吞吐量因子為自身的IO吞吐量與最大的IO吞吐量的比值;在監(jiān)測到的任一物理主機的各虛擬機的IO吞吐量中,選擇出值最大的 IO吞吐量,則該物理主機的各虛擬機的IO吞吐量因子為自身的IO吞吐量與最大的IO吞吐量的比值。
      在上述的虛擬機的IO吞吐量因子計算中,是各物理主機的虛擬機分別計算的,即最大IO吞吐量不是所有虛擬機的最大IO吞吐量,而是同一物理主機的各虛擬機中的最大 IO吞吐量。
      本步驟是周期執(zhí)行的,并不是一直都在步驟102之前執(zhí)行。
      步驟102,虛擬機管理平臺獲取任一物理主機最近連續(xù)預設(shè)次數(shù)負載指數(shù),若該物理主機的預設(shè)次數(shù)負載指數(shù)都大于第一預設(shè)閾值,則獲取該物理主機上的所有當前運行的虛擬機的最近一次負載指數(shù),并根據(jù)各虛擬機的預設(shè)親和因子和其最近一次負載指數(shù)確定待遷移的虛擬機。
      本步驟中預設(shè)親和因子表示虛擬機對自身所在物理主機的依賴程度。根據(jù)各虛擬機的預設(shè)親和因子和其最近一次負載指數(shù)確定待遷移的虛擬機的方法為根據(jù)各虛擬機的預設(shè)親和因子對各虛擬機的最近一次負載指數(shù)加權(quán),將加權(quán)后值最大的虛擬機作為待遷移的虛擬機。由此可知本發(fā)明決定是否遷移一個虛擬機,不僅考慮該虛擬機的負載因子,還要考慮該虛擬機對自身所在物理主機的依賴程度。對于預設(shè)親和因子的設(shè)置以及通過預設(shè)親和因子對負載指數(shù)如何加權(quán),使用者可以根據(jù)具體應用情況而定。
      步驟103,虛擬機管理平臺獲取各物理主機最近一次負載指數(shù),確定負載指數(shù)最小且負載指數(shù)小于第二預設(shè)閾值的物理主機作為虛擬機遷移的目的物理主機。
      本步驟中的第二預設(shè)閾值小于步驟102中第一預設(shè)閾值。
      步驟104,虛擬機管理平臺將待遷移虛擬機遷移至目的物理主機。
      當新增虛擬機時,虛擬機管理平臺獲取各物理主機最近一次負載指數(shù),選擇負載指數(shù)最小的物理主機,并在該物理主機上新增虛擬機。
      本發(fā)明實施例中對各物理主機上運行的虛擬機進行監(jiān)測,若該虛擬機未運行則無法監(jiān)測其進程,無法獲取其負載信息。
      下面舉具體實施例來詳細說明本發(fā)明是如何實現(xiàn)虛擬機負載均衡的。
      虛擬機管理平臺需設(shè)置監(jiān)測物理主機和虛擬機的監(jiān)測周期,即多長時間對物理主機和虛擬機執(zhí)行一次負載監(jiān)測動作。若不設(shè)置默認該周期為5分鐘。為各虛擬機設(shè)置一個親和因子,表示虛擬機對自身所在物理主機的依賴性。具體實現(xiàn)可以設(shè)親和因子為0到1 之間的百分數(shù)。通常情況下不允許遷移。設(shè)置第一預設(shè)閾值,用于觸發(fā)負載均衡操作,即觸發(fā)虛擬機動態(tài)遷移;設(shè)置第二預設(shè)閾值,用于確定物理主機是否允許其他虛擬機遷入。
      虛擬機管理平臺周期性地對各物理主機及各物理主機上的虛擬機進行監(jiān)測,分別獲取其監(jiān)測結(jié)果,即負載信息,包括CPU利用率、內(nèi)存利用率、IO吞吐量等。
      虛擬機管理平臺監(jiān)測各物理主機時可以使用python腳本通過ssh遠程執(zhí)行相關(guān)統(tǒng)計命令來實現(xiàn),比如在Iinux上可以使用命令top/iostat等命令。
      虛擬機管理平臺監(jiān)測虛擬機時,運行在物理主機上的各虛擬機實質(zhì)上是通過該物理主機的一個進程來模擬的,因此可以使用python腳本通過安全框架(secure shell, ssh)遠程執(zhí)行相關(guān)統(tǒng)計命令從該虛擬機所在物理主機的對應進程。
      以物理主機的運行程序為KVM,獲取該物理主機上的各虛擬機的cpu、內(nèi)存使用率和IO吞吐量為例??梢允褂胮ython腳本通過top-p pid來獲取各虛擬機的cpu和內(nèi)存使用率。這里獲得的虛擬機的cpu和內(nèi)存使用率與實際值不是完全相等的精確的值,只是一個等價值,這個值能夠在特征上代表實際值,即實際值增加該值增加,實際值減小該值減小。IO吞吐量的獲取通過virsh list獲取到該物理主機上的所有running狀態(tài)的虛擬機, 從虛擬機的xml定義中檢索出接口名稱列表,依據(jù)該接口名稱逐個接口執(zhí)行相關(guān)命令查看 IO吞吐量信息。將一個虛擬機下的所有接口的發(fā)送字節(jié)數(shù)和接收字節(jié)數(shù)分別相加,得到該虛擬機的IO吞吐量的總發(fā)送字節(jié)數(shù)和總接收字節(jié)數(shù)。這里只是具體舉例的一種實現(xiàn)方式, 實現(xiàn)本發(fā)明并不局限于該方式。
      在具體實現(xiàn)時,虛擬機管理平臺可以記錄每次的監(jiān)測結(jié)果,需要確定是否存在虛擬機需要遷移時,再根據(jù)記錄的監(jiān)測結(jié)果計算負載指數(shù);也可監(jiān)測到監(jiān)測結(jié)果時就計算負載指數(shù),將每次計算的負載指數(shù)按時間順序記錄,當然,這種情況下可以記錄監(jiān)測結(jié)果,也可以不監(jiān)測。監(jiān)測可以保存在數(shù)據(jù)庫或文件中,也可以鏈表的形式保存在內(nèi)存中。本發(fā)明為了實現(xiàn)的便捷,采取監(jiān)測到監(jiān)測結(jié)果直接計算負載指數(shù)。以各物理主機的負載因子計算為例,具體實現(xiàn)如下
      在該次監(jiān)測結(jié)果中的IO吞吐量中,找出最大值ioMax,其對應的IO吞吐量百分比為1,其他的IO吞吐量百分比為do/ioMax。IO吞吐量越大的虛擬機越不應該遷移,因為遷移過程中對于業(yè)務可能有影響。
      獲取物理主機i的監(jiān)測結(jié)果Hi,依據(jù)事先設(shè)定好的各個負載因子的加權(quán)值計算負載指數(shù)。
      假設(shè)僅考慮CPU利用率(A)、內(nèi)存利用率(Β)、Ι0吞吐量百分比(C)三個負載因子, 且預先設(shè)定好的加權(quán)值分別為X、Y、Z,且(X+Y+Z) = 1。則物理主機Hi的負載指數(shù)Li = Ai*X+Bi*Y+Ci*Z。假設(shè)集群內(nèi)的物理主機個數(shù)為hMax,則i的取值為

      若采用記錄監(jiān)測結(jié)果,需要計算負載因子再計算時,還需引入一個預設(shè)次數(shù)N,則 Hin的負載指數(shù)Lin = Ain*X+Bin*Y+Cin*Z,η的取值為
      ,其中最近一次監(jiān)測數(shù)據(jù)其索引為0。
      虛擬機管理平臺獲取各物理主機5次連續(xù)的負載因子,若存在某個物理主機的5 次連續(xù)負載因子都超過第一預設(shè)閾值,則獲取該物理主機上的各虛擬機的負載指數(shù)。各虛擬機的負載指數(shù)獲取方式同上述各物理主機的負載指數(shù)。這里不再詳細贅述。若不存在物理主機5次連續(xù)負載因子都超第一預設(shè)閾值時,結(jié)束此操作。
      虛擬機管理平臺根據(jù)預設(shè)親和因子對獲取的各虛擬機的負載指數(shù)分別加權(quán),具體實現(xiàn)為(1-3€打11行7」)*1」其中,」的取值為W,VMax-ILVMax為該物理主機上虛擬機的個數(shù)。將加權(quán)后值最大的虛擬機作為待遷移的虛擬機。其中,affinitt為各虛擬機預設(shè)的親和因子,設(shè)各虛擬機的親和因子為
      之間的百分數(shù),其中0表示無依賴性,1表示依賴性很大,一般不建議遷移。加權(quán)的時候,權(quán)值使用的是(1-親和因子),表示親和因子越大的, 越不樂意遷移。
      虛擬機管理平臺通過上述同樣的方法,獲取各物理主機最近一次的負載指數(shù),選擇負載指數(shù)最小的物理主機,若該物理主機的負載指數(shù)小于第二預設(shè)閾值,即該物理主機能夠再新增虛擬機的情況下,將該物理主機作為待遷移虛擬機的目的物理主機。否則,未有物理主機能夠接受待遷移的虛擬機的遷移,該次操作結(jié)束。
      虛擬機管理平臺將待遷移的虛擬機遷移到目的物理主機。使用Iibvirt的virsh 工具執(zhí)行虛擬機遷移的動作,并將執(zhí)行結(jié)果反饋給觸發(fā)者。具體遷移過程同現(xiàn)有實現(xiàn),這里不再贅述。
      無論待遷移的虛擬機最終是否能夠遷移,對于上述操作過程虛擬機管理平臺都采用日志的形式記錄上述操作,為管理員提供方便。
      虛擬機管理平臺對集群內(nèi)的所有物理主機進行管理,包括增加、刪除物理主機,通過Iibvirt增加、刪除、暫停虛擬機等所有虛擬機生命周期。
      在本發(fā)明的具體實現(xiàn)中,在確定存在負載太大,需要有虛擬機需要遷移的物理主機時,也可以先確定是否存在相對空閑的物理主機,當不存在時,直接結(jié)束本次操作,不再確定超負載的物理主機需要遷移的虛擬機。當然,在實際應用中,一般都會存在相對空閑的物理主機可遷入;否則,系統(tǒng)內(nèi)會增加新的物理主機。
      基于上述同樣的發(fā)明構(gòu)思,本發(fā)明還提出一種虛擬機負載分擔裝置。參見圖2,圖 2為本發(fā)明具體實施例中實現(xiàn)虛擬機負載均衡的裝置結(jié)構(gòu)示意圖。該裝置包括配置單元 201、監(jiān)測單元202、計算單元203、第一獲取確定單元204、第二獲取確定單元205、第三獲取確定單元206和遷移單元207。
      配置單元201,用于設(shè)置監(jiān)測周期、預設(shè)次數(shù),各虛擬機的預設(shè)親和因子,第一預設(shè)閾值,第二預設(shè)閾值,其中,所述第二預設(shè)閾值小于所述第一預設(shè)閾值。
      監(jiān)測單元202,用于根據(jù)配置單元201設(shè)置的監(jiān)測周期監(jiān)測各物理主機及各物理主機上運行的虛擬機的負載信息。
      計算單元203,用于根據(jù)監(jiān)測單元202監(jiān)測的負載信息計算各物理主機及各物理主機上運行的虛擬機的負載因子。
      第一獲取確定單元204,用于獲取計算單元203計算的任一物理主機最近連續(xù)配置單元201設(shè)置的預設(shè)次數(shù)負載指數(shù),確定該物理主機的預設(shè)次數(shù)負載指數(shù)都大于配置單元201設(shè)置的第一預設(shè)閾值。
      第二獲取確定單元205,用于當?shù)谝猾@取單元204確定該物理主機的預設(shè)次數(shù)負載指數(shù)都大于第一預設(shè)閾值時,獲取計算單元203計算的該物理主機上的所有當前運行的虛擬機的最近一次負載指數(shù),并根據(jù)配置單元201設(shè)置的各虛擬機的預設(shè)親和因子和其最近一次負載指數(shù)確定待遷移的虛擬機,其中,預設(shè)親和因子表示虛擬機對自身所在物理主機的依賴程度。
      第三獲取確定單元206,用于當?shù)谝猾@取單元204確定該物理主機的預設(shè)次數(shù)負載指數(shù)都大于第一預設(shè)閾值時,獲取計算單元203計算的各物理主機最近一次負載指數(shù), 確定負載指數(shù)最小且負載指數(shù)小于配置單元201設(shè)置的第二預設(shè)閾值的物理主機作為待遷移虛擬機遷移的目的物理主機。
      遷移單元207,用于將第二獲取確定單元205確定的待遷移虛擬機遷移至第三獲取確定單元206確定的目的物理主機。
      較佳地,
      第二獲取確定單元205,用于根據(jù)各虛擬機的預設(shè)親和因子對各虛擬機的最近一次負載指數(shù)加權(quán),將加權(quán)后值最大的虛擬機作為待遷移的虛擬機。
      較佳地,
      監(jiān)測單元202,用于周期監(jiān)測各物理主機時,使用python腳本通過ssh遠程執(zhí)行相關(guān)統(tǒng)計命令來獲取各物理主機的負載信息;周期監(jiān)測運行在物理主機上的各虛擬機時,使用python腳本通過ssh遠程執(zhí)行相關(guān)命令從該虛擬機所在物理主機的對應進程獲取該虛擬機的負載信息,其中,負載信息包括CPU利用率、內(nèi)存使用率和IO吞吐量,相關(guān)統(tǒng)計命令根據(jù)物理主機的運行程序確定。
      較佳地,
      計算單元203,用于根據(jù)IO吞吐量確定IO吞吐量因子,并分別對CPU利用率、內(nèi)存使用率和IO吞吐量因子進行加權(quán)計算負載因子。
      較佳地,
      計算單元203,用于在監(jiān)測單元202監(jiān)測到的各物理主機的IO吞吐量中,選擇出值最大的IO吞吐量,則各物理主機的IO吞吐量因子為自身的IO吞吐量與最大的IO吞吐量的比值;在監(jiān)測單元202監(jiān)測到的任一物理主機上的各虛擬機的IO吞吐量中,選擇出值最大的IO吞吐量,則該物理主機上的各虛擬機的IO吞吐量因子為自身的IO吞吐量與最大的 IO吞吐量的比值。
      較佳地,
      第三獲取確定單元206,進一步用于當新增虛擬機時,獲取計算單元203計算的各物理主機的最近一次負載指數(shù),選擇負載指數(shù)最小的物理主機,并在該物理主機上新增虛擬機。
      上述實施例的單元可以集成于一體,也可以分離部署;可以合并為一個單元,也可以進一步拆分成多個子單元。
      綜上所述,本發(fā)明綜合考慮物理主機和虛擬機的CPU利用率、內(nèi)存利用率、IO吞吐量等負載因素來確定虛擬機的動態(tài)遷移動作,實現(xiàn)虛擬機分布的負載均衡,有效提高了虛擬機的平滑遷移,避免由于高內(nèi)存利用率和IO吞吐量的情況下遷移虛擬機對虛擬機所造成的影響。
      本發(fā)明不需要在物理主機或虛擬機上事先安裝代理,減少了復雜性和成本。不僅考慮物物理主機的CPU負載,也考慮該物理主機上的虛擬機的負載,還通過配置虛擬機對物理主機的親和性,親和性越強越不建議動態(tài)遷移。
      以上所述,僅為本發(fā)明的較佳實施例而已,并非用于限定本發(fā)明的保護范圍。凡在本發(fā)明的精神和原則之內(nèi),所作的任何修改、等同替換、改進等,均應包含在本發(fā)明的保護范圍之內(nèi)。
      權(quán)利要求
      1.一種虛擬機負載均衡方法,其特征在于,周期監(jiān)測各物理主機及各物理主機上運行的虛擬機的負載信息,并根據(jù)所述負載信息分別計算各物理主機及各物理主機上運行的虛擬機的負載因子,所述方法包括獲取任一物理主機最近連續(xù)預設(shè)次數(shù)負載指數(shù),若該物理主機的所述預設(shè)次數(shù)負載指數(shù)都大于第一預設(shè)閾值,則獲取該物理主機上的所有當前運行的虛擬機的最近一次負載指數(shù),并根據(jù)各虛擬機的預設(shè)親和因子和其最近一次負載指數(shù)確定待遷移的虛擬機,其中,所述預設(shè)親和因子表示虛擬機對自身所在物理主機的依賴程度;獲取各物理主機最近一次負載指數(shù),確定負載指數(shù)最小且負載指數(shù)小于第二預設(shè)閾值的物理主機作為虛擬機遷移的目的物理主機,其中,所述第二預設(shè)閾值小于所述第一預設(shè)閾值;將所述待遷移虛擬機遷移至所述目的物理主機。
      2.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述根據(jù)各虛擬機的預設(shè)親和因子和其最近一次負載指數(shù)確定待遷移的虛擬機的方法為< 根據(jù)各虛擬機的預設(shè)親和因子對所述各虛擬機的最近一次負載指數(shù)加權(quán),將加權(quán)后值最大的虛擬機作為待遷移的虛擬機。
      3.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述周期監(jiān)測各物理主機及各物理主機上運行的虛擬機的負載信息的方法為周期監(jiān)測各物理主機時,使用python腳本通過安全框架ssh遠程執(zhí)行相關(guān)統(tǒng)計命令來獲取各物理主機的負載信息;周期監(jiān)測運行在物理主機上的各虛擬機時,使用python腳本通過ssh遠程執(zhí)行相關(guān)命令從該虛擬機所在物理主機的對應進程獲取該虛擬機的負載信息,其中,所述負載信息包括CPU利用率、內(nèi)存使用率和IO吞吐量,所述相關(guān)統(tǒng)計命令根據(jù)物理主機的運行程序確定。
      4.根據(jù)權(quán)利要求3所述的方法,其特征在于,所述根據(jù)負載信息分別計算各物理主機及各物理主機上運行的虛擬機的負載因子的方法為根據(jù)IO吞吐量確定IO吞吐量因子,并分別對CPU利用率、內(nèi)存使用率和IO吞吐量因子進行加權(quán)計算負載因子。
      5.根據(jù)權(quán)利要求4所述的方法,其特征在于,所述根據(jù)IO吞吐量確定IO吞吐量因子的方法為在監(jiān)測到的各物理主機的IO吞吐量中,選擇出值最大的IO吞吐量,則各物理主機的IO 吞吐量因子為自身的IO吞吐量與最大的IO吞吐量的比值;在監(jiān)測到的任一物理主機上的各虛擬機的IO吞吐量中,選擇出值最大的IO吞吐量,則該物理主機上的各虛擬機的IO吞吐量因子為自身的IO吞吐量與最大的IO吞吐量的比值。
      6.根據(jù)權(quán)利要求1-5任意一項所述的方法,其特征在于,當新增虛擬機時,所述方法進一步包括獲取各物理主機的最近一次負載指數(shù),選擇負載指數(shù)最小的物理主機,并在該物理主機上新增虛擬機。
      7.—種虛擬機負載均衡裝置,其特征在于,該裝置包括配置單元、監(jiān)測單元、計算單元、第一獲取確定單元、第二獲取確定單元、第三獲取確定單元和遷移單元;所述配置單元,用于設(shè)置監(jiān)測周期、預設(shè)次數(shù),各虛擬機的預設(shè)親和因子,第一預設(shè)閾值,第二預設(shè)閾值,其中,所述第二預設(shè)閾值小于所述第一預設(shè)閾值;所述監(jiān)測單元,用于根據(jù)所述配置單元設(shè)置的監(jiān)測周期監(jiān)測各物理主機及各物理主機上運行虛擬機的負載信息;所述計算單元,用于根據(jù)所述監(jiān)測單元監(jiān)測的負載信息計算各物理主機及虛擬機的負載因子;所述第一獲取確定單元,用于獲取所述計算單元計算的任一物理主機最近連續(xù)所述配置單元設(shè)置的預設(shè)次數(shù)負載指數(shù),確定該物理主機的所述預設(shè)次數(shù)負載指數(shù)都大于所述配置單元設(shè)置的第一預設(shè)閾值;所述第二獲取確定單元,用于當所述第一獲取單元確定該物理主機的所述預設(shè)次數(shù)負載指數(shù)都大于第一預設(shè)閾值時,獲取所述計算單元計算的該物理主機上的所有當前運行的虛擬機的最近一次負載指數(shù),并根據(jù)所述配置單元設(shè)置的各虛擬機的預設(shè)親和因子和其最近一次負載指數(shù)確定待遷移的虛擬機,其中,所述預設(shè)親和因子表示虛擬機對自身所在物理主機的依賴程度;所述第三獲取確定單元,用于當所述第一獲取單元確定該物理主機的所述預設(shè)次數(shù)負載指數(shù)都大于第一預設(shè)閾值時,獲取所述計算單元計算的各物理主機最近一次負載指數(shù), 確定負載指數(shù)最小且負載指數(shù)小于所述配置單元設(shè)置的第二預設(shè)閾值的物理主機作為待遷移虛擬機遷移的目的物理主機;所述遷移單元,用于將所述第二獲取確定單元確定的待遷移虛擬機遷移至所述第三獲取確定單元確定的目的物理主機。
      8.根據(jù)權(quán)利要求7所述的裝置,其特征在于,所述第二獲取確定單元,用于根據(jù)各虛擬機的預設(shè)親和因子對所述各虛擬機的最近一次負載指數(shù)加權(quán),將加權(quán)后值最大的虛擬機作為待遷移的虛擬機。
      9.根據(jù)權(quán)利要求7所述的裝置,其特征在于,所述監(jiān)測單元,用于周期監(jiān)測各物理主機時,使用python腳本通過安全框架ssh遠程執(zhí)行相關(guān)統(tǒng)計命令來獲取各物理主機的負載信息;周期監(jiān)測運行在物理主機上的各虛擬機時,使用python腳本通過ssh遠程執(zhí)行相關(guān)命令從該虛擬機所在物理主機的對應進程獲取該虛擬機的負載信息,其中,所述負載信息包括CPU利用率、內(nèi)存使用率和IO吞吐量,所述相關(guān)統(tǒng)計命令根據(jù)物理主機的運行程序確定。
      10.根據(jù)權(quán)利要求9所述的裝置,其特征在于,所述計算單元,用于根據(jù)IO吞吐量確定IO吞吐量因子,并分別對CPU利用率、內(nèi)存使用率和IO吞吐量因子進行加權(quán)計算負載因子。
      11.根據(jù)權(quán)利要求10所述的裝置,其特征在于,所述計算單元,用于在所述監(jiān)測單元監(jiān)測到的各物理主機的IO吞吐量中,選擇出值最大的IO吞吐量,則各物理主機的IO吞吐量因子為自身的IO吞吐量與最大的IO吞吐量的比值;在所述監(jiān)測單元監(jiān)測到的任一物理主機上的各虛擬機的IO吞吐量中,選擇出值最大的IO吞吐量,則該物理主機上的各虛擬機的IO吞吐量因子為自身的IO吞吐量與最大的IO 吞吐量的比值。
      12.根據(jù)權(quán)利要求7-11任意一項所述的裝置,其特征在于,所述第三獲取確定單元,進一步用于當新增虛擬機時,獲取所述計算單元計算的各物理主機的最近一次負載指數(shù),選擇負載指數(shù)最小的物理主機,并在該物理主機上新增虛擬機。
      全文摘要
      本發(fā)明公開了一種虛擬機負載均衡方法,該方法通過周期監(jiān)測各物理主機以及其上運行的虛擬機的負載信息,結(jié)合虛擬機與其所在物理主機的預設(shè)親和因子,確定哪個物理主機上的虛擬機需要遷移到哪個相對空閑的物理主機上?;谕瑯拥陌l(fā)明構(gòu)思,本發(fā)明還提出一種裝置,能夠在降低開發(fā)復雜性和成本的情況下,實現(xiàn)虛擬機的負載均衡。
      文檔編號G06F9/455GK102508718SQ201110373058
      公開日2012年6月20日 申請日期2011年11月22日 優(yōu)先權(quán)日2011年11月22日
      發(fā)明者蔡志峰 申請人:杭州華三通信技術(shù)有限公司
      網(wǎng)友詢問留言 已有0條留言
      • 還沒有人留言評論。精彩留言會獲得點贊!
      1