一種遷移虛擬機的方法及裝置的制造方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及通信技術(shù)領(lǐng)域,尤其涉及一種迀移虛擬機的方法及裝置。
【背景技術(shù)】
[0002]隨著通信技術(shù)的發(fā)展,尤其是虛擬化技術(shù)的普及,云計算數(shù)據(jù)中心通常使用虛擬機來執(zhí)行任務(wù)。在實際應(yīng)用中,為了節(jié)省云計算數(shù)據(jù)中心的能耗,可以通過虛擬機迀移的方法來實現(xiàn)云計算數(shù)據(jù)中心的資源集中,也就是將虛擬機集中迀移至少數(shù)物理服務(wù)器上來執(zhí)行云計算數(shù)據(jù)中心的任務(wù),同時將已迀空虛擬機的物理服務(wù)器關(guān)閉。
[0003]在實際應(yīng)用中,執(zhí)行同一個應(yīng)用所產(chǎn)生任務(wù)的多個虛擬機之間需要進行數(shù)據(jù)傳輸。并且,虛擬機之間的傳輸距離越遠,在數(shù)據(jù)傳輸?shù)倪^程中所占用的資源就越多。為了實現(xiàn)資源集中,在虛擬機的迀移過程中,可能存在多個執(zhí)行同一個應(yīng)用所產(chǎn)生任務(wù)的虛擬機被迀移至多個不同的物理服務(wù)器,且這多個不同物理服務(wù)器之間的傳輸距離較遠。因此,采用上述迀移方法,雖然能夠?qū)崿F(xiàn)資源集中,降低云計算數(shù)據(jù)中心的能耗,但是增加了執(zhí)行同一個應(yīng)用所產(chǎn)生任務(wù)的虛擬機在迀移后進行數(shù)據(jù)傳輸所占用的資源。
【發(fā)明內(nèi)容】
[0004]本發(fā)明實施例提供一種迀移虛擬機的方法及裝置,能夠在資源集中的情況下,解決云計算數(shù)據(jù)中心中執(zhí)行同一個應(yīng)用所產(chǎn)生任務(wù)的虛擬機在迀移后進行數(shù)據(jù)傳輸所占用的資源高的問題。
[0005]為達到上述目的,本發(fā)明實施例采用如下技術(shù)方案:
[0006]第一方面,本發(fā)明實施例提供一種迀移虛擬機的方法,所述方法包括:
[0007]獲取物理服務(wù)器的資源利用率;
[0008]當(dāng)所述物理服務(wù)器的資源利用率大于所述物理服務(wù)器的資源利用率上限時,將所述物理服務(wù)器上所有虛擬機劃分為至少一個虛擬機集合,其中,單個虛擬機集合中的所有虛擬機執(zhí)行同一個應(yīng)用所產(chǎn)生的任務(wù);
[0009]根據(jù)所述至少一個虛擬機集合中每個虛擬機的資源利用率,確定所述物理服務(wù)器上的待迀移虛擬機,直至所述物理服務(wù)器上除所述待迀移虛擬機以外的所有虛擬機的資源利用率之和小于或等于所述物理服務(wù)器的資源利用率上限;
[0010]獲取所述待迀移虛擬機中每個虛擬機的迀移帶寬,其中,迀移帶寬表示虛擬機在迀移過程中占用的帶寬;
[0011]根據(jù)所述迀移帶寬,將所述待迀移虛擬機中屬于同一虛擬機集合的虛擬機迀移至除所述物理服務(wù)器以外的單個其他物理服務(wù)器,所述其他物理服務(wù)器的資源利用率小于所述物理服務(wù)器的資源利用率上限。
[0012]第二方面,本發(fā)明實施例提供一種迀移虛擬機的裝置,所述裝置包括:
[0013]資源狀態(tài)監(jiān)控模塊,用于獲取物理服務(wù)器的資源利用率;
[0014]分析模塊,用于當(dāng)所述物理服務(wù)器的資源利用率大于所述物理服務(wù)器的資源利用率上限時,將所述物理服務(wù)器上所有虛擬機劃分為至少一個虛擬機集合,其中,單個虛擬機集合中的所有虛擬機執(zhí)行同一個應(yīng)用所產(chǎn)生的任務(wù);
[0015]所述分析模塊,還用于根據(jù)所述至少一個虛擬機集合中每個虛擬機的資源利用率,確定所述物理服務(wù)器上的待迀移虛擬機,直至所述物理服務(wù)器上除所述待迀移虛擬機以外的所有虛擬機的資源利用率之和小于或等于所述物理服務(wù)器的資源利用率上限;
[0016]所述資源狀態(tài)監(jiān)控模塊,還用于獲取所述待迀移虛擬機中每個虛擬機的迀移帶寬,其中,迀移帶寬表示虛擬機在迀移過程中占用的帶寬;
[0017]所述分析模塊,還用于根據(jù)所述迀移帶寬,將所述待迀移虛擬機中屬于同一虛擬機集合的虛擬機迀移至除所述物理服務(wù)器以外的單個其他物理服務(wù)器,所述其他物理服務(wù)器的資源利用率小于所述物理服務(wù)器的資源利用率上限。
[0018]本發(fā)明實施例提供的一種迀移虛擬機的方法及裝置,當(dāng)物理服務(wù)器的資源利用率大于物理服務(wù)器的資源利用率上限時,將物理服務(wù)器上所有虛擬機劃分為至少一個虛擬機集合,并根據(jù)每個虛擬機的資源利用率確定待迀移虛擬機,直至物理服務(wù)器的資源利用率小于或等于物理服務(wù)器的資源利用率上限。之后獲取每個虛擬機的迀移帶寬,并根據(jù)迀移帶寬將每個待迀移虛擬機集合迀移至同一個其他物理服務(wù)器。其中,其他物理服務(wù)器中每個物理服務(wù)器的資源利用率小于物理服務(wù)器的資源利用率上限。相比較于現(xiàn)有技術(shù)中為了實現(xiàn)資源集中,將多個執(zhí)行同一個應(yīng)用所產(chǎn)生任務(wù)的虛擬機迀移至多個不同的物理服務(wù)器,本發(fā)明實施例可以根據(jù)虛擬機執(zhí)行的任務(wù)是否屬于同一個應(yīng)用所產(chǎn)生的任務(wù),來確定至少一個待迀移虛擬機集合,并將每個虛擬機集合中的待迀移虛擬機迀移至同一個其他物理服務(wù)器,保證了在執(zhí)行完畢迀移過程之后,盡可能的使執(zhí)行同一個應(yīng)用所產(chǎn)生任務(wù)的所有虛擬機在同一個物理服務(wù)器上運行。并且,當(dāng)執(zhí)行同一個應(yīng)用所產(chǎn)生任務(wù)的虛擬機不在同一個物理服務(wù)器上時,盡可能的減少這些虛擬機之間的傳輸距離,降低了因迀移后傳輸距離較遠而占用大量資源進行數(shù)據(jù)傳輸?shù)母怕?。因此,在資源集中的情況下,解決云計算數(shù)據(jù)中心中執(zhí)行同一個應(yīng)用所產(chǎn)生任務(wù)的虛擬機在迀移后進行數(shù)據(jù)傳輸所占用的資源高的冋題。
【附圖說明】
[0019]為了更清楚地說明本發(fā)明實施例中的技術(shù)方案,下面將對實施例中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本發(fā)明的一些實施例,對于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動的前提下,還可以根據(jù)這些附圖獲得其它的附圖。
[0020]圖1為本發(fā)明實施例提供的一種具體應(yīng)用場景不意圖;
[0021]圖2為本發(fā)明實施例提供的一種迀移虛擬機的方法流程圖;
[0022]圖3為本發(fā)明實施例提供的另一種迀移虛擬機的方法流程圖;
[0023]圖4為本發(fā)明實施例提供的另一種迀移虛擬機的方法流程圖;
[0024]圖5為本發(fā)明實施例提供的另一種迀移虛擬機的方法流程圖;
[0025]圖6為本發(fā)明實施例提供的另一種迀移虛擬機的方法流程圖;
[0026]圖7為本發(fā)明實施例提供的一種迀移虛擬機的裝置結(jié)構(gòu)示意圖。
【具體實施方式】
[0027]下面將結(jié)合本發(fā)明實施例中的附圖,對本發(fā)明實施例中的技術(shù)方案進行清楚、完整地描述,顯然,所描述的實施例僅僅是本發(fā)明一部分實施例,而不是全部的實施例?;诒景l(fā)明中的實施例,本領(lǐng)域普通技術(shù)人員在沒有做出創(chuàng)造性勞動前提下所獲得的所有其它實施例,都屬于本發(fā)明保護的范圍。
[0028]本發(fā)明實施例可以用于一種云計算數(shù)據(jù)中心,如圖1所示,云計算數(shù)據(jù)中心可以包括分配層和資源層。其中,分配層中可以包括分析模塊和資源狀態(tài)監(jiān)控模塊;資源層中可以包括一個或者多個物理服務(wù)器,比如物理服務(wù)器1、物理服務(wù)器2和物理服務(wù)器n,其中,每一個物理服務(wù)器對應(yīng)一個或者多個虛擬機。分析模塊可以根據(jù)資源狀態(tài)監(jiān)控模塊上報的各個物理服務(wù)器的資源利用率、物理服務(wù)器的資源利用率上限、物理服務(wù)器的資源利用率下限和物理服務(wù)器上每個虛擬機的資源利用率,來確定物理服務(wù)器上所有虛擬機中的待迀移虛擬機并將待迀移虛擬機迀移至其他物理服務(wù)器。
[0029]本發(fā)明實施例提供一種迀移虛擬機的方法,該方法流程均由分析模塊實現(xiàn)。如圖2所示,所述方法包括:
[0030]101、獲取物理服務(wù)器的資源利用率。
[0031]分析模塊可以從資源狀態(tài)監(jiān)控模塊上報的信息中,獲取資源層每個物理服務(wù)器的資源利用率。在本發(fā)明實施例中,資源狀態(tài)監(jiān)控模塊可以周期性上報每個物理服務(wù)器的資源利用率,從而保證分析模塊在確定待迀移虛擬機之后,能夠為待迀移虛擬機分配合適的物理服務(wù)器。這樣就可以使待迀移虛擬機從原物理服務(wù)器迀移至其他物理服務(wù)器之后,原物理服務(wù)器的資源利用率和其他物理服務(wù)器的資源利用率都處于一個相對穩(wěn)定的區(qū)間范圍內(nèi)。
[0032]102、當(dāng)所述物理服務(wù)器的資源利用率大于所述物理服務(wù)器的資源利用率上限時,將所述物理服務(wù)器上所有虛擬機劃分為至少一個虛擬機集合。
[0033]其中,單個虛擬機集合中的所有虛擬機執(zhí)行同一個應(yīng)用所產(chǎn)生的任務(wù)。
[0034]在劃分至少一個虛擬機集合的過程中,分析模塊可以按照每個虛擬機執(zhí)行的任務(wù)的屬性,將所有待迀移虛擬機劃分為一個或多個待迀移虛擬機集合,也就是將同一個應(yīng)用產(chǎn)生的所有任務(wù)所在的待迀移虛擬機組成一個待迀移虛擬機集合。
[0035]103、根據(jù)所述至少一個虛擬機集合中每個虛擬機的資源利用率,確定所述物理服務(wù)器上的待迀移虛擬機,直至所述物理服務(wù)器上除所述待迀移虛擬機以外的所有虛擬機的資源利用率之和小于或等于所述物理服務(wù)器的資源利用率上限。
[0036]分析模塊可以根據(jù)資源狀態(tài)監(jiān)控模塊所獲取的物理服務(wù)器上每個虛擬機的資源利用率,在確定待迀移虛擬機的過程中,確定每一個待迀移虛擬機都需要計算出迀移這一個虛擬機之后,物理服務(wù)器的資源利用率,并通過判斷物理服務(wù)器的資源利用和物理服務(wù)器的資源利用率上限的大小關(guān)系,來確定是否需要停止確定待迀移虛擬機的過程。由于物理服務(wù)器的資源利用率的大小等于物理服務(wù)器上所有虛擬機的資源利用率之和,因此,在確定物理服務(wù)器上的一個待迀移虛擬機之后,可以通過獲取物理服務(wù)器上未被確定為待迀移虛擬機的資源利用率之和,來確定在迀移這一個虛擬機之后物理服務(wù)器的資源利用率。需要說明的是,分析模塊可以按照虛擬機的資源利用率從大到小的順序,或從小到大的順序,或按照一定規(guī)則來確定待迀移虛擬機,直至物理服務(wù)器上除待迀移虛擬機以外的所有虛擬機的資源利用率之和小于或等于物理服務(wù)器的資源利用率上限。
[0037]在本發(fā)明實施例中,為了保證在迀移過程執(zhí)行完畢之后,屬于同一個虛擬機集合的虛擬機之間的傳輸距離,分析模塊可以優(yōu)先從一個虛擬機集合中確定待迀移虛擬機。當(dāng)這一個虛擬機集合中所有虛擬機都被確定為待迀移虛擬機之后,再從其他虛擬機集合中確定待迀移虛擬機,具體的實施方式會在后文中提到。
[0038]104、獲取所述待迀移虛擬機中每個虛擬機的迀移帶寬。
[0039]其中,迀移帶寬