一種集群中虛擬機(jī)的備份方法及系統(tǒng)的制作方法
【專利摘要】本發(fā)明公開一種集群中虛擬機(jī)的備份方法及系統(tǒng),包括:步驟(11),創(chuàng)建多個(gè)虛擬機(jī),將所述虛擬機(jī)加入備份池;步驟(12),新加入集群的虛擬機(jī)作為主節(jié)點(diǎn);步驟(13),所述主節(jié)點(diǎn)從所述備份池中選擇一個(gè)可用虛擬機(jī)作為備節(jié)點(diǎn);步驟(14),將所述主節(jié)點(diǎn)的備節(jié)點(diǎn)個(gè)數(shù)加1,將與所述備節(jié)點(diǎn)關(guān)聯(lián)的備份數(shù)量加1,將所述備節(jié)點(diǎn)加入集群,以所述備節(jié)點(diǎn)對所述主節(jié)點(diǎn)進(jìn)行備份,執(zhí)行步驟(15);步驟(15),如果與所述主節(jié)點(diǎn)關(guān)聯(lián)的備節(jié)點(diǎn)個(gè)數(shù)小于預(yù)設(shè)的備節(jié)點(diǎn)總數(shù),則執(zhí)行步驟(13),否則結(jié)束步驟執(zhí)行。本發(fā)明有效防止了傳統(tǒng)主備冗余方案中主備同時(shí)失效帶來的服務(wù)失效問題。同時(shí)提供服務(wù)的虛擬機(jī)共享備份池中的備節(jié)點(diǎn),有效提高了資源利用率。
【專利說明】一種集群中虛擬機(jī)的備份方法及系統(tǒng)
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及集群相關(guān)【技術(shù)領(lǐng)域】,特別是一種集群中虛擬機(jī)的備份方法及系統(tǒng)。
【背景技術(shù)】
[0002]在處理復(fù)雜計(jì)算或者大型任務(wù)時(shí),單個(gè)計(jì)算機(jī)服務(wù)器無法滿足負(fù)載壓力,即使依靠升級服務(wù)器的配置也無法一勞永逸的滿足日益增長的服務(wù)要求,且費(fèi)用非常的昂貴,且沒有擴(kuò)展性。通過增加服務(wù)器數(shù)量,將所有服務(wù)器通過虛擬化,形成若干虛擬機(jī),從而形成虛擬機(jī)集群,部署不同的應(yīng)用,以對外提供服務(wù)。
[0003]虛擬化是指采用硬件或者軟件的方式,將計(jì)算機(jī)資源進(jìn)行管理,可以對現(xiàn)有有限的資源進(jìn)行重新整合規(guī)劃,按照需求進(jìn)行分配使用,使資源的利用率達(dá)到最大化。
[0004]在集群運(yùn)行過程中,不可避免的出現(xiàn)集群內(nèi)部分虛擬機(jī)或者應(yīng)用失效的情況,從而導(dǎo)致在部分時(shí)間無法有效提供服務(wù)。
[0005]現(xiàn)有技術(shù)通過采用冗余備份的方式。即對于一個(gè)正在運(yùn)行的虛擬機(jī),作為主節(jié)點(diǎn),采用另外一臺虛擬機(jī)作為該虛擬機(jī)的備份,成為備節(jié)點(diǎn)。當(dāng)主節(jié)點(diǎn)發(fā)生故障時(shí),備節(jié)點(diǎn)切換為主節(jié)點(diǎn),繼續(xù)提供服務(wù)。
[0006]然而,現(xiàn)有技術(shù)的冗余備份方式存在著以下不足:
[0007]1.浪費(fèi)資源。對于一個(gè)主節(jié)點(diǎn),始終有一個(gè)備節(jié)點(diǎn)在運(yùn)行過程中,雖然不提供服務(wù),卻在一直消耗CPU、內(nèi)存、硬盤等資源。對于整個(gè)集群來說,如果所有提供服務(wù)的虛擬機(jī)均采用主備方式,則對于集群,其實(shí)際提供服務(wù)的節(jié)點(diǎn)數(shù)只能占到整個(gè)集群的一半。因此集群的資源有效使用率只能達(dá)到50%,造成了巨大的資源浪費(fèi)。
[0008]2.可用性較差。在主節(jié)點(diǎn)故障時(shí),將會切換到備節(jié)點(diǎn)。而備節(jié)點(diǎn)此時(shí)如果也出現(xiàn)問題,就會造成服務(wù)的完全失效。此時(shí)需要對于主備兩個(gè)節(jié)點(diǎn)至少更換一次。服務(wù)將在更換過程中停滯,直到新的節(jié)點(diǎn)替換現(xiàn)有節(jié)點(diǎn)后,才能重新提供服務(wù)。
【發(fā)明內(nèi)容】
[0009]基于此,有必要針對現(xiàn)有技術(shù)的冗余備份方式存在資源浪費(fèi)及可用性差的技術(shù)問題,提供一種集群中虛擬機(jī)的備份方法及系統(tǒng)。
[0010]一種集群中虛擬機(jī)的備份方法,包括:
[0011]步驟11,創(chuàng)建多個(gè)虛擬機(jī)并初始化與每個(gè)虛擬機(jī)關(guān)聯(lián)的備份數(shù)量為0,將所述虛擬機(jī)加入用于管理所述虛擬機(jī)的信息的備份池;
[0012]步驟12,新加入集群的虛擬機(jī)作為主節(jié)點(diǎn),初始化所述主節(jié)點(diǎn)的備節(jié)點(diǎn)個(gè)數(shù)為零,執(zhí)行步驟13 ;
[0013]步驟13,所述主節(jié)點(diǎn)從所述備份池中選擇一個(gè)可用虛擬機(jī)作為備節(jié)點(diǎn),所述可用虛擬機(jī)為備份數(shù)量少于預(yù)設(shè)的總備份數(shù)量的虛擬機(jī);
[0014]步驟14,將所述主節(jié)點(diǎn)的備節(jié)點(diǎn)個(gè)數(shù)加1,將與所述備節(jié)點(diǎn)關(guān)聯(lián)的備份數(shù)量加1,將所述備節(jié)點(diǎn)加入集群,以所述備節(jié)點(diǎn)對所述主節(jié)點(diǎn)進(jìn)行備份,執(zhí)行步驟15 ;
[0015]步驟15,如果與所述主節(jié)點(diǎn)關(guān)聯(lián)的備節(jié)點(diǎn)個(gè)數(shù)小于預(yù)設(shè)的備節(jié)點(diǎn)總數(shù),則執(zhí)行步驟13,否則結(jié)束步驟執(zhí)行,所述備節(jié)點(diǎn)總數(shù)大于I。
[0016]一種集群中虛擬機(jī)的備份系統(tǒng),包括:
[0017]備份池初始化模塊,用于創(chuàng)建多個(gè)虛擬機(jī)并設(shè)置工作狀態(tài)為空閑,將所述虛擬機(jī)加入用于管理所述虛擬機(jī)的信息的備份池;
[0018]主節(jié)點(diǎn)加入模塊,用于新加入集群的虛擬機(jī)作為主節(jié)點(diǎn),初始化所述主節(jié)點(diǎn)的備節(jié)點(diǎn)個(gè)數(shù)為零,執(zhí)行備節(jié)點(diǎn)選擇模塊;
[0019]備節(jié)點(diǎn)選擇模塊,用于所述主節(jié)點(diǎn)從所述備份池中選擇一個(gè)可用虛擬機(jī)作為備節(jié)點(diǎn),所述可用虛擬機(jī)為備份數(shù)量少于預(yù)設(shè)的總備份數(shù)量的虛擬機(jī);
[0020]備節(jié)點(diǎn)更新模塊,用于將所述主節(jié)點(diǎn)的備節(jié)點(diǎn)個(gè)數(shù)加1,將與所述備節(jié)點(diǎn)關(guān)聯(lián)的備份數(shù)量加1,將所述備節(jié)點(diǎn)加入集群,以所述備節(jié)點(diǎn)對所述主節(jié)點(diǎn)進(jìn)行備份,執(zhí)行備節(jié)點(diǎn)數(shù)量檢測模塊;
[0021]備節(jié)點(diǎn)數(shù)量檢測模塊,用于如果與所述主節(jié)點(diǎn)關(guān)聯(lián)的備節(jié)點(diǎn)個(gè)數(shù)小于預(yù)設(shè)的備節(jié)點(diǎn)總數(shù),則執(zhí)行備節(jié)點(diǎn)選擇模塊,否則結(jié)束模塊執(zhí)行,所述備節(jié)點(diǎn)總數(shù)大于I。
[0022]本發(fā)明采用了備份池的方法,使得對于每一個(gè)正在提供服務(wù)的虛擬機(jī),即主節(jié)點(diǎn),能擁有多個(gè)備節(jié)點(diǎn),以備其隨時(shí)替換,有效防止了傳統(tǒng)主備冗余方案中主備同時(shí)失效帶來的服務(wù)失效問題。同時(shí)提供服務(wù)的虛擬機(jī)共享備份池中的備節(jié)點(diǎn),使得備節(jié)點(diǎn)能夠更好地復(fù)用,有效提高了資源利用率,減少了浪費(fèi)。
【專利附圖】
【附圖說明】
[0023]圖1為本發(fā)明一種集群中虛擬機(jī)的備份方法的工作流程圖;
[0024]圖2為本發(fā)明一種集群中虛擬機(jī)的備份系統(tǒng)的結(jié)構(gòu)模塊圖;
[0025]圖3為本發(fā)明其中一個(gè)實(shí)施例中步驟13的具體工作流程圖;
[0026]圖4為本發(fā)明其中另一個(gè)實(shí)施例中步驟13的具體工作流程圖;
[0027]圖5為本發(fā)明的一個(gè)例子的節(jié)點(diǎn)備份示意圖。
【具體實(shí)施方式】
[0028]下面結(jié)合附圖和具體實(shí)施例對本發(fā)明做進(jìn)一步詳細(xì)的說明。
[0029]如圖1所示為本發(fā)明一種集群中虛擬機(jī)的備份方法的工作流程圖,包括:
[0030]步驟11,創(chuàng)建多個(gè)虛擬機(jī)并初始化與每個(gè)虛擬機(jī)關(guān)聯(lián)的備份數(shù)量為0,將所述虛擬機(jī)加入用于管理所述虛擬機(jī)的信息的備份池;
[0031]步驟12,新加入集群的虛擬機(jī)作為主節(jié)點(diǎn),初始化所述主節(jié)點(diǎn)的備節(jié)點(diǎn)個(gè)數(shù)為零,執(zhí)行步驟13 ;
[0032]步驟13,所述主節(jié)點(diǎn)從所述備份池中選擇一個(gè)可用虛擬機(jī)作為備節(jié)點(diǎn),所述可用虛擬機(jī)為備份數(shù)量少于預(yù)設(shè)的總備份數(shù)量的虛擬機(jī);
[0033]步驟14,將所述主節(jié)點(diǎn)的備節(jié)點(diǎn)個(gè)數(shù)加1,將與所述備節(jié)點(diǎn)關(guān)聯(lián)的備份數(shù)量加1,將所述備節(jié)點(diǎn)加入集群,以所述備節(jié)點(diǎn)對所述主節(jié)點(diǎn)進(jìn)行備份,執(zhí)行步驟15 ;
[0034]步驟15,如果與所述主節(jié)點(diǎn)關(guān)聯(lián)的備節(jié)點(diǎn)個(gè)數(shù)小于預(yù)設(shè)的備節(jié)點(diǎn)總數(shù),則執(zhí)行步驟13,否則結(jié)束步驟執(zhí)行,所述備節(jié)點(diǎn)總數(shù)大于I。
[0035]本采用了備份池的方法,使得對于一個(gè)正在提供服務(wù)的虛擬機(jī),即主節(jié)點(diǎn),能擁有多個(gè)備節(jié)點(diǎn),以備其隨時(shí)替換,有效防止了傳統(tǒng)主備冗余方案中主備同時(shí)失效帶來的服務(wù)失效問題。同時(shí)提供備份服務(wù)的虛擬機(jī)共享備份池中的備節(jié)點(diǎn),即同一個(gè)主節(jié)點(diǎn),采用多個(gè)虛擬機(jī)進(jìn)行備份,而同一個(gè)虛擬機(jī)可以對多個(gè)主節(jié)點(diǎn)進(jìn)行備份,作為多個(gè)主節(jié)點(diǎn)的備節(jié)點(diǎn)。
[0036]圖5所示,為本發(fā)明的一個(gè)例子的節(jié)點(diǎn)備份示意圖。其中,主節(jié)點(diǎn)A通過節(jié)點(diǎn)C和節(jié)點(diǎn)D進(jìn)行備份,即節(jié)點(diǎn)C和節(jié)點(diǎn)D為節(jié)點(diǎn)A的備節(jié)點(diǎn)。同時(shí),主節(jié)點(diǎn)B通過節(jié)點(diǎn)D和節(jié)點(diǎn)E進(jìn)行備份,即節(jié)點(diǎn)D和節(jié)點(diǎn)E為節(jié)點(diǎn)B的備節(jié)點(diǎn)。
[0037]備節(jié)點(diǎn)主要備份方式為備節(jié)點(diǎn)保存主節(jié)點(diǎn)的上下文內(nèi)容、配置等信息,并保持信息與主節(jié)點(diǎn)的實(shí)時(shí)同步。因?yàn)閭浞莨?jié)點(diǎn)僅保存相關(guān)配置信息,并不實(shí)際提供服務(wù),因此備節(jié)點(diǎn)資源消耗并不高。一個(gè)備份節(jié)點(diǎn)可以同時(shí)存儲多個(gè)主節(jié)點(diǎn)的備份信息,從而實(shí)現(xiàn)為多個(gè)主節(jié)點(diǎn)作備節(jié)點(diǎn)。在主節(jié)點(diǎn)失效后,備節(jié)點(diǎn)調(diào)取存儲的主節(jié)點(diǎn)信息,從而接替主節(jié)點(diǎn)的工作,在集群中提供服務(wù)。
[0038]本發(fā)明在應(yīng)用虛擬機(jī)集群外,配置了備份池用以實(shí)現(xiàn)提升服務(wù)的可用性。
[0039]備份池主要包括有若干臺虛擬機(jī),用于作為應(yīng)用虛擬機(jī)集群的備份。
[0040]首先物理機(jī)創(chuàng)建虛擬機(jī),而后在虛擬機(jī)中進(jìn)行安裝,配置應(yīng)用軟件棧。并對于虛擬機(jī)進(jìn)行健康檢查,檢查軟件棧的配置以及服務(wù)的可用性等。在確認(rèn)無誤后,將其加入備份池中。
[0041]在其中一個(gè)實(shí)施例中,還包括:
[0042]所述備份池定時(shí)對所包括的虛擬機(jī)進(jìn)行健康檢查,如果存在具有故障的虛擬機(jī)則設(shè)置具有故障的虛擬機(jī)為故障虛擬機(jī),否則設(shè)置所述虛擬機(jī)為健康虛擬機(jī);
[0043]如果所述故障虛擬機(jī)是備節(jié)點(diǎn),則所述故障虛擬機(jī)為故障備節(jié)點(diǎn),選擇一個(gè)健康虛擬機(jī)為替換虛擬機(jī),且所述替換虛擬機(jī)為可用虛擬機(jī),將與所述替換虛擬機(jī)關(guān)聯(lián)的備份數(shù)量加I,所述替換虛擬機(jī)作為所述故障備節(jié)點(diǎn)對應(yīng)的主節(jié)點(diǎn)的替換備節(jié)點(diǎn),所述替換備節(jié)點(diǎn)對所述故障備節(jié)點(diǎn)對應(yīng)的主節(jié)點(diǎn)進(jìn)行備份,并刪除所述故障虛擬機(jī);
[0044]如果所述故障虛擬機(jī)不是備節(jié)點(diǎn),則刪除所述故障虛擬機(jī)。
[0045]本實(shí)施例對備份池進(jìn)行維護(hù),備份池的維護(hù)主要用于維持備份池的規(guī)模,定時(shí)檢查備份池中虛擬機(jī)的系統(tǒng)及應(yīng)用軟件棧的狀態(tài)。以確保備份池中的虛擬機(jī)是健康可用的,可以隨時(shí)提供服務(wù)。對于不健康的虛擬機(jī)即故障虛擬機(jī),進(jìn)行刪除。
[0046]作為一個(gè)優(yōu)選的例子,備份池在刪除所述故障虛擬機(jī)后,及時(shí)創(chuàng)建新的虛擬機(jī)加入備份池中,以保持備份池的規(guī)模。
[0047]對于故障虛擬機(jī)的替換,采用的方式為從池中取出一臺在最近一次健康檢查中通過的虛擬機(jī)作為替換虛擬機(jī)。根據(jù)故障虛擬機(jī)的應(yīng)用信息,初始化替換虛擬機(jī)的軟件棧,并替換故障虛擬機(jī)。
[0048]步驟13中,對于選擇一個(gè)可用虛擬機(jī)作為備節(jié)點(diǎn),可以采用隨機(jī)或者輪詢的方式選擇。然而,也可以對其進(jìn)行一些優(yōu)化策略,以提高備份的可靠性。
[0049]如圖3所示,在其中一個(gè)實(shí)施例中,所述虛擬機(jī)由至少一個(gè)物理機(jī)創(chuàng)建并維護(hù),所述備份池還用于管理所述物理機(jī)信息,所述步驟13,具體包括:
[0050]步驟31,所述主節(jié)點(diǎn)從所述備份池中獲取具有可用虛擬機(jī)的所有物理機(jī)作為待選物理機(jī)集,從所述待選物理機(jī)集中選擇維護(hù)最少虛擬機(jī)的物理機(jī)作為待選物理機(jī);
[0051]步驟32,所述主節(jié)點(diǎn)選擇一個(gè)所述待選物理機(jī)所維護(hù)的可用虛擬機(jī)作為備節(jié)點(diǎn)。
[0052]物理機(jī)維護(hù)虛擬機(jī)數(shù)量越多,則出現(xiàn)故障的可能性越大,在本實(shí)施例中,待選物理機(jī)為所述待選物理機(jī)集中維護(hù)最少虛擬機(jī)的物理機(jī)。由于維護(hù)的虛擬機(jī)數(shù)量最少,因此其出現(xiàn)故障的可能性大幅降低,從而使得能對主節(jié)點(diǎn)提供更可靠的備份服務(wù)。
[0053]如圖4所示,在其中一個(gè)實(shí)施例中,所述虛擬機(jī)由至少一個(gè)物理機(jī)創(chuàng)建并維護(hù),所述備份池還用于管理所述物理機(jī)信息,所述步驟13,具體包括:
[0054]步驟41,所述主節(jié)點(diǎn)從所述備份池中獲取具有可用虛擬機(jī)的所有物理機(jī)作為待選物理機(jī)集,從所述待選物理機(jī)集中選擇主節(jié)點(diǎn)備份數(shù)量最少的物理機(jī)作為待選物理機(jī),所述主節(jié)點(diǎn)備份數(shù)量為所述物理機(jī)中對所述主節(jié)點(diǎn)進(jìn)行備份的備節(jié)點(diǎn)的數(shù)量,且每個(gè)所述主節(jié)點(diǎn)備份數(shù)量分別對應(yīng)一個(gè)主節(jié)點(diǎn);
[0055]步驟42,所述主節(jié)點(diǎn)選擇一個(gè)所述待選物理機(jī)所維護(hù)的可用虛擬機(jī)作為備節(jié)點(diǎn)。
[0056]對同一個(gè)主節(jié)點(diǎn)進(jìn)行備份的備節(jié)點(diǎn)如果都在同一物理機(jī)上,則當(dāng)該物理機(jī)出現(xiàn)故障,則所有的備節(jié)點(diǎn)均無法對主節(jié)點(diǎn)提供備份服務(wù)。在本實(shí)施例中,待選物理機(jī)為待選物理機(jī)集中主節(jié)點(diǎn)備份數(shù)量最少的物理機(jī),盡可能地將對主節(jié)點(diǎn)進(jìn)行備份的備節(jié)點(diǎn)分配到不同的物理機(jī)上,從而使得能對主節(jié)點(diǎn)提供更可靠的備份服務(wù)。
[0057]在其中一個(gè)實(shí)施例中,還包括:
[0058]當(dāng)?shù)谝粋涔?jié)點(diǎn)檢測到對應(yīng)的第一主節(jié)點(diǎn)出現(xiàn)故障,則所述第一主節(jié)點(diǎn)對應(yīng)的備節(jié)點(diǎn)中,除所述第一備節(jié)點(diǎn)以外的所有備節(jié)點(diǎn)為其他備節(jié)點(diǎn),將與每個(gè)其他備節(jié)點(diǎn)關(guān)聯(lián)的備份數(shù)量減I,且所有其他備節(jié)點(diǎn)停止對所述第一主節(jié)點(diǎn)進(jìn)行備份;
[0059]將所述第一備節(jié)點(diǎn)作為新加入集群的虛擬機(jī)執(zhí)行步驟12。
[0060]本實(shí)施例中,當(dāng)?shù)谝粋涔?jié)點(diǎn)檢測到其對應(yīng)的第一主節(jié)點(diǎn)出現(xiàn)故障,則通知其他備節(jié)點(diǎn)停止對第一主節(jié)點(diǎn)進(jìn)行備份。其通信方式,可以是第一備節(jié)點(diǎn)與其他備節(jié)點(diǎn)直接通信,即分布式通信,也可以是設(shè)置一個(gè)與所有的備節(jié)點(diǎn)進(jìn)行通信的中央節(jié)點(diǎn),由第一備節(jié)點(diǎn)將主節(jié)點(diǎn)出現(xiàn)故障的信息發(fā)送到中央節(jié)點(diǎn),然后由中央節(jié)點(diǎn)通知其他備節(jié)點(diǎn)停止對第一主節(jié)點(diǎn)進(jìn)行備份。
[0061 ] 在其中一個(gè)實(shí)施例中,所述虛擬機(jī)由至少一個(gè)物理機(jī)創(chuàng)建并維護(hù),所述備份池還用于管理所述物理機(jī)信息,所述步驟15,具體包括:
[0062]如果與所述主節(jié)點(diǎn)關(guān)聯(lián)的備節(jié)點(diǎn)個(gè)數(shù)小于預(yù)設(shè)的備節(jié)點(diǎn)總數(shù),且存在備份數(shù)量小于預(yù)設(shè)的總備份數(shù)量的虛擬機(jī),則執(zhí)行步驟13 ;
[0063]如果與所述主節(jié)點(diǎn)關(guān)聯(lián)的備節(jié)點(diǎn)個(gè)數(shù)小于預(yù)設(shè)的備節(jié)點(diǎn)總數(shù),且所有的虛擬機(jī)中備份數(shù)量均大于或等于預(yù)設(shè)的總備份數(shù)量,則至少一個(gè)所述物理機(jī)創(chuàng)建至少一個(gè)虛擬機(jī),并初始化與虛擬機(jī)關(guān)聯(lián)的備份數(shù)量為0,將所述虛擬機(jī)加入用于管理所述虛擬機(jī)的信息的備份池,執(zhí)行步驟13 ;
[0064]如果所述主節(jié)點(diǎn)的備節(jié)點(diǎn)個(gè)數(shù)大于或等于預(yù)設(shè)的備節(jié)點(diǎn)總數(shù),則結(jié)束步驟執(zhí)行;
[0065]所述備節(jié)點(diǎn)總數(shù)大于I。
[0066]本實(shí)施例當(dāng)備份池中的虛擬機(jī)數(shù)量不足以維持對新加入的主節(jié)點(diǎn)的備份時(shí),自動進(jìn)行擴(kuò)展,以保證對主節(jié)點(diǎn)有足夠的備節(jié)點(diǎn)進(jìn)行備份服務(wù)。
[0067]如圖2所示為本發(fā)明一種集群中虛擬機(jī)的備份系統(tǒng)的結(jié)構(gòu)模塊圖,包括:
[0068]備份池初始化模塊210,用于創(chuàng)建多個(gè)虛擬機(jī)并設(shè)置工作狀態(tài)為空閑,將所述虛擬機(jī)加入用于管理所述虛擬機(jī)的信息的備份池;
[0069]主節(jié)點(diǎn)加入模塊220,用于新加入集群的虛擬機(jī)作為主節(jié)點(diǎn),初始化所述主節(jié)點(diǎn)的備節(jié)點(diǎn)個(gè)數(shù)為零,執(zhí)行備節(jié)點(diǎn)選擇模塊;
[0070]備節(jié)點(diǎn)選擇模塊230,用于所述主節(jié)點(diǎn)從所述備份池中選擇一個(gè)可用虛擬機(jī)作為備節(jié)點(diǎn),所述可用虛擬機(jī)為備份數(shù)量少于預(yù)設(shè)的總備份數(shù)量的虛擬機(jī);
[0071]備節(jié)點(diǎn)更新模塊240,用于將所述主節(jié)點(diǎn)的備節(jié)點(diǎn)個(gè)數(shù)加1,將與所述備節(jié)點(diǎn)關(guān)聯(lián)的備份數(shù)量加1,將所述備節(jié)點(diǎn)加入集群,以所述備節(jié)點(diǎn)對所述主節(jié)點(diǎn)進(jìn)行備份,執(zhí)行備節(jié)點(diǎn)數(shù)量檢測模塊;
[0072]備節(jié)點(diǎn)數(shù)量檢測模塊250,用于如果與所述主節(jié)點(diǎn)關(guān)聯(lián)的備節(jié)點(diǎn)個(gè)數(shù)小于預(yù)設(shè)的備節(jié)點(diǎn)總數(shù),則執(zhí)行備節(jié)點(diǎn)選擇模塊,否則結(jié)束模塊執(zhí)行,所述備節(jié)點(diǎn)總數(shù)大于I。
[0073]在其中一個(gè)實(shí)施例中,還包括定時(shí)檢查模塊,用于:
[0074]所述備份池定時(shí)對所包括的虛擬機(jī)進(jìn)行健康檢查,如果存在具有故障的虛擬機(jī)則設(shè)置具有故障的虛擬機(jī)為故障虛擬機(jī),否則設(shè)置所述虛擬機(jī)為健康虛擬機(jī);
[0075]如果所述故障虛擬機(jī)是備節(jié)點(diǎn),則所述故障虛擬機(jī)為故障備節(jié)點(diǎn),選擇一個(gè)健康虛擬機(jī)為替換虛擬機(jī),且所述替換虛擬機(jī)為可用虛擬機(jī),將與所述替換虛擬機(jī)關(guān)聯(lián)的備份數(shù)量加I,所述替換虛擬機(jī)作為所述故障備節(jié)點(diǎn)對應(yīng)的主節(jié)點(diǎn)的替換備節(jié)點(diǎn),所述替換備節(jié)點(diǎn)對所述故障備節(jié)點(diǎn)對應(yīng)的主節(jié)點(diǎn)進(jìn)行備份,并刪除所述故障虛擬機(jī);
[0076]如果所述故障虛擬機(jī)不是備節(jié)點(diǎn),則刪除所述故障虛擬機(jī)。
[0077]在其中一個(gè)實(shí)施例中,所述虛擬機(jī)由至少一個(gè)物理機(jī)創(chuàng)建并維護(hù),所述備份池還用于管理所述物理機(jī)信息,所述備節(jié)點(diǎn)更新模塊240,具體包括:
[0078]虛擬機(jī)最少物理機(jī)選擇子模塊241,所述主節(jié)點(diǎn)從所述備份池中獲取具有可用虛擬機(jī)的所有物理機(jī)作為待選物理機(jī)集,從所述待選物理機(jī)集中選擇維護(hù)最少虛擬機(jī)的物理機(jī)作為待選物理機(jī);
[0079]虛擬機(jī)最少物理機(jī)備節(jié)點(diǎn)選擇子模塊242,所述主節(jié)點(diǎn)選擇一個(gè)所述待選物理機(jī)所維護(hù)的可用虛擬機(jī)作為備節(jié)點(diǎn)。
[0080]在其中一個(gè)實(shí)施例中,所述虛擬機(jī)由至少一個(gè)物理機(jī)創(chuàng)建并維護(hù),所述備份池還用于管理所述物理機(jī)信息,所述備節(jié)點(diǎn)更新模塊240,具體包括:
[0081]備節(jié)點(diǎn)最少物理機(jī)選擇子模塊243,所述主節(jié)點(diǎn)從所述備份池中獲取具有可用虛擬機(jī)的所有物理機(jī)作為待選物理機(jī)集,從所述待選物理機(jī)集中選擇主節(jié)點(diǎn)備份數(shù)量最少的物理機(jī)作為待選物理機(jī),所述主節(jié)點(diǎn)備份數(shù)量為所述物理機(jī)中對所述主節(jié)點(diǎn)進(jìn)行備份的備節(jié)點(diǎn)的數(shù)量,且每個(gè)所述主節(jié)點(diǎn)備份數(shù)量分別對應(yīng)一個(gè)主節(jié)點(diǎn);
[0082]備節(jié)點(diǎn)最少物理機(jī)備節(jié)點(diǎn)選擇子模塊244,所述主節(jié)點(diǎn)選擇一個(gè)所述待選物理機(jī)所維護(hù)的可用虛擬機(jī)作為備節(jié)點(diǎn)。
[0083]在其中一個(gè)實(shí)施例中,還包括主節(jié)點(diǎn)刪除模塊,用于:
[0084]當(dāng)?shù)谝粋涔?jié)點(diǎn)檢測到對應(yīng)的第一主節(jié)點(diǎn)出現(xiàn)故障,則所述第一主節(jié)點(diǎn)對應(yīng)的備節(jié)點(diǎn)中,除所述第一備節(jié)點(diǎn)以外的所有備節(jié)點(diǎn)為其他備節(jié)點(diǎn),將與每個(gè)其他備節(jié)點(diǎn)關(guān)聯(lián)的備份數(shù)量減I,且所有其他備節(jié)點(diǎn)停止對所述第一主節(jié)點(diǎn)進(jìn)行備份;
[0085]將所述第一備節(jié)點(diǎn)作為新加入集群的虛擬機(jī)執(zhí)行主節(jié)點(diǎn)加入模塊。
[0086]在其中一個(gè)實(shí)施例中,所述虛擬機(jī)由至少一個(gè)物理機(jī)創(chuàng)建并維護(hù),所述備份池還用于管理所述物理機(jī)信息,所述備節(jié)點(diǎn)數(shù)量檢測模塊250,具體用于:
[0087]如果與所述主節(jié)點(diǎn)關(guān)聯(lián)的備節(jié)點(diǎn)個(gè)數(shù)小于預(yù)設(shè)的備節(jié)點(diǎn)總數(shù),且存在備份數(shù)量小于預(yù)設(shè)的總備份數(shù)量的虛擬機(jī),則執(zhí)行備節(jié)點(diǎn)選擇模塊;
[0088]如果與所述主節(jié)點(diǎn)關(guān)聯(lián)的備節(jié)點(diǎn)個(gè)數(shù)小于預(yù)設(shè)的備節(jié)點(diǎn)總數(shù),且所有的虛擬機(jī)中備份數(shù)量均大于或等于預(yù)設(shè)的總備份數(shù)量,則至少一個(gè)所述物理機(jī)創(chuàng)建至少一個(gè)虛擬機(jī),并初始化與虛擬機(jī)關(guān)聯(lián)的備份數(shù)量為0,將所述虛擬機(jī)加入用于管理所述虛擬機(jī)的信息的備份池,執(zhí)行備節(jié)點(diǎn)選擇模塊;
[0089]如果所述主節(jié)點(diǎn)的備節(jié)點(diǎn)個(gè)數(shù)大于或等于預(yù)設(shè)的備節(jié)點(diǎn)總數(shù),則結(jié)束步驟執(zhí)行;
[0090]所述備節(jié)點(diǎn)總數(shù)大于I。
[0091]以上所述實(shí)施例僅表達(dá)了本發(fā)明的幾種實(shí)施方式,其描述較為具體和詳細(xì),但并不能因此而理解為對本發(fā)明專利范圍的限制。應(yīng)當(dāng)指出的是,對于本領(lǐng)域的普通技術(shù)人員來說,在不脫離本發(fā)明構(gòu)思的前提下,還可以做出若干變形和改進(jìn),這些都屬于本發(fā)明的保護(hù)范圍。因此,本發(fā)明專利的保護(hù)范圍應(yīng)以所附權(quán)利要求為準(zhǔn)。
【權(quán)利要求】
1.一種集群中虛擬機(jī)的備份方法,其特征在于,包括: 步驟(11),創(chuàng)建多個(gè)虛擬機(jī)并初始化與每個(gè)虛擬機(jī)關(guān)聯(lián)的備份數(shù)量為O,將所述虛擬機(jī)加入用于管理所述虛擬機(jī)的信息的備份池; 步驟(12),新加入集群的虛擬機(jī)作為主節(jié)點(diǎn),初始化所述主節(jié)點(diǎn)的備節(jié)點(diǎn)個(gè)數(shù)為零,執(zhí)行步驟(13); 步驟(13),所述主節(jié)點(diǎn)從所述備份池中選擇一個(gè)可用虛擬機(jī)作為備節(jié)點(diǎn),所述可用虛擬機(jī)為備份數(shù)量少于預(yù)設(shè)的總備份數(shù)量的虛擬機(jī); 步驟(14),將所述主節(jié)點(diǎn)的備節(jié)點(diǎn)個(gè)數(shù)加1,將與所述備節(jié)點(diǎn)關(guān)聯(lián)的備份數(shù)量加1,將所述備節(jié)點(diǎn)加入集群,以所述備節(jié)點(diǎn)對所述主節(jié)點(diǎn)進(jìn)行備份,執(zhí)行步驟(15); 步驟(15),如果與所述主節(jié)點(diǎn)關(guān)聯(lián)的備節(jié)點(diǎn)個(gè)數(shù)小于預(yù)設(shè)的備節(jié)點(diǎn)總數(shù),則執(zhí)行步驟(13),否則結(jié)束步驟執(zhí)行,所述備節(jié)點(diǎn)總數(shù)大于I。
2.根據(jù)權(quán)利要求1所述的集群中虛擬機(jī)的備份方法,其特征在于,還包括: 所述備份池定時(shí)對所包括的虛擬機(jī)進(jìn)行健康檢查,如果存在具有故障的虛擬機(jī)則設(shè)置具有故障的虛擬機(jī)為故障虛擬機(jī),否則設(shè)置所述虛擬機(jī)為健康虛擬機(jī); 如果所述故障虛擬機(jī)是備節(jié)點(diǎn),則所述故障虛擬機(jī)為故障備節(jié)點(diǎn),選擇一個(gè)健康虛擬機(jī)為替換虛擬機(jī),且所述替換虛擬機(jī)為可用虛擬機(jī),將與所述替換虛擬機(jī)關(guān)聯(lián)的備份數(shù)量加1,所述替換虛擬機(jī)作為所述故障備節(jié)點(diǎn)對應(yīng)的主節(jié)點(diǎn)的替換備節(jié)點(diǎn),所述替換備節(jié)點(diǎn)對所述故障備節(jié)點(diǎn)對應(yīng)的主節(jié)點(diǎn)進(jìn)行備份,并刪除所述故障虛擬機(jī); 如果所述故障虛擬機(jī)不是備節(jié)點(diǎn),則刪除所述故障虛擬機(jī)。
3.根據(jù)權(quán)利要求1所述的集群中虛擬機(jī)的備份方法,其特征在于,所述虛擬機(jī)由至少一個(gè)物理機(jī)創(chuàng)建并維護(hù),所述備份池還用于管理所述物理機(jī)信息,所述步驟(13),具體包括: 步驟(31),所述主節(jié)點(diǎn)從所述備份池中獲取具有可用虛擬機(jī)的所有物理機(jī)作為待選物理機(jī)集,從所述待選物理機(jī)集中選擇維護(hù)最少虛擬機(jī)的物理機(jī)作為待選物理機(jī); 步驟(32),所述主節(jié)點(diǎn)選擇一個(gè)所述待選物理機(jī)所維護(hù)的可用虛擬機(jī)作為備節(jié)點(diǎn)。
4.根據(jù)權(quán)利要求1所述的集群中虛擬機(jī)的備份方法,其特征在于,所述虛擬機(jī)由至少一個(gè)物理機(jī)創(chuàng)建并維護(hù),所述備份池還用于管理所述物理機(jī)信息,所述步驟(13),具體包括: 步驟(41),所述主節(jié)點(diǎn)從所述備份池中獲取具有可用虛擬機(jī)的所有物理機(jī)作為待選物理機(jī)集,從所述待選物理機(jī)集中選擇主節(jié)點(diǎn)備份數(shù)量最少的物理機(jī)作為待選物理機(jī),所述主節(jié)點(diǎn)備份數(shù)量為所述物理機(jī)中對所述主節(jié)點(diǎn)進(jìn)行備份的備節(jié)點(diǎn)的數(shù)量,且每個(gè)所述主節(jié)點(diǎn)備份數(shù)量分別對應(yīng)一個(gè)主節(jié)點(diǎn); 步驟(42),所述主節(jié)點(diǎn)選擇一個(gè)所述待選物理機(jī)所維護(hù)的可用虛擬機(jī)作為備節(jié)點(diǎn)。
5.根據(jù)權(quán)利要求1所述的集群中虛擬機(jī)的備份方法,其特征在于,還包括: 當(dāng)?shù)谝粋涔?jié)點(diǎn)檢測到對應(yīng)的第一主節(jié)點(diǎn)出現(xiàn)故障,則所述第一主節(jié)點(diǎn)對應(yīng)的備節(jié)點(diǎn)中,除所述第一備節(jié)點(diǎn)以外的所有備節(jié)點(diǎn)為其他備節(jié)點(diǎn),將與每個(gè)其他備節(jié)點(diǎn)關(guān)聯(lián)的備份數(shù)量減I,且所有其他備節(jié)點(diǎn)停止對所述第一主節(jié)點(diǎn)進(jìn)行備份; 將所述第一備節(jié)點(diǎn)作為新加入集群的虛擬機(jī)執(zhí)行步驟(12)。
6.根據(jù)權(quán)利要求1所述的集群中虛擬機(jī)的備份方法,其特征在于,所述虛擬機(jī)由至少一個(gè)物理機(jī)創(chuàng)建并維護(hù),所述備份池還用于管理所述物理機(jī)信息,所述步驟(15),具體包括: 如果與所述主節(jié)點(diǎn)關(guān)聯(lián)的備節(jié)點(diǎn)個(gè)數(shù)小于預(yù)設(shè)的備節(jié)點(diǎn)總數(shù),且存在備份數(shù)量小于預(yù)設(shè)的總備份數(shù)量的虛擬機(jī),則執(zhí)行步驟(13); 如果與所述主節(jié)點(diǎn)關(guān)聯(lián)的備節(jié)點(diǎn)個(gè)數(shù)小于預(yù)設(shè)的備節(jié)點(diǎn)總數(shù),且所有的虛擬機(jī)中備份數(shù)量均大于或等于預(yù)設(shè)的總備份數(shù)量,則至少一個(gè)所述物理機(jī)創(chuàng)建至少一個(gè)虛擬機(jī),并初始化與虛擬機(jī)關(guān)聯(lián)的備份數(shù)量為O,將所述虛擬機(jī)加入用于管理所述虛擬機(jī)的信息的備份池,執(zhí)行步驟(13); 如果所述主節(jié)點(diǎn)的備節(jié)點(diǎn)個(gè)數(shù)大于或等于預(yù)設(shè)的備節(jié)點(diǎn)總數(shù),則結(jié)束步驟執(zhí)行; 所述備節(jié)點(diǎn)總數(shù)大于I。
7.一種集群中虛擬機(jī)的備份系統(tǒng),其特征在于,包括: 備份池初始化模塊,用于創(chuàng)建多個(gè)虛擬機(jī)并設(shè)置工作狀態(tài)為空閑,將所述虛擬機(jī)加入用于管理所述虛擬機(jī)的信息的備份池; 主節(jié)點(diǎn)加入模塊,用于新加入集群的虛擬機(jī)作為主節(jié)點(diǎn),初始化所述主節(jié)點(diǎn)的備節(jié)點(diǎn)個(gè)數(shù)為零,執(zhí)行備節(jié)點(diǎn)選擇模塊; 備節(jié)點(diǎn)選擇模塊,用于所述主節(jié)點(diǎn)從所述備份池中選擇一個(gè)可用虛擬機(jī)作為備節(jié)點(diǎn),所述可用虛擬機(jī)為備份數(shù)量少于預(yù)設(shè)的總備份數(shù)量的虛擬機(jī); 備節(jié)點(diǎn)更新模塊,用于將所述主節(jié)點(diǎn)的備節(jié)點(diǎn)個(gè)數(shù)加1,將與所述備節(jié)點(diǎn)關(guān)聯(lián)的備份數(shù)量加1,將所述備節(jié)點(diǎn)加入集群,以所述備節(jié)點(diǎn)對所述主節(jié)點(diǎn)進(jìn)行備份,執(zhí)行備節(jié)點(diǎn)數(shù)量檢測模塊; 備節(jié)點(diǎn)數(shù)量檢測模塊,用于如果與所述主節(jié)點(diǎn)關(guān)聯(lián)的備節(jié)點(diǎn)個(gè)數(shù)小于預(yù)設(shè)的備節(jié)點(diǎn)總數(shù),則執(zhí)行備節(jié)點(diǎn)選擇模塊,否則結(jié)束模塊執(zhí)行,所述備節(jié)點(diǎn)總數(shù)大于I。
8.根據(jù)權(quán)利要求7所述的集群中虛擬機(jī)的備份系統(tǒng),其特征在于,還包括定時(shí)檢查模塊,用于: 所述備份池定時(shí)對所包括的虛擬機(jī)進(jìn)行健康檢查,如果存在具有故障的虛擬機(jī)則設(shè)置具有故障的虛擬機(jī)為故障虛擬機(jī),否則設(shè)置所述虛擬機(jī)為健康虛擬機(jī); 如果所述故障虛擬機(jī)是備節(jié)點(diǎn),則所述故障虛擬機(jī)為故障備節(jié)點(diǎn),選擇一個(gè)健康虛擬機(jī)為替換虛擬機(jī),且所述替換虛擬機(jī)為可用虛擬機(jī),將與所述替換虛擬機(jī)關(guān)聯(lián)的備份數(shù)量加1,所述替換虛擬機(jī)作為所述故障備節(jié)點(diǎn)對應(yīng)的主節(jié)點(diǎn)的替換備節(jié)點(diǎn),所述替換備節(jié)點(diǎn)對所述故障備節(jié)點(diǎn)對應(yīng)的主節(jié)點(diǎn)進(jìn)行備份,并刪除所述故障虛擬機(jī); 如果所述故障虛擬機(jī)不是備節(jié)點(diǎn),則刪除所述故障虛擬機(jī)。
9.根據(jù)權(quán)利要求7所述的集群中虛擬機(jī)的備份系統(tǒng),其特征在于,所述虛擬機(jī)由至少一個(gè)物理機(jī)創(chuàng)建并維護(hù),所述備份池還用于管理所述物理機(jī)信息,所述備節(jié)點(diǎn)更新模塊,具體包括: 虛擬機(jī)最少物理機(jī)選擇子模塊,所述主節(jié)點(diǎn)從所述備份池中獲取具有可用虛擬機(jī)的所有物理機(jī)作為待選物理機(jī)集,從所述待選物理機(jī)集中選擇維護(hù)最少虛擬機(jī)的物理機(jī)作為待選物理機(jī); 虛擬機(jī)最少物理機(jī)備節(jié)點(diǎn)選擇子模塊,所述主節(jié)點(diǎn)選擇一個(gè)所述待選物理機(jī)所維護(hù)的可用虛擬機(jī)作為備節(jié)點(diǎn)。
10.根據(jù)權(quán)利要求7所述的集群中虛擬機(jī)的備份系統(tǒng),其特征在于,所述虛擬機(jī)由至少一個(gè)物理機(jī)創(chuàng)建并維護(hù),所述備份池還用于管理所述物理機(jī)信息,所述備節(jié)點(diǎn)更新模塊,具體包括: 備節(jié)點(diǎn)最少物理機(jī)選擇子模塊,所述主節(jié)點(diǎn)從所述備份池中獲取具有可用虛擬機(jī)的所有物理機(jī)作為待選物理機(jī)集,從所述待選物理機(jī)集中選擇主節(jié)點(diǎn)備份數(shù)量最少的物理機(jī)作為待選物理機(jī),所述主節(jié)點(diǎn)備份數(shù)量為所述物理機(jī)中對所述主節(jié)點(diǎn)進(jìn)行備份的備節(jié)點(diǎn)的數(shù)量,且每個(gè)所述主節(jié)點(diǎn)備份數(shù)量分別對應(yīng)一個(gè)主節(jié)點(diǎn); 備節(jié)點(diǎn)最少物理機(jī)備節(jié)點(diǎn)選擇子模塊,所述主節(jié)點(diǎn)選擇一個(gè)所述待選物理機(jī)所維護(hù)的可用虛擬機(jī)作為備節(jié)點(diǎn)。
11.根據(jù)權(quán)利要求7所述的集群中虛擬機(jī)的備份系統(tǒng),其特征在于,還包括主節(jié)點(diǎn)刪除模塊,用于: 當(dāng)?shù)谝粋涔?jié)點(diǎn)檢測到對應(yīng)的第一主節(jié)點(diǎn)出現(xiàn)故障,則所述第一主節(jié)點(diǎn)對應(yīng)的備節(jié)點(diǎn)中,除所述第一備節(jié)點(diǎn)以外的所有備節(jié)點(diǎn)為其他備節(jié)點(diǎn),將與每個(gè)其他備節(jié)點(diǎn)關(guān)聯(lián)的備份數(shù)量減1,且所有其他備節(jié)點(diǎn)停止對所述第一主節(jié)點(diǎn)進(jìn)行備份; 將所述第一備節(jié)點(diǎn)作為新加入集群的虛擬機(jī)執(zhí)行主節(jié)點(diǎn)加入模塊。
12.根據(jù)權(quán)利要求7所述的集群中虛擬機(jī)的備份系統(tǒng),其特征在于,所述虛擬機(jī)由至少一個(gè)物理機(jī)創(chuàng)建并維護(hù),所述備份池還用于管理所述物理機(jī)信息,所述備節(jié)點(diǎn)數(shù)量檢測模塊,具體用于: 如果與所述主節(jié)點(diǎn)關(guān)聯(lián)的備節(jié)點(diǎn)個(gè)數(shù)小于預(yù)設(shè)的備節(jié)點(diǎn)總數(shù),且存在備份數(shù)量小于預(yù)設(shè)的總備份數(shù)量的虛擬機(jī),則執(zhí)行備節(jié)點(diǎn)選擇模塊; 如果與所述主節(jié)點(diǎn)關(guān)聯(lián)的備節(jié)點(diǎn)個(gè)數(shù)小于預(yù)設(shè)的備節(jié)點(diǎn)總數(shù),且所有的虛擬機(jī)中備份數(shù)量均大于或等于預(yù)設(shè)的總備份數(shù)量,則至少一個(gè)所述物理機(jī)創(chuàng)建至少一個(gè)虛擬機(jī),并初始化與虛擬機(jī)關(guān)聯(lián)的備份數(shù)量為0,將所述虛擬機(jī)加入用于管理所述虛擬機(jī)的信息的備份池,執(zhí)行備節(jié)點(diǎn)選擇模塊; 如果所述主節(jié)點(diǎn)的備節(jié)點(diǎn)個(gè)數(shù)大于或等于預(yù)設(shè)的備節(jié)點(diǎn)總數(shù),則結(jié)束步驟執(zhí)行; 所述備節(jié)點(diǎn)總數(shù)大于I。
【文檔編號】G06F9/455GK104182300SQ201410410032
【公開日】2014年12月3日 申請日期:2014年8月19日 優(yōu)先權(quán)日:2014年8月19日
【發(fā)明者】徐新坤, 劉檁, 張凱, 徐震海, 萬世巍 申請人:北京京東尚科信息技術(shù)有限公司, 北京京東世紀(jì)貿(mào)易有限公司