1.一種基于組播技術(shù)的虛擬集群回滾方法,其步驟為:
1)存儲(chǔ)集群從快照文件中識(shí)別出數(shù)據(jù)相同的虛擬機(jī)頁(yè)面,然后根據(jù)虛擬機(jī)與物理機(jī)的對(duì)應(yīng)關(guān)系確定出需要組播或單播的虛擬機(jī)頁(yè)面,對(duì)虛擬機(jī)頁(yè)面進(jìn)行數(shù)據(jù)包封裝;其中,將數(shù)據(jù)相同且對(duì)應(yīng)的虛擬機(jī)在同一臺(tái)物理機(jī)上恢復(fù)的虛擬機(jī)頁(yè)面確定為單播方式傳輸,將數(shù)據(jù)內(nèi)容相同且對(duì)應(yīng)的虛擬機(jī)在不同物理機(jī)上恢復(fù)的虛擬機(jī)頁(yè)面確定為組播方式傳輸;
2)存儲(chǔ)集群判斷當(dāng)前待發(fā)送的數(shù)據(jù)包是否為組播數(shù)據(jù)包,如果為組播數(shù)據(jù)包,則通知該組播數(shù)據(jù)包待發(fā)往的物理機(jī)加入到一組播組中,然后將該組播數(shù)據(jù)包發(fā)送到該組播組中;物理機(jī)對(duì)收到的組播數(shù)據(jù)包進(jìn)行解析,將組播數(shù)據(jù)包中的虛擬機(jī)頁(yè)面恢復(fù)到相應(yīng)的地址;如果為單播數(shù)據(jù)包以單播形式發(fā)送到對(duì)應(yīng)物理機(jī),物理機(jī)將該數(shù)據(jù)包中的虛擬機(jī)頁(yè)面恢復(fù)到相應(yīng)的地址;其中,組播組中的物理機(jī)為對(duì)應(yīng)組播數(shù)據(jù)包待發(fā)往的物理機(jī)集合。
2.如權(quán)利要求1所述的方法,其特征在于,對(duì)數(shù)據(jù)相同的虛擬機(jī)頁(yè)面進(jìn)行數(shù)據(jù)包封裝后的格式為:[頁(yè)面數(shù)目、{虛擬機(jī)編號(hào)i、頁(yè)編號(hào)j}、...、{虛擬機(jī)編號(hào)k、頁(yè)編號(hào)h}、頁(yè)面內(nèi)容]。
3.如權(quán)利要求1所述的方法,其特征在于,所述步驟2)中,存儲(chǔ)集群優(yōu)先發(fā)送組播數(shù)據(jù)包,然后發(fā)送單播數(shù)據(jù)包。
4.如權(quán)利要求1或2或3所述的方法,其特征在于,對(duì)于單播數(shù)據(jù)包,存儲(chǔ)集群優(yōu)先發(fā)送內(nèi)容相同且發(fā)送到同一臺(tái)物理機(jī)的單播數(shù)據(jù)包。
5.如權(quán)利要求1所述的方法,其特征在于,所述存儲(chǔ)集群通過(guò)控制命令通知物理機(jī)加入組播組和退出組播組,維護(hù)組播組中的物理機(jī)為對(duì)應(yīng)組播數(shù)據(jù)包待發(fā)往的物理機(jī)集合。
6.一種基于組播技術(shù)的虛擬集群回滾系統(tǒng),其特征在于,包括存儲(chǔ)集群和服務(wù)器集群,其中存儲(chǔ)集群中的每一存儲(chǔ)設(shè)備端上部署一回滾客戶端、控制客戶端和數(shù)據(jù)客戶端;服務(wù)器集群中的每一物理機(jī)上部署回滾服務(wù)端、控制服務(wù)端和數(shù)據(jù)服務(wù)端;
所述回滾客戶端,負(fù)責(zé)從快照文件中識(shí)別出數(shù)據(jù)相同的虛擬機(jī)頁(yè)面,然后根據(jù)虛擬機(jī)與物理機(jī)的對(duì)應(yīng)關(guān)系確定出需要組播或單播的虛擬機(jī)頁(yè)面;
所述控制客戶端,負(fù)責(zé)發(fā)送控制命令,通知服務(wù)器集群中的物理機(jī)加入組播組和退出組播組;
所述數(shù)據(jù)客戶端,負(fù)責(zé)對(duì)虛擬機(jī)頁(yè)面進(jìn)行數(shù)據(jù)包封裝和發(fā)送,其中,將數(shù)據(jù)相同且對(duì)應(yīng)的虛擬機(jī)在同一臺(tái)物理機(jī)上恢復(fù)的虛擬機(jī)頁(yè)面封裝為單播數(shù)據(jù)包,將數(shù)據(jù)內(nèi)容相同且對(duì)應(yīng)的虛擬機(jī)在不同物理機(jī)上恢復(fù)的虛擬機(jī)頁(yè)面封裝為組播數(shù)據(jù)包;
所述回滾服務(wù)端,用于通過(guò)控制服務(wù)端和數(shù)據(jù)服務(wù)端來(lái)接收控制命令和數(shù)據(jù)包,以及 根據(jù)收到的控制命令控制物理機(jī)加入或退出組播組;對(duì)收到的數(shù)據(jù)包進(jìn)行解析,將數(shù)據(jù)包中的虛擬機(jī)頁(yè)面恢復(fù)到相應(yīng)的地址。
7.如權(quán)利要求6所述的系統(tǒng),其特征在于,對(duì)數(shù)據(jù)相同的虛擬機(jī)頁(yè)面進(jìn)行數(shù)據(jù)包封裝后的格式為:[頁(yè)面數(shù)目、{虛擬機(jī)編號(hào)i、頁(yè)編號(hào)j}、...、{虛擬機(jī)編號(hào)k、頁(yè)編號(hào)h}、頁(yè)面內(nèi)容]。
8.如權(quán)利要求6或7所述的系統(tǒng),其特征在于,所述數(shù)據(jù)客戶端優(yōu)先發(fā)送組播數(shù)據(jù)包,然后發(fā)送單播數(shù)據(jù)包。
9.如權(quán)利要求6或7所述的系統(tǒng),其特征在于,對(duì)于單播數(shù)據(jù)包,所述數(shù)據(jù)客戶端優(yōu)先發(fā)送內(nèi)容相同且發(fā)送到同一臺(tái)物理機(jī)的單播數(shù)據(jù)包。