一種應(yīng)用級(jí)虛擬化高可靠性方法及裝置的制造方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及網(wǎng)絡(luò)通信領(lǐng)域,尤其涉及一種應(yīng)用級(jí)虛擬化高可靠性方法及裝置。
【背景技術(shù)】
[0002]虛擬化(Virtualizat1n)技術(shù)最早出現(xiàn)在20世紀(jì)60年代的IBM大型機(jī)系統(tǒng)。隨著近年多核系統(tǒng),集群,網(wǎng)絡(luò)甚至云計(jì)算的廣泛部署,虛擬化技術(shù)在商業(yè)應(yīng)用上的優(yōu)勢(shì)日益體現(xiàn),不僅僅降低了 IT成本,而且還增強(qiáng)了系統(tǒng)安全性和可靠性,虛擬化的概念也逐漸深入到人們?nèi)粘9ぷ髋c生活中。
[0003]目前越來(lái)越多的企業(yè)使用服務(wù)器虛擬化來(lái)提供業(yè)務(wù),比如電子郵件系統(tǒng),數(shù)據(jù)庫(kù)系統(tǒng)和web應(yīng)用服務(wù)器,通過(guò)虛擬化技術(shù)部署IT數(shù)據(jù)中心,可以最大化的利用服務(wù)器資源,節(jié)約IT建設(shè)成本。
[0004]在常規(guī)的IT環(huán)境中,一臺(tái)由于硬件損壞或者氣態(tài)原因崩潰的服務(wù)器能夠中斷一個(gè)重要的應(yīng)用程序并且影響到與這個(gè)應(yīng)用程序相關(guān)的其他操作,相比之下,在一個(gè)虛擬化環(huán)境中,每一臺(tái)服務(wù)器都將支持5個(gè)至10個(gè)重要的應(yīng)用程序。在常規(guī)環(huán)境中的一臺(tái)服務(wù)器的崩潰可以中斷一個(gè)應(yīng)用,這僅僅是一個(gè)問(wèn)題。但是,在虛擬環(huán)境中一臺(tái)服務(wù)器崩潰可能中斷這個(gè)客戶的數(shù)據(jù)庫(kù)系統(tǒng),電子郵件系統(tǒng),文件服務(wù)器,電子商務(wù)系統(tǒng)和財(cái)務(wù)應(yīng)用系統(tǒng)等,這是一個(gè)災(zāi)難。
[0005]所以在數(shù)據(jù)中心向虛擬化發(fā)展的過(guò)程中,這種情況一旦發(fā)生將直接對(duì)企業(yè)的生產(chǎn)及利潤(rùn)產(chǎn)生影響,服務(wù)器虛擬化可靠性技術(shù)對(duì)企業(yè)在當(dāng)前的商業(yè)環(huán)境中保持競(jìng)爭(zhēng)力顯得非常重要。服務(wù)器虛擬化可靠性技術(shù)的可用性是指系統(tǒng)或者組件可以持續(xù)服務(wù)的時(shí)間,可用性使用一年服務(wù)可用的時(shí)間的百分比來(lái)衡量,目前被廣泛使用的高可靠性指標(biāo)是99.999%。所以說(shuō),高可靠性已經(jīng)成為了數(shù)據(jù)中心實(shí)施,部署過(guò)程中越來(lái)越重要的功能。
[0006]現(xiàn)階段針對(duì)虛擬化的高可靠性(High Availability, HA),有很多解決方案,比如雙機(jī)熱備方式,負(fù)載均攤方式和集群方式,雙機(jī)熱備(雙機(jī)容錯(cuò))就是對(duì)于重要的服務(wù),使用兩臺(tái)服務(wù)器,互相備份,共同執(zhí)行同一服務(wù),當(dāng)一臺(tái)服務(wù)器出現(xiàn)故障時(shí),可以由另一臺(tái)服務(wù)器承擔(dān)服務(wù)任務(wù),從而在不需要人工干預(yù)的情況下,自動(dòng)保證系統(tǒng)能持續(xù)提供服務(wù)。
[0007]雙機(jī)熱備的缺點(diǎn):
[0008]可靠性相對(duì)較差,當(dāng)有服務(wù)出現(xiàn)故障時(shí),進(jìn)行虛擬機(jī)的遷移兩服務(wù)器間的數(shù)據(jù)實(shí)時(shí)復(fù)制是一個(gè)比較脆弱的環(huán)節(jié),由于其復(fù)制是在文件和磁盤層進(jìn)行的,當(dāng)進(jìn)行虛擬機(jī)遷移過(guò)程中復(fù)制是否成功會(huì)影響數(shù)據(jù)庫(kù)事務(wù)操作,因此容易出現(xiàn)數(shù)據(jù)不完整的情況。
[0009]集群的缺點(diǎn):
[0010]1.搭建集群環(huán)境復(fù)雜,涉及多個(gè)方面,影響的系統(tǒng)的穩(wěn)定性。
[0011]2.集群偵測(cè)確認(rèn)故障、當(dāng)有服務(wù)出現(xiàn)故障時(shí),進(jìn)行虛擬機(jī)的遷移,接管共享的數(shù)據(jù)區(qū)在切換的過(guò)程中需要花費(fèi)一定的時(shí)間,根據(jù)應(yīng)用的大小不同切換的時(shí)間也會(huì)不同,越大的應(yīng)用切換的時(shí)間越長(zhǎng)。
【發(fā)明內(nèi)容】
[0012]有鑒于此,本發(fā)明提供一種應(yīng)用級(jí)虛擬化高可靠性方法,解決在虛擬化環(huán)境下,針對(duì)虛擬機(jī)中應(yīng)用服務(wù)實(shí)現(xiàn)高可靠性,保障業(yè)務(wù)由于非物理故障而引起停止或暫停時(shí)實(shí)時(shí)進(jìn)行高可靠處理以使業(yè)務(wù)不間斷運(yùn)行。
[0013]具體來(lái)說(shuō),本發(fā)明提供一種應(yīng)用級(jí)虛擬化高可靠性方法,所述方法包括:
[0014]a)獲取虛擬機(jī)操作系統(tǒng)所有服務(wù),將操作系統(tǒng)所有服務(wù)的服務(wù)名稱與本地?cái)?shù)據(jù)庫(kù)中保存的需監(jiān)控服務(wù)的服務(wù)名稱進(jìn)行比較,過(guò)濾出其中需監(jiān)控服務(wù),調(diào)用操作系統(tǒng)API接口,獲取這些需監(jiān)控服務(wù)的服務(wù)狀態(tài)信息;
[0015]b)采集虛擬機(jī)操作系統(tǒng)中需監(jiān)控服務(wù)的服務(wù)狀態(tài)信息,并過(guò)濾出其中服務(wù)狀態(tài)異常的需監(jiān)控服務(wù)的服務(wù)狀態(tài)信息;
[0016]c)對(duì)服務(wù)狀態(tài)異常的需監(jiān)控服務(wù)的服務(wù)狀態(tài)信息進(jìn)行分析,產(chǎn)生相對(duì)于每個(gè)異常服務(wù)狀態(tài)對(duì)應(yīng)的處理指令,所述處理指令包括若干參數(shù);
[0017]d)查找處理指令名稱對(duì)應(yīng)API接口,調(diào)用該API接口,傳入該處理指令的參數(shù),完成異常狀態(tài)的恢復(fù)操作。
[0018]進(jìn)一步地,所述服務(wù)狀態(tài)信息包括已停止?fàn)顟B(tài)信息、啟動(dòng)中狀態(tài)信息、運(yùn)行中狀態(tài)信息、繼續(xù)中狀態(tài)信息、暫停中狀態(tài)信息及已暫停狀態(tài)信息。
[0019]進(jìn)一步地,所述服務(wù)狀態(tài)異常的需監(jiān)控服務(wù)的服務(wù)狀態(tài)信息包括已暫停狀態(tài)信息和已停止?fàn)顟B(tài)信息。
[0020]進(jìn)一步地,所述處理指令包括恢復(fù)類指令和重啟類指令;其中恢復(fù)類指令包括關(guān)閉服務(wù)指令和啟動(dòng)服務(wù)指令;重啟類指令包括關(guān)閉服務(wù)指令和重啟服務(wù)指令。
[0021]進(jìn)一步地,所述處理指令參數(shù)包括操作服務(wù)的權(quán)限、服務(wù)名稱以及啟動(dòng)服務(wù)的權(quán)限。
[0022]本發(fā)明同時(shí)提供一種應(yīng)用級(jí)虛擬化高可靠性裝置,該裝置包括:
[0023]服務(wù)過(guò)濾單元:用于獲取虛擬機(jī)操作系統(tǒng)所有服務(wù),將操作系統(tǒng)所有服務(wù)的服務(wù)名稱與本地?cái)?shù)據(jù)庫(kù)中保存的需監(jiān)控服務(wù)的服務(wù)名稱進(jìn)行比較,過(guò)濾出其中需監(jiān)控服務(wù),調(diào)用操作系統(tǒng)API接口,獲取這些需監(jiān)控服務(wù)的服務(wù)狀態(tài)信息;
[0024]服務(wù)狀態(tài)信息采集單元:用于采集虛擬機(jī)操作系統(tǒng)中需監(jiān)控服務(wù)的服務(wù)狀態(tài)信息,并過(guò)濾出其中服務(wù)狀態(tài)異常的需監(jiān)控服務(wù)的服務(wù)狀態(tài)信息;
[0025]服務(wù)狀態(tài)信息分析單元:用于對(duì)服務(wù)狀態(tài)異常的需監(jiān)控服務(wù)的服務(wù)狀態(tài)信息進(jìn)行分析,產(chǎn)生相對(duì)于每個(gè)異常服務(wù)狀態(tài)對(duì)應(yīng)的處理指令,所述處理指令包括若干參數(shù);
[0026]服務(wù)狀態(tài)信息處理單元:用于查找處理指令名稱對(duì)應(yīng)API,調(diào)用該API接口,傳入該處理指令的參數(shù),完成異常狀態(tài)的恢復(fù)操作。
[0027]進(jìn)一步地,所述服務(wù)狀態(tài)信息包括已停止?fàn)顟B(tài)信息、啟動(dòng)中狀態(tài)信息、運(yùn)行中狀態(tài)信息、繼續(xù)中狀態(tài)信息、暫停中狀態(tài)信息及已暫停狀態(tài)信息。
[0028]進(jìn)一步地,所述服務(wù)狀態(tài)異常的需監(jiān)控服務(wù)的服務(wù)狀態(tài)信息包括已暫停狀態(tài)信息和已停止?fàn)顟B(tài)信息。
[0029]進(jìn)一步地,所述處理指令包括恢復(fù)類指令和重啟類指令;其中恢復(fù)類指令包括關(guān)閉服務(wù)指令和啟動(dòng)服務(wù)指令;重啟類指令包括關(guān)閉服務(wù)指令和重啟服務(wù)指令。
[0030]進(jìn)一步地,所述處理指令參數(shù)包括操作服務(wù)的權(quán)限、服務(wù)名稱以及啟動(dòng)服務(wù)的權(quán)限。
[0031]由此可見(jiàn),本發(fā)明提供的一種應(yīng)用級(jí)虛擬化高可靠性方法及裝置,通過(guò)對(duì)應(yīng)用級(jí)需監(jiān)控服務(wù)的服務(wù)狀態(tài)信息進(jìn)行分析及對(duì)服務(wù)狀態(tài)異常的服務(wù)進(jìn)行及時(shí)的實(shí)現(xiàn)重啟和啟動(dòng)服務(wù)處理,實(shí)現(xiàn)了虛擬化環(huán)境中基于服務(wù)應(yīng)用級(jí)別的高可靠性,彌補(bǔ)了傳統(tǒng)方式下無(wú)法控制應(yīng)用服務(wù)的不足,避免了現(xiàn)有技術(shù)中當(dāng)服務(wù)出現(xiàn)故障進(jìn)行虛擬機(jī)遷移時(shí)雙機(jī)熱備容易出現(xiàn)數(shù)據(jù)不完整及集群方式復(fù)雜的環(huán)境搭建不穩(wěn)定性及虛擬機(jī)服務(wù)切換過(guò)程中由于應(yīng)用服務(wù)大,切換時(shí)間過(guò)長(zhǎng)的問(wèn)題,本發(fā)明實(shí)現(xiàn)從應(yīng)用服務(wù)級(jí)別由虛擬機(jī)內(nèi)部實(shí)施高可靠保障。
【附圖說(shuō)明】
[0032]圖1是一種應(yīng)用級(jí)虛擬化高可靠性方法流程圖;
[0033]圖2是一種應(yīng)用級(jí)虛擬化高可靠性裝置邏輯結(jié)構(gòu)圖。
【具體實(shí)施方式】
[0034]為了解決這個(gè)問(wèn)題,本發(fā)明實(shí)施例提供了一種應(yīng)用級(jí)虛擬化高可靠性方法。請(qǐng)參考圖1,在優(yōu)選的實(shí)施方式中,本發(fā)明方法具體如下:
[0035]a)獲取虛擬機(jī)操作系統(tǒng)所有服務(wù),將操作系統(tǒng)所有服務(wù)的服務(wù)名稱與本地?cái)?shù)據(jù)庫(kù)中保存的需監(jiān)控服務(wù)的服務(wù)名稱進(jìn)行比較,過(guò)濾出其中需監(jiān)控服務(wù),調(diào)用操作系統(tǒng)API接口,獲取這些需監(jiān)控服務(wù)的服務(wù)狀態(tài)信息;
[0036]每個(gè)服務(wù)的服務(wù)狀態(tài)信息包括已停止?fàn)顟B(tài)信息、啟動(dòng)中狀態(tài)信息、運(yùn)行中狀態(tài)信息、繼續(xù)中狀態(tài)信息、暫停中狀態(tài)信息及已暫停狀態(tài)信息。
[0037]如虛擬機(jī)操作系統(tǒng)中運(yùn)行的服務(wù)有IIS (Internet Informat1n Services,互聯(lián)網(wǎng)信息服務(wù))、oracle數(shù)據(jù)庫(kù)以及mySQL數(shù)據(jù)庫(kù)等服務(wù);則此時(shí)可調(diào)用操作系統(tǒng)(windows,Iinux 等)公開(kāi) API 接口(Applicat1n Programming Interface,應(yīng)用程序編程接口)。獲取所有服務(wù)列表跟本地?cái)?shù)據(jù)庫(kù)中保存的需監(jiān)控服務(wù)的列表進(jìn)行比較,判斷出服務(wù)名稱相同的服務(wù)為需監(jiān)控服務(wù),如IIS服務(wù)與本地保存的需監(jiān)控服務(wù)中的服務(wù)名稱相同,則獲取需監(jiān)控服務(wù)Iis服務(wù)的服務(wù)名稱W3SVC以及該服務(wù)的服務(wù)狀態(tài)信息。
[0038]在具體實(shí)現(xiàn)上,不同的操作系統(tǒng)會(huì)有不同的API接口。以Windows系統(tǒng)為例,如在windows系統(tǒng)下調(diào)用OpenSCManager接口獲取服務(wù)管理器控制句柄,調(diào)用EnumServicesStatus接口列舉所有服務(wù)信息,其中包括服務(wù)的名稱、服務(wù)狀態(tài)信息等,調(diào)用OpenServiceO接口打開(kāi)服務(wù)。以Linux系統(tǒng)為例,在Linux系統(tǒng)下獲取所有服務(wù)chkconfig—list,調(diào)用service服務(wù)名稱status查看服務(wù)的名稱,調(diào)用service服務(wù)名(start restart)實(shí)現(xiàn)服務(wù)的啟動(dòng)與重啟。
[0039]b)采集虛擬機(jī)操作系統(tǒng)中需監(jiān)控服務(wù)的服務(wù)狀態(tài)信息,并過(guò)濾出其中服務(wù)狀態(tài)異常的需監(jiān)控服務(wù)的服務(wù)狀態(tài)信息;
[0040]服務(wù)狀態(tài)異常的需監(jiān)控服務(wù)的服務(wù)狀態(tài)信息通常包括已暫停狀態(tài)信息和已停止?fàn)顟B(tài)信息。以IIS服務(wù)為例,若該服務(wù)是需監(jiān)控服務(wù),則采集IIS服務(wù)的服務(wù)狀態(tài)信息,判斷獲取到的Iis服務(wù)的服務(wù)狀態(tài)信息如為已停止?fàn)顟B(tài)信息或已暫停狀態(tài)信息,則說(shuō)明該IIS服務(wù)狀態(tài)為服務(wù)狀態(tài)異常的服務(wù)狀態(tài)信息,需對(duì)該IIS服務(wù)進(jìn)行相應(yīng)處理。
[0041]c)對(duì)服務(wù)狀態(tài)異常的需監(jiān)控服務(wù)的服務(wù)狀態(tài)信息進(jìn)行分析