實(shí)現(xiàn)虛擬機(jī)遷移的方法、裝置和集群系統(tǒng)的制作方法
【專(zhuān)利摘要】本發(fā)明提供一種實(shí)現(xiàn)虛擬機(jī)遷移的方法、裝置和集群系統(tǒng),其中方法包括:在確定源物理主機(jī)及所需遷移的虛擬機(jī)后,確定虛擬機(jī)遷移順序,并分析集群系統(tǒng)上當(dāng)前運(yùn)行的多個(gè)物理主機(jī)資源使用信息,將多個(gè)物理主機(jī)按照資源使用信息優(yōu)先級(jí)進(jìn)行物理主機(jī)排序;從虛擬機(jī)遷移順序中排序最前的虛擬機(jī)開(kāi)始,按照虛擬機(jī)遷移順序,順序執(zhí)行多個(gè)虛擬機(jī)遷移到目標(biāo)物理主機(jī)的操作,直至所有的虛擬機(jī)遷移操作都結(jié)束。本發(fā)明提供的實(shí)現(xiàn)虛擬機(jī)遷移的方法、裝置和集群系統(tǒng)在虛擬機(jī)遷移可靠性的前提下,保障集群系統(tǒng)中虛擬機(jī)鏡像的高效性和安全性。
【專(zhuān)利說(shuō)明】實(shí)現(xiàn)虛擬機(jī)遷移的方法、裝置和集群系統(tǒng)
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及計(jì)算機(jī)信息【技術(shù)領(lǐng)域】,特別是涉及一種實(shí)現(xiàn)虛擬機(jī)遷移的方法、裝置和集群系統(tǒng)。
【背景技術(shù)】
[0002]虛擬機(jī)指通過(guò)軟件模擬的具有完整硬件系統(tǒng)功能的、運(yùn)行在一個(gè)完全隔離環(huán)境中的完整計(jì)算機(jī)系統(tǒng)。通過(guò)虛擬機(jī)軟件,你可以在一臺(tái)物理計(jì)算機(jī)上模擬出一臺(tái)或多臺(tái)虛擬的計(jì)算機(jī),這些虛擬機(jī)完全就像真正的計(jì)算機(jī)那樣進(jìn)行工作,例如你可以安裝操作系統(tǒng)、安裝應(yīng)用程序、訪問(wèn)網(wǎng)絡(luò)資源等等。對(duì)于你而言,它只是運(yùn)行在你物理計(jì)算機(jī)上的一個(gè)應(yīng)用程序,但是對(duì)于在虛擬機(jī)中運(yùn)行的應(yīng)用程序而言,它就是一臺(tái)真正計(jì)算機(jī)。
[0003]共享存儲(chǔ),指的是多臺(tái)服務(wù)器訪問(wèn)同一個(gè)存儲(chǔ)設(shè)備的同一個(gè)分區(qū),系統(tǒng)允許多個(gè)用戶(hù)共享同一份文件。解決不同用戶(hù)有同一份文件各自的備份而造成的空間的浪費(fèi),多臺(tái)主機(jī)共享存儲(chǔ)系統(tǒng),實(shí)現(xiàn)各臺(tái)主機(jī)可相互高效率的共享數(shù)據(jù)和傳遞數(shù)據(jù),并實(shí)現(xiàn)數(shù)據(jù)保存和保護(hù)功能。
[0004]HA技術(shù),過(guò)IP做心跳檢測(cè)時(shí),集群管理端會(huì)通過(guò)心跳路徑,周期性的發(fā)出相互檢測(cè)的測(cè)試包,如果此時(shí)一臺(tái)機(jī)出現(xiàn)故障,集群管理端在連續(xù)丟失設(shè)定數(shù)目的檢測(cè)包后,會(huì)認(rèn)為主機(jī)出現(xiàn)故障,這時(shí)備集群管理端自動(dòng)檢測(cè)設(shè)置中是否有第二種心跳,如果沒(méi)有第二種心跳的話,集群管理端則根據(jù)已設(shè)定的規(guī)則,啟動(dòng)虛擬機(jī)遷移任務(wù)。
[0005]在虛擬機(jī)執(zhí)行離線遷移時(shí):在遷移之前將虛擬機(jī)暫停,如果共享存儲(chǔ),則只拷貝系統(tǒng)狀態(tài)至目標(biāo)主機(jī),最后在目的主機(jī)重建虛擬機(jī)狀態(tài),恢復(fù)執(zhí)行。如果使用本地存儲(chǔ),則需要同時(shí)拷貝虛擬機(jī)鏡像和狀態(tài)到目標(biāo)物理主機(jī)。這種方式的遷移過(guò)程需要虛擬機(jī)的停止運(yùn)行。從用戶(hù)角度看,有明確的一段服務(wù)不可用的時(shí)間,這種遷移方式簡(jiǎn)單易行,適用于對(duì)服務(wù)可用性要求不嚴(yán)格的場(chǎng)合。
[0006]然而,虛擬機(jī)在創(chuàng)建時(shí)擁有CPU、內(nèi)存等資源大小,它占用物理主機(jī)CPU、內(nèi)存資源,如果簡(jiǎn)單指定遷移目標(biāo)主機(jī),尤其是需要遷移的物理主機(jī)上有多個(gè)虛擬機(jī)時(shí),就到導(dǎo)致遷移虛擬機(jī)任務(wù)失敗,或者遷移后虛擬機(jī)運(yùn)行性能下降,導(dǎo)致集群系統(tǒng)運(yùn)行不穩(wěn)定。
[0007]因此對(duì)于現(xiàn)有技術(shù),如果沒(méi)有一種良好的遷移策略,在需要遷移的物理主機(jī)上的多個(gè)虛擬機(jī)時(shí),不能保證遷移虛擬機(jī)全部成功,將導(dǎo)致或者遷移后全部或部分虛擬機(jī)運(yùn)行性能下降和不穩(wěn)定。
【發(fā)明內(nèi)容】
[0008]本發(fā)明提供了一種實(shí)現(xiàn)虛擬機(jī)遷移的方法、裝置和集群系統(tǒng),用以高效地實(shí)現(xiàn)對(duì)虛擬機(jī)遷移并保障集群系統(tǒng)的可靠運(yùn)行。
[0009]基于上述問(wèn)題,本發(fā)明實(shí)施例提供的一種實(shí)現(xiàn)虛擬機(jī)遷移的方法,包括以下步驟:
[0010]根據(jù)源物理主機(jī)確定所需遷移的虛擬機(jī),并獲取所需遷移的一個(gè)或多個(gè)虛擬機(jī)的配置信息,根據(jù)所述虛擬機(jī)的配置信息確定虛擬機(jī)遷移順序;
[0011]分析集群系統(tǒng)上當(dāng)前運(yùn)行的多個(gè)物理主機(jī)資源使用信息,將多個(gè)物理主機(jī)按照資源使用信息優(yōu)先級(jí)進(jìn)行物理主機(jī)排序;
[0012]從所述虛擬機(jī)遷移順序中排序最前的虛擬機(jī)開(kāi)始,按照虛擬機(jī)遷移順序,順序執(zhí)行多個(gè)虛擬機(jī)遷移到目標(biāo)物理主機(jī)的操作,直至所有的虛擬機(jī)遷移操作都結(jié)束;在遷移過(guò)程中,選擇物理主機(jī)排序序列最前的物理主機(jī)作為目標(biāo)物理主機(jī),直至當(dāng)前所述目標(biāo)物理主機(jī)的內(nèi)存資源不能滿(mǎn)足當(dāng)前需要遷移的虛擬機(jī)內(nèi)存占用資源或達(dá)到預(yù)設(shè)的水平冗余條件時(shí),選擇物理主機(jī)排序序列中的下一個(gè)物理主機(jī)作為新的目標(biāo)物理主機(jī)。
[0013]較佳地,作為一種可實(shí)施方式,所述確定需要遷移的虛擬機(jī)及遷移順序之前,還包括以下步驟:
[0014]按照預(yù)設(shè)的時(shí)間周期定期通過(guò)IP做心跳檢測(cè),檢測(cè)集群系統(tǒng)上運(yùn)行的多個(gè)物理主機(jī)的運(yùn)行狀態(tài),并確定發(fā)生故障的源物理主機(jī)。
[0015]較佳地,作為一種可實(shí)施方式,所述根據(jù)虛擬機(jī)的配置信息確定虛擬機(jī)遷移順序具體包括以下步驟:
[0016]根據(jù)獲取的虛擬機(jī)的配置信息,判斷是否有預(yù)先設(shè)定的遷移順序,若是,則確定虛擬機(jī)遷移順序?yàn)轭A(yù)先設(shè)定的遷移順序;若否,則確定虛擬機(jī)遷移順序?yàn)榕渲眯畔⒅械奶摂M機(jī)創(chuàng)建時(shí)間順序;
[0017]所述虛擬機(jī)的配置信息包括:虛擬機(jī)內(nèi)存的大小信息、多個(gè)虛擬機(jī)創(chuàng)建時(shí)間順序信息或預(yù)先設(shè)定的遷移順序信息。
[0018]較佳地,作為一種可實(shí)施方式,所述物理主機(jī)資源使用信息包括當(dāng)前物理主機(jī)剩余內(nèi)存和當(dāng)前物理主機(jī)CPU使用率。
[0019]進(jìn)一步地,作為一種可實(shí)施方式,所述根據(jù)資源使用信息優(yōu)先級(jí)進(jìn)行物理主機(jī)排序具體包括以下步驟:
[0020]根據(jù)當(dāng)前物理主機(jī)剩余內(nèi)存的大小,進(jìn)行降序排序;
[0021]如果排列后序列內(nèi)相鄰的當(dāng)前物理主機(jī)內(nèi)存的大小差值低于預(yù)設(shè)的內(nèi)存閾值,則按照CPU使用率大小,對(duì)所述相鄰的物理主機(jī)進(jìn)行升序排列并最終確定所述物理主機(jī)排序;
[0022]其中,所述預(yù)設(shè)的內(nèi)存閾值為128M。
[0023]較佳地,作為一種可實(shí)施方式,所述預(yù)設(shè)的水平冗余條件為:執(zhí)行虛擬機(jī)遷移后的目標(biāo)物理主機(jī)的剩余內(nèi)存小于物理主機(jī)總內(nèi)存的20% ;
[0024]所述虛擬機(jī)遷移后的目標(biāo)物理主機(jī)的剩余內(nèi)存大小等于當(dāng)前物理主機(jī)剩余內(nèi)存大小減去遷移到所述物理主機(jī)的虛擬機(jī)內(nèi)存的大小。
[0025]進(jìn)一步地,作為一種可實(shí)施方式,所述執(zhí)行多個(gè)虛擬機(jī)的遷移操作之后,還包括以下步驟:
[0026]多個(gè)虛擬機(jī)遷移到目標(biāo)物理主機(jī)后,恢復(fù)虛擬機(jī)原來(lái)的運(yùn)行狀態(tài)并修改多個(gè)虛擬機(jī)分別所屬的物理主機(jī)因虛擬機(jī)遷移操作發(fā)生改變的配置信息。
[0027]相應(yīng)地,本發(fā)明還提供了實(shí)現(xiàn)虛擬機(jī)遷移的裝置,所述實(shí)現(xiàn)虛擬機(jī)遷移的裝置包括虛擬機(jī)排序模塊,物理主機(jī)排序模塊和遷移處理模塊,其中:
[0028]所述虛擬機(jī)排序模塊,用于根據(jù)源物理主機(jī)確定所需遷移的虛擬機(jī),并獲取所需遷移的一個(gè)或多個(gè)虛擬機(jī)的配置信息,根據(jù)所述虛擬機(jī)的配置信息確定虛擬機(jī)遷移順序;
[0029]所述物理主機(jī)排序模塊,用于分析集群系統(tǒng)上當(dāng)前運(yùn)行的多個(gè)物理主機(jī)資源使用信息,將多個(gè)物理主機(jī)按照資源使用信息優(yōu)先級(jí)進(jìn)行物理主機(jī)排序;
[0030]所述遷移處理模塊,用于從所述虛擬機(jī)遷移順序中排序最前的虛擬機(jī)開(kāi)始,按照虛擬機(jī)遷移順序,順序執(zhí)行多個(gè)虛擬機(jī)遷移到目標(biāo)物理主機(jī)的操作,直至所有的虛擬機(jī)遷移操作都結(jié)束;在遷移過(guò)程中,選擇物理主機(jī)排序序列最前的物理主機(jī)作為目標(biāo)物理主機(jī),直至當(dāng)前所述目標(biāo)物理主機(jī)的內(nèi)存資源不能滿(mǎn)足當(dāng)前需要遷移的虛擬機(jī)內(nèi)存占用資源或達(dá)到預(yù)設(shè)的水平冗余條件時(shí),選擇物理主機(jī)排序序列中的下一個(gè)物理主機(jī)作為新的目標(biāo)物理主機(jī)。
[0031]較佳地,作為一種可實(shí)施方式,所述實(shí)現(xiàn)虛擬機(jī)遷移的裝置還包括心跳檢測(cè)模塊,其中:
[0032]所述心跳檢測(cè)模塊,用于按照預(yù)設(shè)的時(shí)間周期定期通過(guò)IP做心跳檢測(cè),檢測(cè)集群系統(tǒng)上運(yùn)行的多個(gè)物理主機(jī)的運(yùn)行狀態(tài),并確定發(fā)生故障的源物理主機(jī)。
[0033]進(jìn)一步地,作為一種可實(shí)施方式,所述虛擬機(jī)排序模塊包括判斷子模塊,其中:
[0034]所述判斷子模塊,用于根據(jù)獲取的虛擬機(jī)的配置信息,判斷是否有預(yù)先設(shè)定的遷移順序,若是,則確定虛擬機(jī)遷移順序?yàn)轭A(yù)先設(shè)定的遷移順序;若否,則確定虛擬機(jī)遷移順序?yàn)榕渲眯畔⒅械奶摂M機(jī)創(chuàng)建時(shí)間順序;
[0035]所述虛擬機(jī)的配置信息包括:虛擬機(jī)內(nèi)存的大小信息、多個(gè)虛擬機(jī)創(chuàng)建時(shí)間順序信息或預(yù)先設(shè)定的遷移順序信息。
[0036]進(jìn)一步地,作為一種可實(shí)施方式,所述物理主機(jī)排序模塊包括物理主機(jī)排序子模塊,其中:
[0037]所述物理主機(jī)排序子模塊,用于根據(jù)當(dāng)前物理主機(jī)剩余內(nèi)存的大小,進(jìn)行降序排序;
[0038]如果排列后序列內(nèi)相鄰的當(dāng)前物理主機(jī)內(nèi)存的大小差值低于預(yù)設(shè)的內(nèi)存閾值,則按照CPU使用率大小,對(duì)所述相鄰的物理主機(jī)進(jìn)行升序排列并最終確定所述物理主機(jī)排序;
[0039]其中,所述預(yù)設(shè)的內(nèi)存閾值為128M。
[0040]較佳地,作為一種可實(shí)施方式,所述實(shí)現(xiàn)虛擬機(jī)遷移的裝置還包括恢復(fù)模塊,其中:
[0041]所述恢復(fù)模塊,用于在多個(gè)虛擬機(jī)遷移到目標(biāo)物理主機(jī)后,恢復(fù)虛擬機(jī)原來(lái)的運(yùn)行狀態(tài)并修改多個(gè)虛擬機(jī)分別所屬的物理主機(jī)因虛擬機(jī)遷移操作發(fā)生改變的配置信息。
[0042]相應(yīng)地,本發(fā)明還提供了一種集群系統(tǒng),所述包括集群系統(tǒng)多個(gè)物理主機(jī),每個(gè)所述物理主機(jī)上可以安裝有一個(gè)或多個(gè)虛擬機(jī),所述集群系統(tǒng)還包括上述虛擬機(jī)遷移裝置;
[0043]所述虛擬機(jī)遷移裝置用于在源物理主機(jī)出現(xiàn)故障時(shí),將源物理主機(jī)上的虛擬機(jī)遷移至目標(biāo)物理主機(jī)。
[0044]本發(fā)明的有益效果包括:
[0045]本發(fā)明提供的一種實(shí)現(xiàn)虛擬機(jī)遷移的方法、裝置和集群系統(tǒng),其中方法包括:在確定源物理主機(jī)及所需遷移的虛擬機(jī)后,確定虛擬機(jī)遷移順序,并分析集群系統(tǒng)上當(dāng)前運(yùn)行的多個(gè)物理主機(jī)資源使用信息,將多個(gè)物理主機(jī)按照資源使用信息優(yōu)先級(jí)進(jìn)行物理主機(jī)排序;從虛擬機(jī)遷移順序中排序最前的虛擬機(jī)開(kāi)始,按照虛擬機(jī)遷移順序,順序執(zhí)行多個(gè)虛擬機(jī)遷移到目標(biāo)物理主機(jī)的操作,直至所有的虛擬機(jī)遷移操作都結(jié)束。本發(fā)明提供的實(shí)現(xiàn)虛擬機(jī)遷移的方法、裝置和集群系統(tǒng)在虛擬機(jī)遷移可靠性的前提下,保障集群系統(tǒng)中虛擬機(jī)鏡像的高效性和安全性。
【專(zhuān)利附圖】
【附圖說(shuō)明】
[0046]圖1為本發(fā)明實(shí)現(xiàn)虛擬機(jī)遷移的方法的一個(gè)實(shí)施例的流程圖;
[0047]圖2為本發(fā)明實(shí)現(xiàn)虛擬機(jī)遷移的裝置的一個(gè)實(shí)施例的結(jié)構(gòu)示意圖。
【具體實(shí)施方式】
[0048]下面結(jié)合說(shuō)明書(shū)附圖,對(duì)本發(fā)明實(shí)施例中的實(shí)現(xiàn)虛擬機(jī)遷移的方法、裝置和系統(tǒng)的【具體實(shí)施方式】進(jìn)行說(shuō)明。
[0049]本發(fā)明實(shí)施例提供的一種實(shí)現(xiàn)虛擬機(jī)遷移的方法,用于根據(jù)需要遷移虛擬機(jī)的資源占用情況,將虛擬機(jī)被遷移到同一個(gè)集群下最合適的物理主機(jī)上。
[0050]圖1是本發(fā)明實(shí)施例的實(shí)現(xiàn)虛擬機(jī)遷移的方法流程圖。如圖1所示,本實(shí)施例所使用的方法包括如下幾個(gè)步驟:
[0051]步驟S100、根據(jù)源物理主機(jī)確定所需遷移的虛擬機(jī),并獲取所需遷移的一個(gè)或多個(gè)虛擬機(jī)的配置信息,根據(jù)所述虛擬機(jī)的配置信息確定虛擬機(jī)遷移順序;
[0052]步驟S200、分析集群系統(tǒng)上當(dāng)前運(yùn)行的多個(gè)物理主機(jī)資源使用信息,將多個(gè)物理主機(jī)按照資源使用信息優(yōu)先級(jí)進(jìn)行物理主機(jī)排序;
[0053]步驟S300、從所述虛擬機(jī)遷移順序中排序最前的虛擬機(jī)開(kāi)始,按照虛擬機(jī)遷移順序,順序執(zhí)行多個(gè)虛擬機(jī)遷移到目標(biāo)物理主機(jī)的操作,直至所有的虛擬機(jī)遷移操作都結(jié)束;在遷移過(guò)程中,選擇物理主機(jī)排序序列最前的物理主機(jī)作為目標(biāo)物理主機(jī),直至當(dāng)前所述目標(biāo)物理主機(jī)的內(nèi)存資源不能滿(mǎn)足當(dāng)前需要遷移的虛擬機(jī)內(nèi)存占用資源或達(dá)到預(yù)設(shè)的水平冗余條件時(shí),選擇物理主機(jī)排序序列中的下一個(gè)物理主機(jī)作為新的目標(biāo)物理主機(jī)。
[0054]本發(fā)明實(shí)施例在具體實(shí)施時(shí),上述各步驟可以由實(shí)現(xiàn)虛擬機(jī)遷移的方法、裝置來(lái)完成。下面對(duì)上述各步驟進(jìn)行詳細(xì)說(shuō)明:
[0055]較佳地,作為一種可實(shí)施方式,在所述步驟SlOO之前,還包括如下步驟:
[0056]按照預(yù)設(shè)的時(shí)間周期定期通過(guò)IP做心跳檢測(cè),檢測(cè)集群系統(tǒng)上運(yùn)行的多個(gè)物理主機(jī)的運(yùn)行狀態(tài),并確定發(fā)生故障的源物理主機(jī)。
[0057]在上述步驟中,通過(guò)IP做心跳檢測(cè),物理主機(jī)通過(guò)心跳路徑,周期性的發(fā)出相互檢測(cè)的測(cè)試包,如果此時(shí)在集群系統(tǒng)上運(yùn)行的多個(gè)物理主機(jī)中某個(gè)物理主機(jī)出現(xiàn)故障(如:硬盤(pán)、內(nèi)存、CPU、主板、I/O板以及電源故障),則此時(shí)這個(gè)物理主機(jī)不會(huì)產(chǎn)生回應(yīng)(即連續(xù)丟失設(shè)定數(shù)目的檢測(cè)包),這樣則判定這個(gè)物理主機(jī)出現(xiàn)故障,這時(shí)則可以確定發(fā)生故障的源
物理主機(jī)。
[0058]較佳地,作為一種可實(shí)施方式,在所述步驟SlOO中,所述確定虛擬機(jī)遷移順序具體包括以下步驟:
[0059]根據(jù)獲取的虛擬機(jī)的配置信息,判斷是否有預(yù)先設(shè)定的遷移順序,若是,則確定虛擬機(jī)遷移順序?yàn)轭A(yù)先設(shè)定的遷移順序;若否,則確定虛擬機(jī)遷移順序?yàn)榕渲眯畔⒅械奶摂M機(jī)創(chuàng)建時(shí)間順序;
[0060]所述虛擬機(jī)的配置信息包括:虛擬機(jī)內(nèi)存的大小信息、多個(gè)虛擬機(jī)創(chuàng)建時(shí)間順序信息或預(yù)先設(shè)定的遷移順序信息。
[0061]在本發(fā)明實(shí)施中,在確定發(fā)生故障的源物理主機(jī)之后,查詢(xún)故障物理主機(jī)上有哪些虛擬機(jī),明確哪一臺(tái)或多臺(tái)虛擬機(jī)要被遷移到其他最合適的目標(biāo)物理主機(jī)上;
[0062]用戶(hù)可以根據(jù)虛擬機(jī)的配置信息可以分析得知,在用戶(hù)設(shè)定有遷移順序信息條件下,需要預(yù)先設(shè)定的遷移順序;在沒(méi)有設(shè)定遷移順序的條件下,按照虛擬機(jī)創(chuàng)建時(shí)間(虛擬機(jī)的配置信息)順序作為虛擬機(jī)的遷移順序,其中,所述虛擬機(jī)遷移順序?yàn)樘摂M機(jī)創(chuàng)建的時(shí)間順序由前到后順序排列。
[0063]較佳地,作為一種可實(shí)施方式,所述物理主機(jī)資源使用信息包括當(dāng)前物理主機(jī)剩余內(nèi)存和當(dāng)前物理主機(jī)CPU使用率。
[0064]進(jìn)一步地,作為一種可實(shí)施方式,在所述步驟S200中,所述根據(jù)資源使用信息優(yōu)先級(jí)進(jìn)行物理主機(jī)排序具體包括:
[0065]根據(jù)當(dāng)前物理主機(jī)剩余內(nèi)存的大小,進(jìn)行降序排序;
[0066]如果排列后序列內(nèi)相鄰的當(dāng)前物理主機(jī)內(nèi)存的大小差值低于預(yù)設(shè)的內(nèi)存閾值,則按照CPU使用率大小,對(duì)所述相鄰的物理主機(jī)進(jìn)行升序排列并最終確定所述物理主機(jī)排序;
[0067]其中,所述預(yù)設(shè)的內(nèi)存閾值為128M。
[0068]在上述步驟中,分析物理主機(jī)資源使用信息,確定物理主機(jī)的接收虛擬機(jī)資源(鏡像)的優(yōu)先級(jí),執(zhí)行物理主機(jī)排序,查詢(xún)得到集群下正常運(yùn)行的物理主機(jī)的資源,當(dāng)前物理主機(jī)CPU使用率、當(dāng)前物理主機(jī)剩余內(nèi)存大小,首先按當(dāng)前物理主機(jī)剩余內(nèi)存大小作為排序標(biāo)準(zhǔn),從大到小進(jìn)行排序,如果內(nèi)存大小相差不大(差值128M內(nèi)),CPU使用率小的物理主機(jī)排名在前。
[0069]較佳地,作為一種可實(shí)施方式,所述預(yù)設(shè)的水平冗余條件為:執(zhí)行虛擬機(jī)遷移后的目標(biāo)物理主機(jī)的剩余內(nèi)存小于物理主機(jī)總內(nèi)存的20% ;
[0070]所述虛擬機(jī)遷移后的目標(biāo)物理主機(jī)的剩余內(nèi)存大小等于當(dāng)前物理主機(jī)剩余內(nèi)存大小減去遷移到所述物理主機(jī)的虛擬機(jī)內(nèi)存的大小。
[0071]進(jìn)一步地,作為一種可實(shí)施方式,所述執(zhí)行多個(gè)虛擬機(jī)的遷移操作之后還包括以下步驟:
[0072]多個(gè)虛擬機(jī)遷移到目標(biāo)物理主機(jī)后,恢復(fù)虛擬機(jī)原來(lái)的運(yùn)行狀態(tài)并修改多個(gè)虛擬機(jī)分別所屬的物理主機(jī)因虛擬機(jī)遷移操作發(fā)生改變的配置信息。
[0073]在上述步驟S300中,舉例說(shuō)明,首先將所述虛擬機(jī)遷移順序中排序最前的第一臺(tái)虛擬機(jī)對(duì)應(yīng)遷移至物理主機(jī)排序序列最前的目標(biāo)物理主機(jī),在第一臺(tái)虛擬機(jī)遷移操作結(jié)束后,若此時(shí)最前的目標(biāo)物理主機(jī)在第一臺(tái)虛擬機(jī)遷移后的剩余內(nèi)存小于該物理主機(jī)總內(nèi)存的20%條件時(shí)(即達(dá)到預(yù)設(shè)的水平冗余條件)或者最前的目標(biāo)物理主機(jī)的內(nèi)存資源不能滿(mǎn)足當(dāng)前需要遷移的虛擬機(jī)內(nèi)存占用資源,選擇物理主機(jī)排序序列中的下一個(gè)物理主機(jī)作為新的目標(biāo)物理主機(jī);繼續(xù)將虛擬機(jī)遷移順序中的第二臺(tái)虛擬機(jī)遷移至新的目標(biāo)物理主機(jī),這樣重復(fù)順序執(zhí)行多個(gè)虛擬機(jī)的遷移操作直至所有的虛擬機(jī)的遷移都結(jié)束。
[0074]顯然,第一臺(tái)虛擬機(jī)目標(biāo)物理主機(jī)是排最前的物理主機(jī),這臺(tái)物理主機(jī)遷移后的目標(biāo)物理主機(jī)的剩余內(nèi)存大小為這臺(tái)物理主機(jī)遷移前的內(nèi)存大小(當(dāng)前物理主機(jī)內(nèi)存的大小)減去遷移到該物理主機(jī)的虛擬機(jī)內(nèi)存大小;在第一臺(tái)虛擬機(jī)遷移后,如果這臺(tái)物理主機(jī)內(nèi)存滿(mǎn)足第二臺(tái)虛擬機(jī)內(nèi)存占用資源(同時(shí)未達(dá)到預(yù)設(shè)的水平冗余條件),則這個(gè)物理主機(jī)繼續(xù)是第二臺(tái)虛擬機(jī)的目標(biāo)物理主機(jī),直到這臺(tái)物理主機(jī)剩余內(nèi)存小于總內(nèi)存20%后,遷移目標(biāo)轉(zhuǎn)移為下一臺(tái)物理主機(jī),按此規(guī)則確定每一臺(tái)虛擬機(jī)的遷移目標(biāo)物理主機(jī);
[0075]為了更好地說(shuō)明本發(fā)明實(shí)施例提供的實(shí)現(xiàn)虛擬機(jī)遷移的方法,舉一個(gè)實(shí)際的例子加以說(shuō)明虛擬機(jī)關(guān)于實(shí)現(xiàn)排序和虛擬機(jī)遷移的步驟。舉例來(lái)說(shuō):
[0076]在一個(gè)集群系統(tǒng)中安裝有如下物理主機(jī)和虛擬機(jī):
[0077]
【權(quán)利要求】
1.一種實(shí)現(xiàn)虛擬機(jī)遷移的方法,其特征在于,包括以下步驟: 根據(jù)源物理主機(jī)確定所需遷移的虛擬機(jī),并獲取所需遷移的一個(gè)或多個(gè)虛擬機(jī)的配置信息,根據(jù)所述虛擬機(jī)的配置信息確定虛擬機(jī)遷移順序; 分析集群系統(tǒng)上當(dāng)前運(yùn)行的多個(gè)物理主機(jī)資源使用信息,將多個(gè)物理主機(jī)按照資源使用信息優(yōu)先級(jí)進(jìn)行物理主機(jī)排序; 從所述虛擬機(jī)遷移順序中排序最前的虛擬機(jī)開(kāi)始,按照虛擬機(jī)遷移順序,順序執(zhí)行多個(gè)虛擬機(jī)遷移到目標(biāo)物理主機(jī)的操作,直至所有的虛擬機(jī)遷移操作都結(jié)束; 在遷移過(guò)程中,選擇物理主機(jī)排序序列最前的物理主機(jī)作為目標(biāo)物理主機(jī),直至當(dāng)前所述目標(biāo)物理主機(jī)的內(nèi)存資源不能滿(mǎn)足當(dāng)前需要遷移的虛擬機(jī)內(nèi)存占用資源或達(dá)到預(yù)設(shè)的水平冗余條件時(shí),選擇物理主機(jī)排序序列中的下一個(gè)物理主機(jī)作為新的目標(biāo)物理主機(jī)。
2.根據(jù)權(quán)利要求1所述的實(shí)現(xiàn)虛擬機(jī)遷移的方法,其特征在于,所述確定需要遷移的虛擬機(jī)及遷移順序之前,還包括以下步驟: 按照預(yù)設(shè)的時(shí)間周期定期通過(guò)IP做心跳檢測(cè),檢測(cè)集群系統(tǒng)上運(yùn)行的多個(gè)物理主機(jī)的運(yùn)行狀態(tài),并確定發(fā)生故障的源物理主機(jī)。
3.根據(jù)權(quán)利要求1所述的實(shí)現(xiàn)虛擬機(jī)遷移的方法,其特征在于,所述根據(jù)虛擬機(jī)的配置信息確定虛擬機(jī)遷移順序,包括如下步驟: 根據(jù)獲取的虛擬機(jī)的配置信息,判斷是否有預(yù)先設(shè)定的遷移順序; 若是,則確定虛擬機(jī)遷移順序?yàn)轭A(yù)先設(shè)定的遷移順序;若否,則確定虛擬機(jī)遷移順序?yàn)榕渲眯畔⒅械奶摂M機(jī)創(chuàng)建時(shí)間順序; 所述虛擬機(jī)的配置信息包括:虛擬機(jī)內(nèi)存的大小信息、多個(gè)虛擬機(jī)創(chuàng)建時(shí)間順序信息或預(yù)先設(shè)定的遷移順序信息。
4.根據(jù)權(quán)利要求1所述的實(shí)現(xiàn)虛擬機(jī)遷移的方法,其特征在于,所述物理主機(jī)資源使用信息包括當(dāng)前物理主機(jī)剩余內(nèi)存和當(dāng)前物理主機(jī)CPU使用率。
5.根據(jù)權(quán)利要求1或4所述的實(shí)現(xiàn)虛擬機(jī)遷移的方法,其特征在于,所述根據(jù)資源使用信息優(yōu)先級(jí)進(jìn)行物理主機(jī)排序,包括如下步驟: 根據(jù)當(dāng)前物理主機(jī)剩余內(nèi)存的大小,進(jìn)行降序排序; 如果排列后序列內(nèi)相鄰的當(dāng)前物理主機(jī)內(nèi)存的大小差值低于預(yù)設(shè)的內(nèi)存閾值,則按照CPU使用率大小,對(duì)所述相鄰的物理主機(jī)進(jìn)行升序排列并最終確定所述物理主機(jī)排序; 其中,所述預(yù)設(shè)的內(nèi)存閾值為128M。
6.根據(jù)權(quán)利要求1所述的實(shí)現(xiàn)虛擬機(jī)遷移的方法,其特征在于,所述預(yù)設(shè)的水平冗余條件為:執(zhí)行虛擬機(jī)遷移后的目標(biāo)物理主機(jī)的剩余內(nèi)存小于物理主機(jī)總內(nèi)存的20% ; 所述虛擬機(jī)遷移后的目標(biāo)物理主機(jī)的剩余內(nèi)存大小等于當(dāng)前物理主機(jī)剩余內(nèi)存大小減去遷移到所述物理主機(jī)的虛擬機(jī)內(nèi)存的大小。
7.根據(jù)權(quán)利要求1所述的實(shí)現(xiàn)虛擬機(jī)遷移的方法,其特征在于,所述執(zhí)行多個(gè)虛擬機(jī)的遷移操作之后,還包括如下步驟: 多個(gè)虛擬機(jī)遷移到目標(biāo)物理主機(jī)后,恢復(fù)虛擬機(jī)原來(lái)的運(yùn)行狀態(tài)并修改多個(gè)虛擬機(jī)分別所屬的物理主機(jī)因虛擬機(jī)遷移操作發(fā)生改變的配置信息。
8.一種實(shí)現(xiàn)虛擬機(jī)遷移的裝置,其特征在于,包括虛擬機(jī)排序模塊,物理主機(jī)排序模塊和遷移處理模塊,其中:所述虛擬機(jī)排序模塊,用于根據(jù)源物理主機(jī)確定所需遷移的虛擬機(jī),并獲取所需遷移的一個(gè)或多個(gè)虛擬機(jī)的配置信息,根據(jù)所述虛擬機(jī)的配置信息確定虛擬機(jī)遷移順序; 所述物理主機(jī)排序模塊,用于分析集群系統(tǒng)上當(dāng)前運(yùn)行的多個(gè)物理主機(jī)資源使用信息,將多個(gè)物理主機(jī)按照資源使用信息優(yōu)先級(jí)進(jìn)行物理主機(jī)排序; 所述遷移處理模塊,用于從所述虛擬機(jī)遷移順序中排序最前的虛擬機(jī)開(kāi)始,按照虛擬機(jī)遷移順序,順序執(zhí)行多個(gè)虛擬機(jī)遷移到目標(biāo)物理主機(jī)的操作,直至所有的虛擬機(jī)遷移操作都結(jié)束;在遷移過(guò)程中,選擇物理主機(jī)排序序列最前的物理主機(jī)作為目標(biāo)物理主機(jī),直至當(dāng)前所述目標(biāo)物理主機(jī)的內(nèi)存資源不能滿(mǎn)足當(dāng)前需要遷移的虛擬機(jī)內(nèi)存占用資源或達(dá)到預(yù)設(shè)的水平冗余條件時(shí),選擇物理主機(jī)排序序列中的下一個(gè)物理主機(jī)作為新的目標(biāo)物理主機(jī)。
9.根據(jù)權(quán)利要求8所述的實(shí)現(xiàn)虛擬機(jī)遷移的裝置,其特征在于,還包括心跳檢測(cè)模塊,其中: 所述心跳檢測(cè)模塊,用于按照預(yù)設(shè)的時(shí)間周期定期通過(guò)IP做心跳檢測(cè),檢測(cè)集群系統(tǒng)上運(yùn)行的多個(gè)物理主機(jī)的運(yùn)行狀態(tài),并確定發(fā)生故障的源物理主機(jī)。
10.根據(jù)權(quán)利要求8所述的實(shí)現(xiàn)虛擬機(jī)遷移的裝置,其特征在于,所述虛擬機(jī)排序模塊包括判斷子模塊,其中: 所述判斷子模塊,用于根據(jù)獲取的虛擬機(jī)的配置信息,判斷是否有預(yù)先設(shè)定的遷移順序,若是,則確定虛擬機(jī)遷移順序?yàn)轭A(yù)先設(shè)定的遷移順序;若否,則確定虛擬機(jī)遷移順序?yàn)榕渲眯畔⒅械奶摂M機(jī)創(chuàng)建時(shí)間順序; 所述虛擬機(jī)的配置信息包括:虛擬機(jī)內(nèi)存的大小信息、多個(gè)虛擬機(jī)創(chuàng)建時(shí)間順序信息或預(yù)先設(shè)定的遷移順序信息。
11.根據(jù)權(quán)利要求8或10所述的實(shí)現(xiàn)虛擬機(jī)遷移的裝置,其特征在于,所述物理主機(jī)排序模塊包括物理主機(jī)排序子模塊,其中: 所述物理主機(jī)排序子模塊,用于根據(jù)當(dāng)前物理主機(jī)剩余內(nèi)存的大小,進(jìn)行降序排序; 如果排列后序列內(nèi)相鄰的當(dāng)前物理主機(jī)內(nèi)存的大小差值低于預(yù)設(shè)的內(nèi)存閾值,則按照CPU使用率大小,對(duì)所述相鄰的物理主機(jī)進(jìn)行升序排列并最終確定所述物理主機(jī)排序; 其中,所述預(yù)設(shè)的內(nèi)存閾值為128M。
12.根據(jù)權(quán)利要求8所述的實(shí)現(xiàn)虛擬機(jī)遷移的裝置,其特征在于,還包括恢復(fù)模塊,其中: 所述恢復(fù)模塊,用于在多個(gè)虛擬機(jī)遷移到目標(biāo)物理主機(jī)后,恢復(fù)虛擬機(jī)原來(lái)的運(yùn)行狀態(tài)并修改多個(gè)虛擬機(jī)分別所屬的物理主機(jī)因虛擬機(jī)遷移操作發(fā)生改變的配置信息。
13.一種集群系統(tǒng),包括多個(gè)物理主機(jī),每個(gè)物理主機(jī)上可以安裝有一個(gè)或多個(gè)虛擬機(jī),其特征在于,所述集群系統(tǒng)還包括權(quán)利要求8-12任一項(xiàng)所述的虛擬機(jī)遷移裝置; 所述虛擬機(jī)遷移裝置用于在源物理主機(jī)出現(xiàn)故障時(shí),將源物理主機(jī)上的虛擬機(jī)遷移至目標(biāo)物理主機(jī)。
【文檔編號(hào)】G06F9/455GK103810016SQ201210447904
【公開(kāi)日】2014年5月21日 申請(qǐng)日期:2012年11月9日 優(yōu)先權(quán)日:2012年11月9日
【發(fā)明者】王雪山, 劉兆喜, 劉興輝, 邵文濤 申請(qǐng)人:北京華勝天成科技股份有限公司