基于虛擬機(jī)集群的回滾方法及系統(tǒng)和服務(wù)器的制造方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及計(jì)算機(jī)技術(shù)領(lǐng)域,尤其涉及一種基于虛擬機(jī)集群的回滾方法及系統(tǒng)和服務(wù)器。
【背景技術(shù)】
[0002]隨著虛擬化技術(shù)的興起,越來越多的應(yīng)用依賴于虛擬機(jī)集群來實(shí)現(xiàn),云計(jì)算的規(guī)模和運(yùn)算量也呈急劇增加的趨勢,隨之而來的,系統(tǒng)出現(xiàn)異常的情況越來越嚴(yán)重。當(dāng)出現(xiàn)異常時(shí),虛擬機(jī)可能會崩潰,集群之間的網(wǎng)絡(luò)也可能中斷,更嚴(yán)重的將有可能導(dǎo)致應(yīng)用在虛擬環(huán)境里終止計(jì)算。此外,如果進(jìn)行長時(shí)間計(jì)算,如科學(xué)計(jì)算和大型圖象處理,這些工作可能因?yàn)轭l繁中斷帶來的中間結(jié)果丟失而永遠(yuǎn)無法完成。因而,現(xiàn)有技術(shù)對虛擬化技術(shù)的可行性提出了較高的要求。
[0003]在現(xiàn)有的眾多提高虛擬化技術(shù)的可行性的方法中,回滾方法是被采用的最為廣泛的方法之一。目前,回滾方法主要是通過將虛擬機(jī)集群恢復(fù)所需的數(shù)據(jù),分別發(fā)送到各對應(yīng)的虛擬機(jī)中使得虛擬機(jī)集群從崩潰狀態(tài)中恢復(fù)。但是,這種回滾方法在恢復(fù)虛擬機(jī)集群時(shí),需要的恢復(fù)時(shí)間較長,網(wǎng)絡(luò)占用量較高。
【發(fā)明內(nèi)容】
[0004]本發(fā)明提供一種基于虛擬機(jī)集群的回滾方法及系統(tǒng)和服務(wù)器,用以解決現(xiàn)有回滾方法在恢復(fù)虛擬機(jī)集群時(shí),需要的恢復(fù)時(shí)間較長,網(wǎng)絡(luò)占用量較高的問題。
[0005]本發(fā)明提供的基于虛擬機(jī)集群的回滾方法,包括:
[0006]在檢測到所述虛擬機(jī)集群中的至少一個(gè)虛擬機(jī)異常時(shí),從內(nèi)存中獲取所述虛擬機(jī)集群中的所有重復(fù)頁面和除所述重復(fù)頁面以外的剩余頁面,并確定各重復(fù)頁面與各虛擬機(jī)之間的映射關(guān)系,以及各剩余頁面與所述各虛擬機(jī)之間的映射關(guān)系;
[0007]根據(jù)各重復(fù)頁面與各虛擬機(jī)之間的映射關(guān)系,將所述各重復(fù)頁面通過組播的傳輸方式發(fā)送給對應(yīng)的虛擬機(jī);并根據(jù)所述各剩余頁面與所述各虛擬機(jī)之間的映射關(guān)系,將所述各剩余頁面通過單播的傳輸方式發(fā)送給對應(yīng)的虛擬機(jī);以使所述虛擬機(jī)集群中的各虛擬機(jī)恢復(fù)異常前的正常狀態(tài)。
[0008]本發(fā)明提供的服務(wù)器,包括:
[0009]檢測模塊,用于對虛擬機(jī)集群中的虛擬機(jī)的工作狀態(tài)進(jìn)行檢測;
[0010]獲取模塊,用于在所述檢測模塊檢測到所述虛擬機(jī)集群中的至少一個(gè)虛擬機(jī)異常時(shí),從內(nèi)存中獲取所述虛擬機(jī)集群中的所有重復(fù)頁面和除所述重復(fù)頁面以外的剩余頁面;
[0011]確定模塊,用于確定各重復(fù)頁面與各虛擬機(jī)之間的映射關(guān)系,以及各剩余頁面與所述各虛擬機(jī)之間的映射關(guān)系;
[0012]發(fā)送模塊,用于根據(jù)各重復(fù)頁面與各虛擬機(jī)之間的映射關(guān)系,將所述各重復(fù)頁面通過組播的傳輸方式發(fā)送給對應(yīng)的虛擬機(jī);并根據(jù)所述各剩余頁面與所述各虛擬機(jī)之間的映射關(guān)系,將所述各剩余頁面通過單播的傳輸方式發(fā)送給對應(yīng)的虛擬機(jī);以使所述虛擬機(jī)集群中的各虛擬機(jī)恢復(fù)異常前的正常狀態(tài)。
[0013]本發(fā)明提供的基于虛擬機(jī)集群的回滾系統(tǒng),包括所述虛擬機(jī)集群和上述服務(wù)器。
[0014]本實(shí)施例提供的基于虛擬機(jī)集群的回滾方法及系統(tǒng)和服務(wù)器,通過組播的傳輸方式將內(nèi)存中存儲的各重復(fù)頁面發(fā)送給與各重復(fù)頁面對應(yīng)的虛擬機(jī),并通過單播的傳輸方式將內(nèi)存中存儲的除重復(fù)頁面以外的各剩余頁面,發(fā)送給與各剩余頁面對應(yīng)的虛擬機(jī),縮短了虛擬機(jī)集群從異常狀態(tài)中恢復(fù)所需的時(shí)間,降低了虛擬機(jī)集群恢復(fù)時(shí)的網(wǎng)絡(luò)占用量。
【附圖說明】
[0015]圖1為本發(fā)明一實(shí)施例提供的基于虛擬機(jī)集群的回滾方法的流程示意圖;
[0016]圖2為圖1所示方法的補(bǔ)充方法的流程示意圖;
[0017]圖3為本發(fā)明一實(shí)施例提供的服務(wù)器的結(jié)構(gòu)示意圖;
[0018]圖4為本發(fā)明一實(shí)施例提供的基于虛擬機(jī)集群的回滾系統(tǒng)的結(jié)構(gòu)示意圖。
【具體實(shí)施方式】
[0019]為使本發(fā)明實(shí)施例的目的、技術(shù)方案和優(yōu)點(diǎn)更加清楚,下面將結(jié)合本發(fā)明實(shí)施例中的附圖,對本發(fā)明實(shí)施例中的技術(shù)方案進(jìn)行清楚、完整地描述,顯然,所描述的實(shí)施例是本發(fā)明一部分實(shí)施例,而不是全部的實(shí)施例?;诒景l(fā)明中的實(shí)施例,本領(lǐng)域普通技術(shù)人員在沒有做出創(chuàng)造性勞動前提下所獲得的所有其他實(shí)施例,都屬于本發(fā)明保護(hù)的范圍。
[0020]圖1為本發(fā)明一實(shí)施例提供的基于虛擬機(jī)集群的回滾方法的流程示意圖,如圖1所示,本實(shí)施例提供的基于虛擬機(jī)集群的回滾方法包括如下步驟:
[0021]步驟101、在檢測到所述虛擬機(jī)集群中的至少一個(gè)虛擬機(jī)異常時(shí),從內(nèi)存中獲取所述虛擬機(jī)集群中的所有重復(fù)頁面和除所述重復(fù)頁面以外的剩余頁面,并確定各重復(fù)頁面與各虛擬機(jī)之間的映射關(guān)系,以及各剩余頁面與所述各虛擬機(jī)之間的映射關(guān)系;
[0022]具體的,服務(wù)器按照預(yù)先設(shè)定的檢測周期對虛擬機(jī)集群中的所有虛擬機(jī)的工作狀態(tài)進(jìn)行檢測,其中,該檢測周期可以根據(jù)具體實(shí)施需要進(jìn)行具體設(shè)定,在這里不做具體限定。當(dāng)服務(wù)器檢測到虛擬機(jī)集群中存在至少一個(gè)虛擬機(jī)工作狀態(tài)異常時(shí),服務(wù)器從內(nèi)存中存儲的所有虛擬機(jī)的頁面中獲取所有重復(fù)的頁面,以及除重復(fù)頁面以外剩余的所有頁面,并且,服務(wù)器在獲取重復(fù)頁面和剩余頁面的同時(shí),確定各重復(fù)頁面與虛擬機(jī)集群中各虛擬機(jī)之間的映射關(guān)系,以及各剩余頁面與虛擬機(jī)集群中各虛擬機(jī)的映射關(guān)系。
[0023]其中,服務(wù)器內(nèi)存中存儲的所有虛擬機(jī)的頁面,是通過現(xiàn)有的虛擬機(jī)快照機(jī)制獲得的,在這里不再贅述。
[0024]步驟102、根據(jù)各重復(fù)頁面與各虛擬機(jī)之間的映射關(guān)系,將所述各重復(fù)頁面通過組播的傳輸方式發(fā)送給對應(yīng)的虛擬機(jī);并根據(jù)所述各剩余頁面與所述各虛擬機(jī)之間的映射關(guān)系,將所述各剩余頁面通過單播的傳輸方式發(fā)送給對應(yīng)的虛擬機(jī);以使所述虛擬機(jī)集群中的各虛擬機(jī)恢復(fù)異常前的正常狀態(tài)。
[0025]具體的,服務(wù)器獲取到內(nèi)存中存儲的所有重復(fù)頁面后,根據(jù)各重復(fù)頁面與虛擬機(jī)集群中各虛擬機(jī)之間的映射關(guān)系,采用組播的傳輸方法將各重復(fù)頁面分別發(fā)送給對應(yīng)的虛擬機(jī),其中,用來傳輸各重復(fù)頁面的組播組的切換方法可以采用現(xiàn)有的組播組切換方法,在這里不再贅述。
[0026]在這里需要說明的是,鑒于循環(huán)碼的特性,本實(shí)施例優(yōu)選采用循環(huán)碼的切換方式對用來發(fā)送各重復(fù)頁面的組播組進(jìn)行切換,使得各個(gè)重復(fù)頁面發(fā)送給對應(yīng)的虛擬機(jī)。
[0027]進(jìn)一步的,服務(wù)器根據(jù)確定的各剩余頁面與各虛擬機(jī)之間的映射關(guān)系,將獲取到的各剩余頁面通過單播的傳輸方式發(fā)送給對應(yīng)的虛擬機(jī)。從而使得各虛擬機(jī)根據(jù)服務(wù)器通過組播或單播的傳輸方式發(fā)送的頁面從異常的工作狀態(tài)中恢復(fù)過來。
[0028]值得說明的是,本實(shí)施例對組播傳輸與單播傳輸?shù)南群箜樞虿蛔鼍唧w限定,即可以先通過組播的傳輸方式對重復(fù)頁面進(jìn)行傳輸,再通過單播的方式對剩余頁面進(jìn)行傳輸,也可以先通過單播的方式對剩余頁面進(jìn)行傳輸,再通過組播的傳輸方式對重復(fù)頁面進(jìn)行傳輸。
[0029]本實(shí)施例提供的基于虛擬機(jī)集群的回滾方法,通過組播的傳輸方式將內(nèi)存中存儲的各重復(fù)頁面發(fā)送給與各重復(fù)頁面對應(yīng)的虛擬機(jī),并通過單播的傳輸方式將內(nèi)存中存儲的除重復(fù)頁面以外的各剩余頁面,發(fā)送給與各剩余頁面對應(yīng)的虛擬機(jī),縮短了虛擬機(jī)集群從異常狀態(tài)中恢復(fù)所需的時(shí)間,降低了虛擬機(jī)集群恢復(fù)時(shí)的網(wǎng)絡(luò)占用量。
[0030]進(jìn)一步的,圖2為圖1所示方法的補(bǔ)充方法的流程示意圖,如圖2所示,在圖1所示方法的基礎(chǔ)上,本實(shí)施例提供的方法還包括:
[0031]步驟S1、接收虛擬機(jī)返回的接收響應(yīng),確定所述接收響應(yīng)中是否存在一發(fā)送失敗的重復(fù)頁面和/或一發(fā)送失敗的剩余頁面;
[0032]具體的,服務(wù)器通過組播的傳輸方式將重復(fù)頁面發(fā)送給對應(yīng)的虛擬機(jī),并通過單播的傳輸方式將除重復(fù)頁面以外的剩余頁面發(fā)送給對應(yīng)的虛擬機(jī)后,服務(wù)器接收各虛擬機(jī)返回的接收響應(yīng),并根據(jù)各虛擬機(jī)返回的接收響應(yīng),判斷各重復(fù)頁面和各剩余頁面是否發(fā)送成功。
[0033]步驟S2、若存在一發(fā)送失敗的重復(fù)頁面,則確定所述一發(fā)送失敗的重復(fù)頁面對應(yīng)的待重新發(fā)送的目標(biāo)虛擬機(jī)的數(shù)量,若所述數(shù)量為多個(gè),則將所述一發(fā)送失敗的重復(fù)頁面以組播的傳輸方式發(fā)送給所述目標(biāo)虛擬機(jī);和/或,若存在所述一發(fā)送失敗的剩余頁面,則將所述一發(fā)送失敗的剩余頁面,以單播的傳輸方式重新發(fā)送給對應(yīng)的虛擬機(jī)。