一種虛擬機(jī)故障檢測和恢復(fù)的方法
【技術(shù)領(lǐng)域】
[0001] 本發(fā)明涉及云計算與網(wǎng)絡(luò)技術(shù)領(lǐng)域,特別是一種虛擬機(jī)故障檢測和恢復(fù)的方法。
【背景技術(shù)】
[0002] 隨著云計算行業(yè)日益發(fā)展,信息安全早已成為眾人關(guān)注的焦點(diǎn)。數(shù)據(jù)的安全和應(yīng) 用業(yè)務(wù)運(yùn)行的穩(wěn)定性越來越重要,如果物理機(jī)發(fā)生故障,沒有及時將虛擬機(jī)進(jìn)行迀移,會帶 來以下問題:
[0003] -是虛擬機(jī)上的業(yè)務(wù)中斷,外界無法繼續(xù)進(jìn)行訪問,業(yè)務(wù)也無法繼續(xù)進(jìn)行,導(dǎo)致給 用戶帶來的損失不斷增加。
[0004] 二是數(shù)據(jù)丟失,沒有了故障恢復(fù)機(jī)制,虛擬機(jī)上的數(shù)據(jù)不能得以迀移,導(dǎo)致故障前 的數(shù)據(jù)不能繼續(xù)使用,業(yè)務(wù)也無法繼續(xù)正常進(jìn)行,人工修復(fù)數(shù)據(jù)工作量大,又消耗時間長。
[0005] 三是用戶不能及時得知物理機(jī)故障消息,業(yè)務(wù)中斷也有可能無人知曉。
[0006] 四是運(yùn)維人員恢復(fù)虛擬機(jī)難度大,步驟復(fù)雜繁瑣,易出錯。
[0007] 為了提升虛擬機(jī)的穩(wěn)定性,增強(qiáng)虛擬機(jī)上面應(yīng)用的穩(wěn)定性,需要一種通過虛擬機(jī) 故障檢測和恢復(fù)的方法,就算遭遇節(jié)點(diǎn)故障,也能在較短時間內(nèi)執(zhí)行故障恢復(fù),讓虛擬機(jī)在 別的節(jié)點(diǎn)上啟動起來,減少帶來的損失。
【發(fā)明內(nèi)容】
[0008] 本發(fā)明解決的技術(shù)問題在于提供一種虛擬機(jī)故障檢測和恢復(fù)的方法,解決了節(jié)點(diǎn) 故障帶來的業(yè)務(wù)中斷問題,能在較短時間內(nèi)自動實(shí)現(xiàn)故障恢復(fù),啟動虛擬機(jī)繼續(xù)運(yùn)行業(yè)務(wù)。
[0009] 本發(fā)明解決上述技術(shù)問題的技術(shù)方案是:
[0010] 所述的方法包括如下步驟:
[0011] 步驟1 :部署一個NFS網(wǎng)絡(luò)文件系統(tǒng)環(huán)境,在NFS服務(wù)器上面建立一個掛載點(diǎn),把 鏡像放在NFS服務(wù)器的掛載點(diǎn)上,所有節(jié)點(diǎn)都掛載共享存儲,然后用該鏡像創(chuàng)建一臺虛擬 機(jī);
[0012] 步驟2 :啟動檢測節(jié)點(diǎn)定時器,檢測網(wǎng)絡(luò)和電源是否處于正常狀態(tài),否則需要向調(diào) 度器發(fā)送故障恢復(fù)指令;
[0013] 步驟3 :通過調(diào)度器根據(jù)預(yù)先設(shè)定的cpu負(fù)載策略等調(diào)度規(guī)選擇可用的節(jié)點(diǎn);
[0014] 步驟4 :根據(jù)創(chuàng)建虛擬機(jī)的時候生成的配置文件,重新生成一臺跟原來一樣的虛 擬機(jī);
[0015] 步驟5 :啟動創(chuàng)建完的虛擬機(jī);
[0016] 步驟6:結(jié)束。
[0017] 定時任務(wù)不斷檢測物理機(jī)狀態(tài),在滿足網(wǎng)絡(luò)不通和電源狀態(tài)異常時執(zhí)行故障恢 復(fù);以有效區(qū)分網(wǎng)絡(luò)阻塞還是物理機(jī)故障,防止錯誤判斷導(dǎo)致兩邊啟動相同的虛擬機(jī)、同時 讀寫同一個鏡像。
[0018] 所述cpu負(fù)載策略是指調(diào)度器會尋找cpu較低的物理機(jī)節(jié)點(diǎn)來分配,可以有效做 到負(fù)載均衡;
[0019] 所述配置文件是指創(chuàng)建虛擬機(jī)的時候就以xml形式記錄下這臺虛擬機(jī)配置屬性;
[0020] 所述創(chuàng)建虛擬機(jī)是指libvirt命令里面的virshdefine,根據(jù)配置文件,通過NFS 上面的鏡像創(chuàng)建出跟原有一樣的虛擬機(jī);
[0021] 所述啟動虛擬機(jī)是指libvirt命令里面的virshstart,可以啟動某一臺虛擬機(jī);
[0022] 所述ipmi是一個智能平臺管理服務(wù)器,可以檢測物理機(jī)健康特征,如溫度、電壓、 風(fēng)扇工作狀態(tài)、電源狀態(tài)等;
[0023] 所述NFS是一個網(wǎng)絡(luò)文件系統(tǒng),允許網(wǎng)絡(luò)中的計算機(jī)之間通過TCP/IP網(wǎng)絡(luò)共享資 源。
[0024] 通過物理機(jī)執(zhí)行l(wèi)ibvirt命令來實(shí)現(xiàn)虛擬機(jī)的冷迀移,存儲數(shù)據(jù)依賴于NFS網(wǎng)絡(luò) 文件系統(tǒng)保證數(shù)據(jù)完整和一致性。
[0025] 所述的調(diào)度規(guī)則指的是策略可以同時滿足多個,也可以有指定的規(guī)則限制虛擬 機(jī)。
[0026] 所述的重新生成一臺跟原來一樣的虛擬機(jī),指的是創(chuàng)建虛擬機(jī)生成出來的配置文 件跟原來的虛擬機(jī)配置一樣,并且鏡像文件和磁盤文件跟原來一樣,因而生成出來的虛擬 機(jī)跟故障前的虛擬機(jī)一模一樣,上面的業(yè)務(wù)數(shù)據(jù)也保持故障前的一致。
[0027] 本發(fā)明通過定時檢測來發(fā)送故障恢復(fù)指令,讓虛擬機(jī)在另一個節(jié)點(diǎn)服務(wù)器上啟 動?,F(xiàn)在云計算上千個節(jié)點(diǎn)的場景好多,節(jié)點(diǎn)失去連接也成為常事,為了防止業(yè)務(wù)中斷,我 們需要快速自動將故障節(jié)點(diǎn)上面的虛擬機(jī)進(jìn)行迀移,保證業(yè)務(wù)可以盡快恢復(fù),也能讓用戶 第一時間知道節(jié)點(diǎn)故障。檢測機(jī)制也能區(qū)分開始網(wǎng)絡(luò)阻塞還是節(jié)點(diǎn)故障,更加智能地執(zhí)行 故障恢復(fù),防止錯誤迀移虛擬機(jī)。讓集群上面的虛擬機(jī)可以更加穩(wěn)定地運(yùn)行,當(dāng)節(jié)點(diǎn)發(fā)生故 障的時候,將損失降到最低,保護(hù)了用戶的數(shù)據(jù)。
【附圖說明】
[0028] 下面結(jié)合附圖對本發(fā)明進(jìn)一步說明:
[0029] 圖1為本發(fā)明方法流程圖;
[0030] 圖2為本發(fā)明故障恢復(fù)模塊結(jié)構(gòu)框圖。
【具體實(shí)施方式】
[0031] 見圖1、2所示,本發(fā)明的方法包括如下步驟:
[0032] 步驟1 :部署一個NFS網(wǎng)絡(luò)文件系統(tǒng)環(huán)境,在NFS服務(wù)器上面建立一個掛載點(diǎn),把 鏡像放在NFS服務(wù)器的掛載點(diǎn)上,所有節(jié)點(diǎn)都掛載共享存儲,然后用該鏡像創(chuàng)建一臺虛擬 機(jī);
[0033] 步驟2 :啟動檢測節(jié)點(diǎn)定時器,檢測網(wǎng)絡(luò)和電源是否處于正常狀態(tài),否則需要向調(diào) 度器發(fā)送故障恢復(fù)指令;
[0034] 步驟3 :通過調(diào)度器根據(jù)預(yù)先設(shè)定的cpu負(fù)載策略等調(diào)度規(guī)選擇可用的節(jié)點(diǎn);
[0035] 步驟4 :根據(jù)創(chuàng)建虛擬機(jī)的時候生成的配置文件,重新生成一臺跟原來一樣的虛 擬機(jī);
[0036] 步驟5 :啟動創(chuàng)建完的虛擬機(jī);
[0037] 步驟6:結(jié)束。
[0038] 定時任務(wù)不斷檢測物理機(jī)狀態(tài),在滿足網(wǎng)絡(luò)不通和電源狀態(tài)異常時執(zhí)行故障恢 復(fù);以有效區(qū)分網(wǎng)絡(luò)阻塞還是物理機(jī)故障,防止錯誤判斷導(dǎo)致兩邊啟動相同的虛擬機(jī)、同時 讀寫同一個鏡像。
[0039] 前述cpu負(fù)載策略是指調(diào)度器會尋找cpu較低的物理機(jī)節(jié)點(diǎn)來分配,可以有效做 到負(fù)載均衡。配置文件是指創(chuàng)建虛擬機(jī)的時候就以xml形式記錄下這臺虛擬機(jī)配置屬性。 創(chuàng)建虛擬機(jī)是指libvirt命令里面的virshdefine,根據(jù)配置文件,通過NFS上面的鏡像創(chuàng) 建出跟原有一樣的虛擬機(jī)。啟動虛擬機(jī)是指libvirt命令里面的virshstart,可以啟動某 一臺虛擬機(jī)。ipmi是一個智能平臺管理服務(wù)器,可以檢測物理機(jī)健康特征,如溫度、電壓、風(fēng)