專利名稱:電源管理系統(tǒng)及方法
技術(shù)領(lǐng)域:
本發(fā)明涉及一種電源管理系統(tǒng)及方法。
背景技術(shù):
隨著虛擬技術(shù)的興起,一臺主機集裝箱(Container)會安裝配置多臺主機,而一臺主機(Host)上又通常會安裝多臺虛擬機(Virtual Machine, VM)。在一般的硬件配置上,每一臺主機都需外接電源以提供正常運作及服務,由于每一臺虛擬機存在的目的及主要服務也有所不同。例如,一臺在公司內(nèi)部做為網(wǎng)絡代理服務器的虛擬機,它的使用量會因公司上下班時間而有所不同,上班時間員工使用多,此時虛擬機的服務量就重,使用到的主機資源(如CPU、Memory、Network bandwidth)就多,下班時間使用到的主機資源則明顯降低,許多主機基本處于空閑狀態(tài),導致電源的浪費。
發(fā)明內(nèi)容
鑒于以上內(nèi)容,有必要提供一種電源管理系統(tǒng),其可根據(jù)主機中虛擬機所占的資源使用量的變化,對虛擬機進行動態(tài)遷移,并關(guān)閉空閑的主機。鑒于以上內(nèi)容,有必要提供一種電源管理方法,其可根據(jù)主機中虛擬機所占的資源使用量的變化,對虛擬機進行動態(tài)遷移,并關(guān)閉空閑的主機。—種電源管理系統(tǒng),該系統(tǒng)包括指令生成模塊,用于通過時間觸發(fā)或事件觸發(fā)方式,觸發(fā)控制電腦生成對主機的電源管理指令;指令判斷模塊,用于判斷該電源管理指令的類型,所述電源管理指令的類型包括
第一類型和第二類型;分組計算模塊,用于當該電源管理指令的類型是第一類型時,根據(jù)主機中虛擬機所占的資源使用量,對虛擬機進行第一次分組;動態(tài)遷移模塊,用于根據(jù)上述第一次虛擬機分組,對虛擬機進行動態(tài)遷移;關(guān)機控制模塊,用于在完成虛擬機動態(tài)遷移后,關(guān)閉空閑的主機;開機控制模塊,用于當該電源管理指令的類型是第二類型時,開啟關(guān)閉的主機及其服務;所述分組計算模塊,還用于在開啟關(guān)閉的主機及其服務后,根據(jù)主機中虛擬機所占的資源使用量,對虛擬機進行第二次分組 '及所述動態(tài)遷移模塊,還用于根據(jù)上述第二次虛擬機分組,對虛擬機進行動態(tài)遷移,將所有虛擬機平均分配到各個主機。一種電源管理方法,該方法包括如下步驟 指令生成步驟,通過時間觸發(fā)或事件觸發(fā)方式,觸發(fā)控制電腦生成對主機的電源管理指令;
指令判斷步驟,判斷該電源管理指令的類型,所述電源管理指令的類型包括第一類型和第二類型;分組計算步驟一,當該電源管理指令的類型是第一類型時,根據(jù)主機中虛擬機所占的資源使用量,對虛擬機進行第一次分組;動態(tài)遷移步驟一,根據(jù)上述第一次虛擬機分組,對虛擬機進行動態(tài)遷移;關(guān)機控制步驟,當完成虛擬機動態(tài)遷移后,關(guān)閉空閑的主機;開機控制步驟,當該電源管理指令的類型是第二類型時,開啟關(guān)閉的主機及其服務;分組計算步驟二,當開啟關(guān)閉的主機及其服務后,根據(jù)主機中虛擬機所占的資源 使用量,對虛擬機進行第二次分組 '及動態(tài)遷移步驟二,根據(jù)上述第二次虛擬機分組,對虛擬機進行動態(tài)遷移,將所有虛擬機平均分配到各個主機。前述方法可以由電子設備(如電腦)執(zhí)行,其中該電子設備具有附帶了圖形用戶界面(⑶I)的顯示屏幕、一個或多個處理器、存儲器以及保存在存儲器中用于執(zhí)行這些方法的一個或多個模塊、程序或指令集。在某些實施例中,該電子設備提供了包括無線通信在內(nèi)的多種功能。用于執(zhí)行前述方法的指令可以包含在被配置成由一個或多個處理器執(zhí)行的計算機程序廣品中。相較于現(xiàn)有技術(shù),所述的電源管理系統(tǒng)及方法,其可根據(jù)主機中虛擬機所占的資源使用量的變化,對虛擬機進行動態(tài)遷移,并關(guān)閉空閑的主機,從而節(jié)省主機的電源消耗。
圖I是本發(fā)明控制電腦的應用環(huán)境示意圖。圖2是本發(fā)明控制電腦的結(jié)構(gòu)示意圖。圖3是電源管理系統(tǒng)的功能模塊圖。圖4是本發(fā)明電源管理方法的較佳實施例的流程圖。圖5是某主機集裝箱的示意圖。圖6是在第一類型的電源管理指令控制下,對圖5中各個虛擬機進行動態(tài)遷移后的示意圖。圖7是在第二類型的電源管理指令控制下,對圖6中各個虛擬機進行動態(tài)遷移后的示意圖。主要元件符號說明
權(quán)利要求
1.一種電源管理系統(tǒng),其特征在于,該系統(tǒng)包括 指令生成模塊,用于通過時間觸發(fā)或事件觸發(fā)方式,觸發(fā)控制電腦生成對主機的電源管理指令; 指令判斷模塊,用于判斷該電源管理指令的類型,所述電源管理指令的類型包括第一類型和第二類型; 分組計算模塊,用于當該電源管理指令的類型是第一類型時,根據(jù)主機中虛擬機所占的資源使用量,對虛擬機進行第一次分組; 動態(tài)遷移模塊,用于根據(jù)上述第一次虛擬機分組,對虛擬機進行動態(tài)遷移; 關(guān)機控制模塊,用于在完成虛擬機動態(tài)遷移后,關(guān)閉空閑的主機; 開機控制模塊,用于當該電源管理指令的類型是第二類型時,開啟關(guān)閉的主機及其服務; 所述分組計算模塊,還用于在開啟關(guān)閉的主機及其服務后,根據(jù)主機中虛擬機所占的資源使用量,對虛擬機進行第二次分組 '及 所述動態(tài)遷移模塊,還用于根據(jù)上述第二次虛擬機分組,對虛擬機進行動態(tài)遷移,將所有虛擬機平均分配到各個主機。
2.如權(quán)利要求I所述的電源管理系統(tǒng),其特征在于,所述時間觸發(fā)方式為,當?shù)竭_第一預設時間時,向主機發(fā)送第一類型的電源管理指令,關(guān)閉空閑的主機;當?shù)竭_第二預設時間時,向主機發(fā)送第二類型的電源管理指令,開啟關(guān)閉的主機及其服務; 所述事件觸發(fā)方式為,當某一主機中的虛擬機所占的資源使用量小于第一預設值,或所有主機中的虛擬機所占的資源使用量的總和小于第二預設值時,向主機發(fā)送第一類型的電源管理指令,關(guān)閉空閑的主機;當某一主機中的虛擬機所占的資源使用量大于第三預設值,或所有主機中的虛擬機所占的資源使用量的總和大于第四預設值時,向主機發(fā)送第二類型的電源管理指令,開啟關(guān)閉的主機及其服務。
3.如權(quán)利要求I所述的電源管理系統(tǒng),其特征在于,所述分組計算模塊對虛擬機進行第一次分組包括 (al)獲取所有主機中每個虛擬機所占的資源使用量,存儲于第一資源使用量列表;(a2)計算該第一資源使用量列表中所有主機的虛擬機所占的資源使用量的總和Utrtal,確定需要保持開機狀態(tài)的主機數(shù)量Ntl,然后計算需要保持開機狀態(tài)的主機的平均資源使用量 Vavgl,其中 Vavgl = (Utotal^-N0); (a3)在該第一資源使用量列表中,計算不同虛擬機組合的資源使用量的總和,找出總和最小且大于或等于上述平均資源使用量Vavgl的組合,作為一個分組 '及 (a4)如果該第一資源使用量列表中只剩下兩個虛擬機的資源使用量,則結(jié)束分組計算,將步驟(a3)中找到的分組和該第一資源使用量列表中剩下的兩個虛擬機作為最后的分組結(jié)果;或 如果該第一資源使用量列表中剩下一個或三個以上虛擬機的資源使用量,則將步驟(a3)中找到的分組從第一資源使用量列表中移除,然后執(zhí)行Ntl = Ntl-I,并返回步驟(a2)。
4.如權(quán)利要求3所述的電源管理系統(tǒng),其特征在于,該第一資源使用量列表為一組預設值,或根據(jù)所有主機的當前狀態(tài)獲取。
5.如權(quán)利要求3所述的電源管理系統(tǒng),其特征在于,該需要保持開機狀態(tài)的主機數(shù)量N0為一個預設值,或根據(jù)預先設定的資源使用量的臨界值Uthrestold獲??; 如果根據(jù)預先設定的資源使用量的臨界值Uthreshtjld獲取,則需要保持開機狀態(tài)的主機數(shù)量 N0 = int(UthreshQld+Ut(rtal)+l,其中,int()代表取整函數(shù)。
6.如權(quán)利要求1所述的電源管理系統(tǒng),其特征在于,所述分組計算模塊對虛擬機進行第二次分組包括(bl)獲取所有主機中每個虛擬機所占的資源使用量,存儲于第二資源使用量列表;(b2)計算該第二資源使用量列表中所有主機的虛擬機所占的資源使用量的總和Utrtal,根據(jù)所有主機的數(shù)量N,計算所有主機的平均資源使用量Vavg2,其中,Vavg2= (Utotal-N);(b3)在該第二資源使用量列表中,計算不同虛擬機組合的資源使用量的總和,找出總和最小且大于或等于上述平均資源使用量Vavg2的組合,作為一個分組 '及 (b4)如果該第二資源使用量列表中只剩下兩個虛擬機的資源使用量,則結(jié)束分組計算,將步驟(b3)中找到的分組和該第二資源使用量列表中剩下的兩個虛擬機作為最后的分組結(jié)果;或 如果該第二資源使用量列表中剩下一個或三個以上虛擬機的資源使用量,則將步驟(b3)中找到的分組從該第二資源使用量列表中移除,然后執(zhí)行N = N-1,并返回步驟(b2)。
7.一種電源管理方法,其特征在于,該方法包括如下步驟 指令生成步驟,通過時間觸發(fā)或事件觸發(fā)方式,觸發(fā)控制電腦生成對主機的電源管理指令; 指令判斷步驟,判斷該電源管理指令的類型,所述電源管理指令的類型包括第一類型和第二類型; 分組計算步驟一,當該電源管理指令的類型是第一類型時,根據(jù)主機中虛擬機所占的資源使用量,對虛擬機進行第一次分組; 動態(tài)遷移步驟一,根據(jù)上述第一次虛擬機分組,對虛擬機進行動態(tài)遷移; 關(guān)機控制步驟,當完成虛擬機動態(tài)遷移后,關(guān)閉空閑的主機; 開機控制步驟,當該電源管理指令的類型是第二類型時,開啟關(guān)閉的主機及其服務; 分組計算步驟二,當開啟關(guān)閉的主機及其服務后,根據(jù)主機中虛擬機所占的資源使用量,對虛擬機進行第二次分組 '及 動態(tài)遷移步驟二,根據(jù)上述第二次虛擬機分組,對虛擬機進行動態(tài)遷移,將所有虛擬機平均分配到各個主機。
8.如權(quán)利要求7所述的電源管理方法,其特征在于,所述時間觸發(fā)方式為,當?shù)竭_第一預設時間時,向主機發(fā)送第一類型的電源管理指令,關(guān)閉空閑的主機;當?shù)竭_第二預設時間時,向主機發(fā)送第二類型的電源管理指令,開啟關(guān)閉的主機及其服務; 所述事件觸發(fā)方式為,當某一主機中的虛擬機所占的資源使用量小于第一預設值,或所有主機中的虛擬機所占的資源使用量的總和小于第二預設值時,向主機發(fā)送第一類型的電源管理指令,關(guān)閉空閑的主機;當某一主機中的虛擬機所占的資源使用量大于第三預設值,或所有主機中的虛擬機所占的資源使用量的總和大于第四預設值時,向主機發(fā)送第二類型的電源管理指令,開啟關(guān)閉的主機及其服務。
9.如權(quán)利要求7所述的電源管理方法,其特征在于,所述對虛擬機進行第一次分組的步驟包括(al)獲取所有主機中每個虛擬機所占的資源使用量,存儲于第一資源使用量列表;(a2)計算該第一資源使用量列表中所有主機的虛擬機所占的資源使用量的總和Utrtal,確定需要保持開機狀態(tài)的主機數(shù)量Ntl,然后計算需要保持開機狀態(tài)的主機的平均資源使用量 Vavgl,其中 Vavgl = (Utotal^-N0); (a3)在該第一資源使用量列表中,計算不同虛擬機組合的資源使用量的總和,找出總和最小且大于或等于上述平均資源使用量Vavgl的組合,作為一個分組 '及 (a4)如果該第一資源使用量列表中只剩下兩個虛擬機的資源使用量,則結(jié)束分組計算,將步驟(a3)中找到的分組和該第一資源使用量列表中剩下的兩個虛擬機作為最后的分組結(jié)果;或 如果該第一資源使用量列表中剩下一個或三個以上虛擬機的資源使用量,則將步驟(a3)中找到的分組從第一資源使用量列表中移除,然后執(zhí)行Ntl = Ntl-I,并返回步驟(a2)。
10.如權(quán)利要求9所述的電源管理方法,其特征在于,該第一資源使用量列表為一組預設值,或根據(jù)所有主機的當前狀態(tài)獲取。
11.如權(quán)利要求9所述的電源管理方法,其特征在于,該需要保持開機狀態(tài)的主機數(shù)量N0為一個預設值,或根據(jù)預先設定的資源使用量的臨界值Uthrestold獲??; 如果根據(jù)預先設定的資源使用量的臨界值Uthreshtjld獲取,則需要保持開機狀態(tài)的主機數(shù)量 N0 = int(UthreshQld+Ut(rtal)+l,其中,int()代表取整函數(shù)。
12.如權(quán)利要求7所述的電源管理方法,其特征在于,所述對虛擬機進行第二次分組的步驟包括(bl)獲取所有主機中每個虛擬機所占的資源使用量,存儲于第二資源使用量列表;(b2)計算該第二資源使用量列表中所有主機的虛擬機所占的資源使用量的總和Utrtal,根據(jù)所有主機的數(shù)量N,計算所有主機的平均資源使用量Vavg2,其中,Vavg2= (Utotal-N);(b3)在該第二資源使用量列表中,計算不同虛擬機組合的資源使用量的總和,找出總和最小且大于或等于上述平均資源使用量Vavg2的組合,作為一個分組;及 (b4)如果該第二資源使用量列表中只剩下兩個虛擬機的資源使用量,則結(jié)束分組計算,將步驟(b3)中找到的分組和該第二資源使用量列表中剩下的兩個虛擬機作為最后的分組結(jié)果;或 如果該第二資源使用量列表中剩下一個或三個以上虛擬機的資源使用量,則將步驟(b3)中找到的分組從該第二資源使用量列表中移除,然后執(zhí)行N = N-1,并返回步驟(b2)。
全文摘要
一種電源管理系統(tǒng)及方法,該方法包括步驟觸發(fā)控制電腦生成對主機的電源管理指令;當該電源管理指令的類型是第一類型時,根據(jù)主機中虛擬機所占的資源使用量,對虛擬機進行第一次分組;根據(jù)上述第一次虛擬機分組,對虛擬機進行動態(tài)遷移;在完成虛擬機動態(tài)遷移后,關(guān)閉空閑的主機;當該電源管理指令的類型是第二類型時,開啟關(guān)閉的主機及其服務;根據(jù)主機中虛擬機所占的資源使用量,對虛擬機進行第二次分組;根據(jù)上述第二次虛擬機分組,對虛擬機進行動態(tài)遷移,將所有虛擬機平均分配到各個主機。利用本發(fā)明可以節(jié)省主機的電源消耗。
文檔編號G06F1/32GK102890554SQ20111020663
公開日2013年1月23日 申請日期2011年7月22日 優(yōu)先權(quán)日2011年7月22日
發(fā)明者李忠一, 葉建發(fā), 盧秋樺, 顏宗信, 林建志 申請人:鴻富錦精密工業(yè)(深圳)有限公司, 鴻海精密工業(yè)股份有限公司