本發(fā)明涉及通信和計算機領域,具體涉及一種虛擬機容錯方法和系統(tǒng)。
背景技術:
最近幾年,國家對信息安全有著迫切的形勢要求,國產(chǎn)化進程加快,國產(chǎn)cpu產(chǎn)業(yè)發(fā)展迅速。在國家“核高基”重大專項支持下、采用自主指令集,具有完全自主知識產(chǎn)權的國產(chǎn)處理器得到廣泛應用。
當前信息技術快速發(fā)展,證券、軍方等對用戶業(yè)務的連續(xù)性和可靠性要求更高。過去被廣泛應用的容錯即業(yè)務切換技術,一臺主機出錯,另一臺主機會隨后開啟,會造成業(yè)務的中斷,甚至會造成巨大的經(jīng)濟損失。所以,需要一種虛擬機容錯方法和系統(tǒng),以實現(xiàn)業(yè)務不間斷,保證業(yè)務的高可靠性,尤其是適用于國產(chǎn)處理器平臺。
技術實現(xiàn)要素:
針對上述現(xiàn)有技術中業(yè)務容易發(fā)生間斷的問題,本發(fā)明的目的在于提供一種虛擬機容錯方法和系統(tǒng)。
為了實現(xiàn)上述目的,本發(fā)明采用的技術方案如下:
一種虛擬機容錯方法,主節(jié)點上部署有主虛擬機,從節(jié)點上部署有從虛擬機,具體包括以下步驟:
s00:主虛擬機接收到客戶端傳送的消息,同時將消息轉(zhuǎn)發(fā)給從虛擬機,主虛擬機與從虛擬機同時響應客戶端消息;
s10:虛擬機檢測機制檢測主虛擬機與從虛擬機對客戶端發(fā)來的消息做出的響應是否一致,若一致,主虛擬機與從虛擬機正常運行,若不一致,進行步驟s20:
s20:主虛擬機與從虛擬機進行同步操作;
s30:心跳檢測器時刻對主虛擬機與從虛擬機的狀態(tài)進行監(jiān)控,若心跳檢測器發(fā)現(xiàn)主虛擬機出現(xiàn)故障,進行步驟s40;
s40:主節(jié)點與從節(jié)點進行故障遷移。
進一步地,步驟s20具體包括以下步驟:
s21:主節(jié)點暫?;顒?;
s22:啟動內(nèi)存同步系統(tǒng),進行從從節(jié)點到主節(jié)點的完整備份;
s23:主節(jié)點恢復正常運行。
進一步地,步驟s40具體包括以下步驟:
s41:觸發(fā)故障轉(zhuǎn)移機制;
s42:從節(jié)點瞬時接收主節(jié)點工作。
進一步地,主虛擬機與從虛擬機為kvm虛擬機。
一種虛擬機容錯系統(tǒng),包括主服務器、從服務器以及客戶端,其特征在于,主服務器作為主節(jié)點,從服務器作為從節(jié)點,主節(jié)點上部署有主虛擬機,從節(jié)點上部署有從虛擬機,主虛擬機與從虛擬機還分別部署有:
虛擬機檢測機制,用于檢測主虛擬機與從虛擬機對客戶端發(fā)來的消息做出的響應是否一致;
內(nèi)存同步系統(tǒng),用于主虛擬機與從虛擬機的內(nèi)存同步;
心跳檢測器,用于時刻對主虛擬機與從虛擬機的狀態(tài)進行監(jiān)控;故障轉(zhuǎn)移機制,用于使從節(jié)點瞬時接收所述主節(jié)點工作;
主節(jié)點與從節(jié)點通過物理網(wǎng)卡進行通信。
一種計算機可讀存儲介質(zhì),其上存儲有計算機程序(指令),用于實現(xiàn)虛擬機的容錯,
計算機程序(指令)被處理器執(zhí)行時實現(xiàn)以下步驟:
s00:主虛擬機接收到客戶端傳送的消息,同時將消息轉(zhuǎn)發(fā)給從虛擬機,主虛擬機與從虛擬機同時響應客戶端消息;
s10:虛擬機檢測機制檢測主虛擬機與從虛擬機對客戶端發(fā)來的消息做出的響應是否一致,若一致,主虛擬機與從虛擬機正常運行,若不一致,進行步驟s20:
s20:主虛擬機與從虛擬機進行同步操作;
s30:心跳檢測器時刻對主虛擬機與從虛擬機的狀態(tài)進行監(jiān)控,若心跳檢測器發(fā)現(xiàn)主虛擬機出現(xiàn)故障,進行步驟s40;
s40:主節(jié)點與從節(jié)點進行故障遷移。
進一步地,步驟s20具體包括以下步驟:
s21:主節(jié)點暫?;顒樱?/p>
s22:啟動內(nèi)存同步系統(tǒng),進行從從節(jié)點到主節(jié)點的完整備份;
s23:主節(jié)點恢復正常運行。
進一步地,步驟s40具體包括以下步驟:
s41:觸發(fā)故障轉(zhuǎn)移機制;
s42:從節(jié)點瞬時接收主節(jié)點工作。
本發(fā)明通過以上技術方案,能夠獲得以下有益技術效果:
(1)通過主虛擬機與從虛擬機同時響應客戶端操作以及部署虛擬機檢測機制和故障轉(zhuǎn)移機制以保證主虛擬機發(fā)生故障時從虛擬機快速接替主虛擬機工作,此時,從節(jié)點會瞬時接收主節(jié)點工作,實現(xiàn)秒級切換,保證業(yè)務的連續(xù)性和可靠性;
(2)通過部署虛擬機檢測機制檢測主虛擬機和從虛擬機的同步狀態(tài),以便于及時有效地進行內(nèi)存同步。
當然,實施本發(fā)明的任一產(chǎn)品必不一定需要同時達到以上所述的所有技術效果。
附圖說明
此處所說明的附圖用來提供對本發(fā)明的進一步理解,構(gòu)成本發(fā)明的一部分,本發(fā)明的示意性實施例及其說明用于解釋本發(fā)明,并不構(gòu)成對本發(fā)明的不當限定。在附圖中:
圖1為本發(fā)明實施例所述的虛擬機容錯方法的流程圖;
圖2為圖1步驟s20的子流程圖;
圖3為圖1步驟s40的子流程圖;
圖4為本發(fā)明實施例所述的虛擬機容錯系統(tǒng)的結(jié)構(gòu)示意圖。
具體實施方式
如在說明書及權利要求當中使用了某些詞匯來指稱特定組件。本領域技術人員應可理解,硬件制造商可能會用不同名詞來稱呼同一個組件。本說明書及權利要求并不以名稱的差異來作為區(qū)分組件的方式,而是以組件在功能上的差異來作為區(qū)分的準則。如在通篇說明書及權利要求當中所提及的“包括”為一開放式用語,故應解釋成“包括但不限定于”。說明書后續(xù)描述為實施本發(fā)明的較佳實施方式,然所述描述乃以說明本發(fā)明的一般原則為目的,并非用以限定本發(fā)明的范圍。本發(fā)明的保護范圍當視所附權利要求所界定者為準。
實施例1
如圖1-3所示,本實施例提供的一種虛擬機容錯方法,主節(jié)點上部署有主虛擬機,從節(jié)點上部署有從虛擬機,具體包括以下步驟:首先,主虛擬機接收到客戶端傳送的消息,同時將消息轉(zhuǎn)發(fā)給從虛擬機,主虛擬機與從虛擬機同時響應客戶端消息;然后,利用虛擬機檢測機制確定下一步具體工作,虛擬機檢測機制檢測主虛擬機與從虛擬機對客戶端發(fā)來的消息做出的響應是否一致,若一致,主虛擬機與從虛擬機正常運行,若不一致,主虛擬機與從虛擬機進行同步操作;同時,心跳檢測器時刻對主虛擬機與從虛擬機的狀態(tài)進行監(jiān)控,若心跳檢測器發(fā)現(xiàn)主虛擬機出現(xiàn)故障,進行主節(jié)點與從節(jié)點進行故障遷移。主虛擬機一直在進行工作,從虛擬機則需要同步主虛擬機的業(yè)務。當主虛擬機出現(xiàn)故障時,從虛擬機可以快速接管,從而實現(xiàn)業(yè)務不間斷。
進一步地,主虛擬機與從虛擬機進行同步操作具體包括以下步驟:首先,主節(jié)點暫?;顒?;然后,啟動內(nèi)存同步系統(tǒng),進行從從節(jié)點到主節(jié)點的完整備份;之后,主節(jié)點恢復正常運行。
進一步地,進行主節(jié)點與從節(jié)點進行故障遷移具體包括以下步驟:首先,觸發(fā)故障轉(zhuǎn)移機制;然后,從節(jié)點瞬時接收主節(jié)點工作。
進一步地,主虛擬機與從虛擬機為kvm虛擬機。
本方法完全利用軟件實現(xiàn)虛擬機復制和容錯服務,是對現(xiàn)有的基于kvm管理平臺的虛擬機狀態(tài)切換進行改進,采用虛擬機的主從備份模式,實現(xiàn)主虛擬機與從虛擬機無縫切換,從而實現(xiàn)高可用性,解決主虛擬機與從虛擬機切換過程中業(yè)務中斷的問題。本實施例提供的虛擬機容錯方法可以基于國產(chǎn)的申威平臺,也可以應用到其他國產(chǎn)平臺。
實施例2
如圖1-4所示,本實施例提供的一種虛擬機容錯系統(tǒng),包括主服務器、從服務器以及客戶端,主服務器作為主節(jié)點,從服務器作為從節(jié)點,主節(jié)點上部署有主虛擬機,從節(jié)點上部署有從虛擬機,主虛擬機與從虛擬機還分別部署有:虛擬機檢測機制、內(nèi)存同步系統(tǒng)、故障轉(zhuǎn)移機制和心跳檢測器。其中,主虛擬機一直在進行工作,從虛擬機則需要同步主虛擬機的業(yè)務。當主虛擬機出現(xiàn)故障時,從虛擬機可以快速接管,從而實現(xiàn)業(yè)務不間斷。
虛擬機檢測機制用于檢測主虛擬機與從虛擬機對客戶端發(fā)來的消息做出的響應是否一致;內(nèi)存同步系統(tǒng)用于主虛擬機與從虛擬機內(nèi)存同步,進行從從節(jié)點到主節(jié)點的完整備份。心跳檢測器,用于時刻對主虛擬機與從虛擬機的狀態(tài)進行監(jiān)控;故障轉(zhuǎn)移機制用于使從節(jié)點瞬時接收所述主節(jié)點工作。
進一步地,主節(jié)點與從節(jié)點通過物理網(wǎng)卡進行通信。
本實施例提供的虛擬機容錯系統(tǒng)可以基于國產(chǎn)的申威平臺,也可以應用到其他國產(chǎn)平臺。
本實施例提供的虛擬機容錯系統(tǒng)用于實現(xiàn)以下步驟:
首先,主虛擬機接收到客戶端傳送的消息,同時將消息轉(zhuǎn)發(fā)給從虛擬機,主虛擬機與從虛擬機同時響應客戶端消息;然后,利用虛擬機檢測機制確定下一步具體工作,虛擬機檢測機制檢測主虛擬機與從虛擬機對客戶端發(fā)來的消息做出的響應是否一致,若一致,主虛擬機與從虛擬機正常運行,若不一致,主虛擬機與從虛擬機進行同步操作;同時,心跳檢測器時刻對主虛擬機與從虛擬機的狀態(tài)進行監(jiān)控,若心跳檢測器發(fā)現(xiàn)主虛擬機出現(xiàn)故障,進行主節(jié)點與從節(jié)點進行故障遷移。主虛擬機一直在進行工作,從虛擬機則需要同步主虛擬機的業(yè)務。當主虛擬機出現(xiàn)故障時,從虛擬機可以快速接管,從而實現(xiàn)業(yè)務不間斷。
進一步地,主虛擬機與從虛擬機進行同步操作具體包括以下步驟:首先,主節(jié)點暫?;顒樱蝗缓?,啟動內(nèi)存同步系統(tǒng),進行從從節(jié)點到主節(jié)點的完整備份;之后,主節(jié)點恢復正常運行。
進一步地,進行主節(jié)點與從節(jié)點進行故障遷移具體包括以下步驟:首先,觸發(fā)故障轉(zhuǎn)移機制;然后,從節(jié)點瞬時接收主節(jié)點工作。
進一步地,主虛擬機與從虛擬機為kvm虛擬機。
實施例3
如圖1-4所示,本實施例提供的一種計算機可讀存儲介質(zhì),其上存儲有計算機程序(指令),用于實現(xiàn)虛擬機的容錯,計算機程序(指令)被處理器執(zhí)行時實現(xiàn)以下步驟:首先,主虛擬機接收到客戶端傳送的消息,同時將消息轉(zhuǎn)發(fā)給從虛擬機,主虛擬機與從虛擬機同時響應客戶端消息;然后,虛擬機檢測機制檢測主虛擬機與從虛擬機對客戶端發(fā)來的消息做出的響應是否一致,若一致,主虛擬機與從虛擬機正常運行,若不一致,主虛擬機與從虛擬機進行同步操作;同時,心跳檢測器時刻對主虛擬機與從虛擬機的狀態(tài)進行監(jiān)控,若心跳檢測器發(fā)現(xiàn)主虛擬機出現(xiàn)故障,進行主節(jié)點與從節(jié)點進行故障遷移。其中,主虛擬機一直在進行工作,從虛擬機則需要同步主虛擬機的業(yè)務。當主虛擬機出現(xiàn)故障時,從虛擬機可以快速接管,從而實現(xiàn)業(yè)務不間斷。
進一步地,主虛擬機與從虛擬機進行同步操作具體包括以下步驟:首先,主節(jié)點暫?;顒?;然后,啟動內(nèi)存同步系統(tǒng),進行從從節(jié)點到主節(jié)點的完整備份;之后,主節(jié)點恢復正常運行。
進一步地,進行主節(jié)點與從節(jié)點進行故障遷移具體包括以下步驟:首先,觸發(fā)故障轉(zhuǎn)移機制;然后,從節(jié)點瞬時接收主節(jié)點工作。
術語解釋:
kvm:kernel-basedvirtualmachine,基于內(nèi)核的虛擬機。是一種用于linux內(nèi)核中的虛擬化基礎設施,可以將linux內(nèi)核轉(zhuǎn)換為hypervisor。kvm是一個開源的系統(tǒng)虛擬化模塊,需要硬件支持,是基于硬件的完全虛擬化。kvm具有高性能、擴展性、高安全以及低成本的優(yōu)點。
本實施例提供的一種虛擬機容錯方法和系統(tǒng),具有以下優(yōu)點:
(1)通過主虛擬機與從虛擬機同時響應客戶端操作以及部署虛擬機檢測機制和故障轉(zhuǎn)移機制以保證主虛擬機發(fā)生故障時從虛擬機快速接替主虛擬機工作,此時,從節(jié)點會瞬時接收主節(jié)點工作,實現(xiàn)秒級切換,保證業(yè)務的連續(xù)性和可靠性;
(2)通過部署虛擬機檢測機制檢測主虛擬機和從虛擬機的同步狀態(tài),以便于及時有效地進行內(nèi)存同步。
還需要說明的是,術語“包括”、“包含”或者其任何其他變體意在涵蓋非排他性的包含,從而使得包括一系列要素的過程、方法、商品或者設備不僅包括那些要素,而且還包括沒有明確列出的其他要素,或者是還包括為這種過程、方法、商品或者設備所固有的要素。在沒有更多限制的情況下,由語句“包括一個……”限定的要素,并不排除在包括所述要素的過程、方法、商品或者設備中還存在另外的相同要素。
以上所述僅為本發(fā)明的若干實施例而已,并不用于限制本發(fā)明。對于本領域技術人員來說,本發(fā)明可以有各種更改和變化。凡在本發(fā)明的精神和原理之內(nèi)所作的任何修改、等同替換、改進等,均應包含在本發(fā)明的權利要求范圍之內(nèi)。