本發(fā)明涉及虛擬機(jī)技術(shù)領(lǐng)域,特別是涉及一種虛擬機(jī)高可用容災(zāi)方法及其系統(tǒng)。
背景技術(shù):
服務(wù)器虛擬化技術(shù)能夠?qū)⒁慌_(tái)服務(wù)器變?yōu)閿?shù)臺(tái)相互隔離的虛擬機(jī),使得服務(wù)器不再受限于物理上的界限,從而提高資源的利用率。
高可用虛擬機(jī)依托于高可用虛擬機(jī)應(yīng)用系統(tǒng),高可用虛擬機(jī)應(yīng)用系統(tǒng)一般包括兩個(gè)或兩個(gè)以上的物理服務(wù)器節(jié)點(diǎn)。虛擬機(jī)高可用容災(zāi)在對(duì)一些業(yè)務(wù)不中斷、連續(xù)性要求較高的服務(wù)中占有重要作用。
目前的虛擬機(jī)容災(zāi)方法為在備用服務(wù)器上設(shè)置相同配置的影子虛擬機(jī),當(dāng)虛擬機(jī)所在的主節(jié)點(diǎn)宕機(jī)后,將虛擬機(jī)的內(nèi)存和磁盤(pán)數(shù)據(jù)發(fā)送至影子虛擬機(jī)內(nèi),然后由影子虛擬機(jī)繼續(xù)執(zhí)行業(yè)務(wù)。但是,由于影子虛擬機(jī)是在主節(jié)點(diǎn)宕機(jī)后才接收虛擬機(jī)的數(shù)據(jù)并繼續(xù)執(zhí)行,故中間通常會(huì)導(dǎo)致一定時(shí)間長(zhǎng)度的業(yè)務(wù)中斷,并可能導(dǎo)致數(shù)據(jù)丟失,可靠性低,且高可用性差。
因此,如何提供一種可靠性高且具有高可用性的虛擬機(jī)高可用容災(zāi)方法及其系統(tǒng)是本領(lǐng)域技術(shù)人員目前需要解決的問(wèn)題。
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明的目的是提供一種虛擬機(jī)高可用容災(zāi)方法及其系統(tǒng),能夠盡可能避免由于主服務(wù)器節(jié)點(diǎn)發(fā)生宕機(jī)而導(dǎo)致的業(yè)務(wù)中斷和數(shù)據(jù)丟失,業(yè)務(wù)的可靠性高和高可用性好。
為解決上述技術(shù)問(wèn)題,本發(fā)明提供了一種虛擬機(jī)高可用容災(zāi)方法,用于高可用虛擬機(jī)應(yīng)用系統(tǒng),包括:
實(shí)時(shí)同步主服務(wù)器節(jié)點(diǎn)上的高可用虛擬機(jī)內(nèi)的內(nèi)存狀態(tài)和磁盤(pán)I/O數(shù)據(jù)至第一備用服務(wù)器節(jié)點(diǎn)上的第一影子虛擬機(jī);所述第一影子虛擬機(jī)與所述高可用虛擬機(jī)同等配置,且處于非活躍狀態(tài);
若所述主服務(wù)器節(jié)點(diǎn)宕機(jī),激活所述第一影子虛擬機(jī)接管所述高可用虛擬機(jī)的任務(wù)繼續(xù)執(zhí)行。
優(yōu)選地,所述主服務(wù)器節(jié)點(diǎn)宕機(jī)后還包括:
觸發(fā)第二備用服務(wù)器節(jié)點(diǎn)創(chuàng)建第二影子虛擬機(jī);
實(shí)時(shí)同步所述第一影子虛擬機(jī)內(nèi)的內(nèi)存狀態(tài)和磁盤(pán)I/O數(shù)據(jù)至所述第二影子虛擬機(jī);
若所述第一備用服務(wù)器節(jié)點(diǎn)宕機(jī),激活所述第二影子虛擬機(jī)接管所述第一虛擬機(jī)的任務(wù)繼續(xù)執(zhí)行。
優(yōu)選地,所述高可用虛擬機(jī)與所述第一影子虛擬機(jī)以及所述第一影子虛擬機(jī)與所述第二影子虛擬機(jī)之間的通信頻率為毫秒級(jí)。
優(yōu)選地,所述高可用虛擬機(jī)與所述第一影子虛擬機(jī)以及所述第一影子虛擬機(jī)與所述第二影子虛擬機(jī)之間通過(guò)libvirtd C函數(shù)庫(kù)進(jìn)行TCP傳輸控制協(xié)議或RDMA遠(yuǎn)程直接數(shù)據(jù)存取通信。
為解決上述技術(shù)問(wèn)題,本發(fā)明還提供了一種虛擬機(jī)高可用容災(zāi)系統(tǒng),用于高可用虛擬機(jī)應(yīng)用系統(tǒng),包括:
設(shè)置于主服務(wù)器節(jié)點(diǎn)的高可用虛擬機(jī)創(chuàng)建模塊,用于創(chuàng)建高可用虛擬機(jī);
設(shè)置于第一備用服務(wù)器節(jié)點(diǎn)上的第一影子虛擬機(jī)創(chuàng)建模塊,用于創(chuàng)建第一影子虛擬機(jī);
分別設(shè)置于所述主服務(wù)器節(jié)點(diǎn)和所述第一備用服務(wù)器節(jié)點(diǎn)上的同步監(jiān)測(cè)模塊,用于實(shí)時(shí)同步所述高可用虛擬機(jī)內(nèi)的內(nèi)存狀態(tài)和磁盤(pán)I/O數(shù)據(jù)至所述第一影子虛擬機(jī);所述第一影子虛擬機(jī)與所述高可用虛擬機(jī)同等配置且處于非活躍狀態(tài);若所述主服務(wù)器節(jié)點(diǎn)宕機(jī),激活所述第一影子虛擬機(jī)接管所述高可用虛擬機(jī)的任務(wù)繼續(xù)執(zhí)行。
優(yōu)選地,還包括:
設(shè)置于第二備用服務(wù)器節(jié)點(diǎn)上的同步監(jiān)測(cè)模塊;分別設(shè)置于所述第一備用服務(wù)器節(jié)點(diǎn)和所述第二備用服務(wù)器節(jié)點(diǎn)上的同步監(jiān)測(cè)模塊用于實(shí)時(shí)同步所述第一影子虛擬機(jī)內(nèi)的內(nèi)存狀態(tài)和磁盤(pán)I/O數(shù)據(jù)至所述第二影子虛擬機(jī);若所述第一備用服務(wù)器節(jié)點(diǎn)宕機(jī),激活所述第二影子虛擬機(jī)接管所述第一虛擬機(jī)的任務(wù)繼續(xù)執(zhí)行;
所述第一備用服務(wù)器節(jié)點(diǎn)上的同步監(jiān)測(cè)模塊還包括:
觸發(fā)單元,用于在所述主服務(wù)器節(jié)點(diǎn)宕機(jī)時(shí),觸發(fā)設(shè)置于所述第一備用服務(wù)器節(jié)點(diǎn)上的重建模塊;
所述重建模塊,用于觸發(fā)設(shè)置于第二備用服務(wù)器節(jié)點(diǎn)上的第二影子虛擬機(jī)創(chuàng)建模塊;
所述第二影子虛擬機(jī)創(chuàng)建模塊,用于創(chuàng)建第二影子虛擬機(jī)。
本發(fā)明提供了一種虛擬機(jī)高可用容災(zāi)方法及其系統(tǒng),在主服務(wù)器節(jié)點(diǎn)上的高可用虛擬機(jī)正常工作時(shí),即實(shí)時(shí)同步其內(nèi)存狀態(tài)和磁盤(pán)I/O數(shù)據(jù)至第一備用服務(wù)器節(jié)點(diǎn)上的第一影子虛擬機(jī),一旦主服務(wù)器發(fā)生宕機(jī)后,由于第一影子虛擬機(jī)內(nèi)已經(jīng)存有高可用虛擬機(jī)的數(shù)據(jù),故不再需要數(shù)據(jù)傳輸,而是僅激活第一影子虛擬機(jī)即可立即接管高可用虛擬機(jī)的業(yè)務(wù)繼續(xù)執(zhí)行??梢?jiàn),本發(fā)明能夠盡可能保證業(yè)務(wù)的連續(xù)性,避免由于主服務(wù)器節(jié)點(diǎn)發(fā)生宕機(jī)而導(dǎo)致的業(yè)務(wù)中斷和數(shù)據(jù)丟失,提高了虛擬機(jī)業(yè)務(wù)的可靠性和高可用性。
附圖說(shuō)明
為了更清楚地說(shuō)明本發(fā)明實(shí)施例中的技術(shù)方案,下面將對(duì)現(xiàn)有技術(shù)和實(shí)施例中所需要使用的附圖作簡(jiǎn)單地介紹,顯而易見(jiàn)地,下面描述中的附圖僅僅是本發(fā)明的一些實(shí)施例,對(duì)于本領(lǐng)域普通技術(shù)人員來(lái)講,在不付出創(chuàng)造性勞動(dòng)的前提下,還可以根據(jù)這些附圖獲得其他的附圖。
圖1為本發(fā)明提供的一種虛擬機(jī)高可用容災(zāi)方法的過(guò)程的流程圖;
圖2為本發(fā)明提供的另一種虛擬機(jī)高可用容災(zāi)方法的過(guò)程的流程圖;
圖3為本發(fā)明提供的一種虛擬機(jī)高可用容災(zāi)系統(tǒng)的結(jié)構(gòu)示意圖。
具體實(shí)施方式
本發(fā)明的核心是提供一種虛擬機(jī)高可用容災(zāi)方法及其系統(tǒng),能夠盡可能避免由于主服務(wù)器節(jié)點(diǎn)發(fā)生宕機(jī)而導(dǎo)致的業(yè)務(wù)中斷和數(shù)據(jù)丟失,業(yè)務(wù)的可靠性高,高可用性好。
為使本發(fā)明實(shí)施例的目的、技術(shù)方案和優(yōu)點(diǎn)更加清楚,下面將結(jié)合本發(fā)明實(shí)施例中的附圖,對(duì)本發(fā)明實(shí)施例中的技術(shù)方案進(jìn)行清楚、完整地描述,顯然,所描述的實(shí)施例是本發(fā)明一部分實(shí)施例,而不是全部的實(shí)施例。基于本發(fā)明中的實(shí)施例,本領(lǐng)域普通技術(shù)人員在沒(méi)有做出創(chuàng)造性勞動(dòng)前提下所獲得的所有其他實(shí)施例,都屬于本發(fā)明保護(hù)的范圍。
本發(fā)明提供了一種虛擬機(jī)高可用容災(zāi)方法,用于高可用虛擬機(jī)應(yīng)用系統(tǒng),參見(jiàn)圖1所示,圖1為本發(fā)明提供的一種虛擬機(jī)高可用容災(zāi)方法的過(guò)程的流程圖;該方法包括:
步驟s101:創(chuàng)建主服務(wù)器節(jié)點(diǎn)上的高可用虛擬機(jī);
步驟s102:創(chuàng)建第一備用服務(wù)器節(jié)點(diǎn)上的第一影子虛擬機(jī);
當(dāng)然,步驟s101和步驟s102之間可同時(shí)進(jìn)行,本發(fā)明不限定其先后順序。
步驟s103:實(shí)時(shí)同步主服務(wù)器節(jié)點(diǎn)上的高可用虛擬機(jī)內(nèi)的內(nèi)存狀態(tài)和磁盤(pán)I/O數(shù)據(jù)至第一備用服務(wù)器節(jié)點(diǎn)上的第一影子虛擬機(jī);第一影子虛擬機(jī)與高可用虛擬機(jī)同等配置,且處于非活躍狀態(tài);
步驟s104:若主服務(wù)器節(jié)點(diǎn)宕機(jī),激活第一影子虛擬機(jī)接管高可用虛擬機(jī)的任務(wù)繼續(xù)執(zhí)行。
可以理解的是,高可用性Availability=MTBF(正常運(yùn)行時(shí)間)/[MTTR(失效時(shí)間)+MTBF]。
作為優(yōu)選地,參見(jiàn)圖2所示,圖2為本發(fā)明提供的另一種虛擬機(jī)高可用容災(zāi)方法的過(guò)程的流程圖;主服務(wù)器節(jié)點(diǎn)宕機(jī)后還包括:
步驟s105:觸發(fā)第二備用服務(wù)器節(jié)點(diǎn)創(chuàng)建第二影子虛擬機(jī);
步驟s106:實(shí)時(shí)同步第一影子虛擬機(jī)內(nèi)的內(nèi)存狀態(tài)和磁盤(pán)I/O數(shù)據(jù)至第二影子虛擬機(jī);
步驟s107:若第一備用服務(wù)器節(jié)點(diǎn)宕機(jī),激活第二影子虛擬機(jī)接管第一虛擬機(jī)的任務(wù)繼續(xù)執(zhí)行。
可以理解的是,當(dāng)高可用虛擬機(jī)應(yīng)用系統(tǒng)包括兩個(gè)以上服務(wù)器節(jié)點(diǎn)時(shí),即可將第三個(gè)服務(wù)器節(jié)點(diǎn)設(shè)置為第二備用服務(wù)器節(jié)點(diǎn),在第一影子虛擬機(jī)接管業(yè)務(wù)后,在第二備用服務(wù)器節(jié)點(diǎn)上創(chuàng)建第二影子虛擬機(jī),進(jìn)一步提高虛擬機(jī)的高可用性;當(dāng)然,若高可用虛擬機(jī)應(yīng)用系統(tǒng)包括的服務(wù)器節(jié)點(diǎn)數(shù)量更多時(shí),還可以設(shè)置第三備用服務(wù)器節(jié)點(diǎn)、第四備用服務(wù)器節(jié)點(diǎn)等,具體設(shè)置備用服務(wù)器節(jié)點(diǎn)的數(shù)量可根據(jù)高可用虛擬機(jī)應(yīng)用系統(tǒng)所包含的服務(wù)器節(jié)點(diǎn)的數(shù)量以及自身需要而定,本發(fā)明對(duì)此不作具體限定,但是需要注意的是,為了實(shí)現(xiàn)上述功能,各個(gè)服務(wù)器節(jié)點(diǎn)均需要具有同步監(jiān)測(cè)功能,即能夠?qū)崟r(shí)將自身虛擬機(jī)內(nèi)的數(shù)據(jù)同步至自身對(duì)應(yīng)的備用服務(wù)器節(jié)點(diǎn)的影子虛擬機(jī)內(nèi)。
作為優(yōu)選地,高可用虛擬機(jī)與第一影子虛擬機(jī)以及第一影子虛擬機(jī)與第二影子虛擬機(jī)之間的通信頻率為毫秒級(jí)。
可以理解的是,為了保證各個(gè)虛擬機(jī)與自身對(duì)應(yīng)的影子虛擬機(jī)之間的數(shù)據(jù)同步性,兩者之間的通信頻率需要足夠高,因此通信頻率優(yōu)選為毫秒級(jí),當(dāng)然,本發(fā)明不限定通信頻率的具體數(shù)值,通信頻率是否采用其他級(jí)別也可根據(jù)實(shí)際情況設(shè)定。
作為優(yōu)選地,高可用虛擬機(jī)與第一影子虛擬機(jī)以及第一影子虛擬機(jī)與第二影子虛擬機(jī)之間通過(guò)libvirtd C函數(shù)庫(kù)進(jìn)行TCP(Transmission Control Protocol,傳輸控制協(xié)議)或RDMA(Remote Direct Memory Access,遠(yuǎn)程直接數(shù)據(jù)存取通信)。
本發(fā)明提供了一種虛擬機(jī)高可用容災(zāi)方法,在主服務(wù)器節(jié)點(diǎn)上的高可用虛擬機(jī)正常工作時(shí),即實(shí)時(shí)同步其內(nèi)存狀態(tài)和磁盤(pán)I/O數(shù)據(jù)至第一備用服務(wù)器節(jié)點(diǎn)上的第一影子虛擬機(jī),一旦主服務(wù)器發(fā)生宕機(jī)后,由于第一影子虛擬機(jī)內(nèi)已經(jīng)存有高可用虛擬機(jī)的數(shù)據(jù),故不再需要數(shù)據(jù)傳輸,而是僅激活第一影子虛擬機(jī)即可立即接管高可用虛擬機(jī)的業(yè)務(wù)繼續(xù)執(zhí)行??梢?jiàn),本發(fā)明能夠盡可能保證業(yè)務(wù)的連續(xù)性,避免由于主服務(wù)器節(jié)點(diǎn)發(fā)生宕機(jī)而導(dǎo)致的業(yè)務(wù)中斷和數(shù)據(jù)丟失,提高了虛擬機(jī)業(yè)務(wù)的可靠性和高可用性。
本發(fā)明還提供了一種虛擬機(jī)高可用容災(zāi)系統(tǒng),用于高可用虛擬機(jī)應(yīng)用系統(tǒng),參見(jiàn)圖2所示,圖2為本發(fā)明提供的一種虛擬機(jī)高可用容災(zāi)系統(tǒng)的結(jié)構(gòu)示意圖。該系統(tǒng)包括:
設(shè)置于主服務(wù)器節(jié)點(diǎn)的高可用虛擬機(jī)創(chuàng)建模塊11,用于創(chuàng)建高可用虛擬機(jī);
設(shè)置于第一備用服務(wù)器節(jié)點(diǎn)上的第一影子虛擬機(jī)創(chuàng)建模塊12,用于創(chuàng)建第一影子虛擬機(jī);
分別設(shè)置于主服務(wù)器節(jié)點(diǎn)和第一備用服務(wù)器節(jié)點(diǎn)上的同步監(jiān)測(cè)模塊13,用于實(shí)時(shí)同步高可用虛擬機(jī)內(nèi)的內(nèi)存狀態(tài)和磁盤(pán)I/O數(shù)據(jù)至第一影子虛擬機(jī);第一影子虛擬機(jī)與高可用虛擬機(jī)同等配置且處于非活躍狀態(tài);若主服務(wù)器節(jié)點(diǎn)宕機(jī),激活第一影子虛擬機(jī)接管高可用虛擬機(jī)的任務(wù)繼續(xù)執(zhí)行。
作為優(yōu)選地,該系統(tǒng)還包括:
設(shè)置于第二備用服務(wù)器節(jié)點(diǎn)上的同步監(jiān)測(cè)模塊13;分別設(shè)置于第一備用服務(wù)器節(jié)點(diǎn)和第二備用服務(wù)器節(jié)點(diǎn)上的同步監(jiān)測(cè)模塊13用于實(shí)時(shí)同步第一影子虛擬機(jī)內(nèi)的內(nèi)存狀態(tài)和磁盤(pán)I/O數(shù)據(jù)至第二影子虛擬機(jī);若第一備用服務(wù)器節(jié)點(diǎn)宕機(jī),激活第二影子虛擬機(jī)接管第一虛擬機(jī)的任務(wù)繼續(xù)執(zhí)行;
第一備用服務(wù)器節(jié)點(diǎn)上的同步監(jiān)測(cè)模塊13還包括:
觸發(fā)單元,用于在主服務(wù)器節(jié)點(diǎn)宕機(jī)時(shí),觸發(fā)設(shè)置于第一備用服務(wù)器節(jié)點(diǎn)上的重建模塊14;
重建模塊14,用于觸發(fā)設(shè)置于第二備用服務(wù)器節(jié)點(diǎn)上的第二影子虛擬機(jī)創(chuàng)建模塊15;
第二影子虛擬機(jī)創(chuàng)建模塊15,用于創(chuàng)建第二影子虛擬機(jī)。
即高可用虛擬機(jī)與第一影子虛擬機(jī)之間、以及第一影子虛擬機(jī)與第二影子虛擬機(jī)之間均通過(guò)兩個(gè)同步監(jiān)測(cè)模塊13進(jìn)行數(shù)據(jù)同步,當(dāng)主服務(wù)器節(jié)點(diǎn)宕機(jī)后,主服務(wù)器節(jié)點(diǎn)上的同步監(jiān)測(cè)模塊13通過(guò)第一備用服務(wù)器節(jié)點(diǎn)上的同步監(jiān)測(cè)模塊13激活第一影子虛擬機(jī),同理,第一備用服務(wù)器節(jié)點(diǎn)宕機(jī)后,第一備用服務(wù)器節(jié)點(diǎn)上的同步監(jiān)測(cè)模塊13通過(guò)第二備用服務(wù)器節(jié)點(diǎn)上的同步監(jiān)測(cè)模塊13激活第二影子虛擬機(jī)。
本發(fā)明提供了一種虛擬機(jī)高可用容災(zāi)系統(tǒng),在主服務(wù)器節(jié)點(diǎn)上的高可用虛擬機(jī)正常工作時(shí),即實(shí)時(shí)同步其內(nèi)存狀態(tài)和磁盤(pán)I/O數(shù)據(jù)至第一備用服務(wù)器節(jié)點(diǎn)上的第一影子虛擬機(jī),一旦主服務(wù)器發(fā)生宕機(jī)后,由于第一影子虛擬機(jī)內(nèi)已經(jīng)存有高可用虛擬機(jī)的數(shù)據(jù),故不再需要數(shù)據(jù)傳輸,而是僅激活第一影子虛擬機(jī)即可立即接管高可用虛擬機(jī)的業(yè)務(wù)繼續(xù)執(zhí)行??梢?jiàn),本發(fā)明能夠盡可能保證業(yè)務(wù)的連續(xù)性,避免由于主服務(wù)器節(jié)點(diǎn)發(fā)生宕機(jī)而導(dǎo)致的業(yè)務(wù)中斷和數(shù)據(jù)丟失,提高了虛擬機(jī)業(yè)務(wù)的可靠性和高可用性。
需要說(shuō)明的是,在本說(shuō)明書(shū)中,術(shù)語(yǔ)“包括”、“包含”或者其任何其他變體意在涵蓋非排他性的包含,從而使得包括一系列要素的過(guò)程、方法、物品或者設(shè)備不僅包括那些要素,而且還包括沒(méi)有明確列出的其他要素,或者是還包括為這種過(guò)程、方法、物品或者設(shè)備所固有的要素。在沒(méi)有更多限制的情況下,由語(yǔ)句“包括一個(gè)……”限定的要素,并不排除在包括所述要素的過(guò)程、方法、物品或者設(shè)備中還存在另外的相同要素。
對(duì)所公開(kāi)的實(shí)施例的上述說(shuō)明,使本領(lǐng)域?qū)I(yè)技術(shù)人員能夠?qū)崿F(xiàn)或使用本發(fā)明。對(duì)這些實(shí)施例的多種修改對(duì)本領(lǐng)域的專(zhuān)業(yè)技術(shù)人員來(lái)說(shuō)將是顯而易見(jiàn)的,本文中所定義的一般原理可以在不脫離本發(fā)明的精神或范圍的情況下,在其他實(shí)施例中實(shí)現(xiàn)。因此,本發(fā)明將不會(huì)被限制于本文所示的這些實(shí)施例,而是要符合與本文所公開(kāi)的原理和新穎特點(diǎn)相一致的最寬的范圍。