本發(fā)明涉及云主機(jī)管理領(lǐng)域,具體提供一種混合云環(huán)境下云主機(jī)重建方法。
背景技術(shù):
:“業(yè)務(wù)上云”已逐步成為云計(jì)算技術(shù)背景下各行各業(yè)的基本訴求。隨著業(yè)務(wù)的發(fā)展和應(yīng)用的升級(jí),云主機(jī)的重建功能也得到不同程度的應(yīng)用。而由于業(yè)務(wù)應(yīng)用本身的需要或者各大廠商的引導(dǎo),不同的業(yè)務(wù)可能要運(yùn)行在不同種類的IaaS環(huán)境(云環(huán)境)中,從而就會(huì)出現(xiàn)在一個(gè)云平臺(tái)中存在多少類型云環(huán)境并存的情況。但是目前主流的IaaS環(huán)境提供的原生重建功能存在接口不統(tǒng)一、不能保留預(yù)注入文件及元數(shù)據(jù)的不足。技術(shù)實(shí)現(xiàn)要素:本發(fā)明的技術(shù)任務(wù)是針對(duì)上述現(xiàn)有技術(shù)的不足,提供一種混合云環(huán)境下云主機(jī)重建方法。本發(fā)明的技術(shù)任務(wù)是按以下方式實(shí)現(xiàn)的:一種混合云環(huán)境下云主機(jī)重建方法,其特點(diǎn)是通過(guò)云主機(jī)元數(shù)據(jù)模型攜帶云主機(jī)的注入文件信息、重建鏡像信息以及元數(shù)據(jù)信息;在重建時(shí),首先對(duì)當(dāng)前云主機(jī)做快照,鎖定IP,然后刪除該云主機(jī);待刪除成功后,從云主機(jī)的元數(shù)據(jù)模型中讀取預(yù)先存放的注入文件、重建鏡像信息及元數(shù)據(jù)信息,使用被刪除云主機(jī)的IP、規(guī)格和指定的鏡像新建云主機(jī);待新的云主機(jī)創(chuàng)建成功時(shí),掛載原云主機(jī)掛載的云硬盤,并刪除之前創(chuàng)建的原云主機(jī)的快照;若新建云主機(jī)失敗,則讀取原云主機(jī)快照進(jìn)行恢復(fù)。作為優(yōu)選:針對(duì)不同種類的云環(huán)境,可以調(diào)用其對(duì)外提供的IP接口,在Driver層與云環(huán)境對(duì)接,發(fā)送統(tǒng)一的消息體,實(shí)現(xiàn)對(duì)混合云的支持。作為優(yōu)選:可在云環(huán)境之上建立元數(shù)據(jù)模型,所述云主機(jī)元數(shù)據(jù)模型與云主機(jī)是多對(duì)一的關(guān)系,一個(gè)云主機(jī)可以有至少一條元數(shù)據(jù),一條元數(shù)據(jù)是一個(gè)鍵值對(duì),可存放若干與云主機(jī)相關(guān)的信息。刪除云主機(jī)的步驟優(yōu)選為:a)新增一條元數(shù)據(jù),標(biāo)識(shí)該云主機(jī)是一個(gè)待重建的云主機(jī);b)新增兩條元數(shù)據(jù),記錄重建的參數(shù),分別為鏡像信息、密碼信息;c)對(duì)原云主機(jī)創(chuàng)建快照,并將快照的ID記錄到云主機(jī)的元數(shù)據(jù)中;d)通過(guò)監(jiān)聽(tīng)消息隊(duì)列中的云環(huán)境發(fā)出的快照創(chuàng)建成功事件,得知快照創(chuàng)建成功;若快照創(chuàng)建失敗,則終止算法;e)鎖定原云主機(jī)的IP地址;f)調(diào)用云主機(jī)刪除接口刪除原云主機(jī);g)通過(guò)監(jiān)聽(tīng)消息隊(duì)列中的云環(huán)境發(fā)出的云主機(jī)刪除成功事件,得知原云主機(jī)刪除成功;若刪除失敗,則刪除快照,終止算法。新的云主機(jī)的創(chuàng)建步驟優(yōu)選為:a)接收到云主機(jī)刪除成功消息,得知該云主機(jī)需要重建;b)查詢待重建云主機(jī)的元信息,包括原云主機(jī)的網(wǎng)卡信息、規(guī)格信息、注入文件信息、元數(shù)據(jù)信息;c)通過(guò)步驟b查詢的信息結(jié)合重建時(shí)選擇的鏡像及密碼信息,組裝新的云主機(jī)對(duì)象,調(diào)用云主機(jī)創(chuàng)建接口;d)通過(guò)監(jiān)聽(tīng)消息隊(duì)列中的云環(huán)境發(fā)出的云主機(jī)創(chuàng)建成功事件,查詢?cè)浦鳈C(jī)的云硬盤綁定信息,將云硬盤掛載到新建的云主機(jī)上:e)若創(chuàng)建成功,將云主機(jī)重建標(biāo)識(shí)的元數(shù)據(jù)刪除;f)通過(guò)監(jiān)聽(tīng)消息隊(duì)列中的云環(huán)境發(fā)出的云主機(jī)創(chuàng)建失敗事件,調(diào)用通過(guò)快照創(chuàng)建云主機(jī)接口,恢復(fù)原云主機(jī)。與現(xiàn)有技術(shù)相比,本發(fā)明的混合云環(huán)境下云主機(jī)重建方法具有以下突出的有益效果:(一)通過(guò)云主機(jī)的元數(shù)據(jù)模型,記錄云主機(jī)注入文件信息,能夠在重建的云主機(jī)中注入相同的文件,解決云環(huán)境提供的重建接口不能注入文件的問(wèn)題,減少因重建對(duì)業(yè)務(wù)數(shù)據(jù)帶來(lái)的影響;(二)通過(guò)消息處理機(jī)制,能夠解決云環(huán)境的異步交互問(wèn)題,更準(zhǔn)確的完成重建的算法邏輯;(三)通過(guò)云主機(jī)的快照,能夠在重建失敗時(shí),恢復(fù)原云主機(jī);(四)在云主機(jī)刪除之前,對(duì)其IP進(jìn)行鎖定,避免出現(xiàn)在云主機(jī)釋放IP的那一刻被其他線程的云主機(jī)搶用IP的情況;(五)基于接口的Driver實(shí)現(xiàn)機(jī)制,定義統(tǒng)一的接口和消息接收方案,滿足對(duì)接不同云環(huán)境的需求;(六)通過(guò)預(yù)先建立的云主機(jī)元模型,將云主機(jī)所注入的文件及元數(shù)據(jù)信息記錄下來(lái)。在重建云主機(jī)時(shí),先鎖定云主機(jī)的IP,接著刪除原云主機(jī),待刪除成功且IP釋放后,按照指定的信息創(chuàng)建新的云主機(jī),并注入原云主機(jī)所注入文件和元數(shù)據(jù)信息。待新的云主機(jī)創(chuàng)建成功后,掛載原云主機(jī)的數(shù)據(jù)盤。這樣就能夠更大限度的重現(xiàn)原云主機(jī)中的數(shù)據(jù)信息。附圖說(shuō)明圖1是本發(fā)明混合云環(huán)境下云主機(jī)重建方法流程示意圖。具體實(shí)施方式下面將結(jié)合說(shuō)明書(shū)附圖和實(shí)施例,對(duì)本發(fā)明的混合云環(huán)境下云主機(jī)重建方法作進(jìn)一步詳細(xì)說(shuō)明。如附圖1所示,本發(fā)明的混合云環(huán)境下云主機(jī)重建方法包括以下步驟:(一)、建立云主機(jī)元數(shù)據(jù)模型云主機(jī)元數(shù)據(jù)模型與云主機(jī)模型是多對(duì)一的關(guān)系,一個(gè)云主機(jī)可以有多條元數(shù)據(jù),一條元數(shù)據(jù)是一個(gè)鍵值對(duì),可存放任意與云主機(jī)相關(guān)的信息。在本方法中,將云主機(jī)的注入文件的全路徑作為key,文件的內(nèi)容作為value,存放到云主機(jī)的元數(shù)據(jù)信息中。屬性描述vm_id云主機(jī)ID元數(shù)據(jù)鍵元數(shù)據(jù)的鍵標(biāo)識(shí)元數(shù)據(jù)值元數(shù)據(jù)的值內(nèi)容(二)、原云主機(jī)刪除機(jī)制重建云主機(jī)首先是要將原云主機(jī)刪除,因?yàn)樾碌脑浦鳈C(jī)需要使用原云主機(jī)IP,IP被原云主機(jī)占用,新的云主機(jī)就沒(méi)有辦法創(chuàng)建。其重點(diǎn)在于:標(biāo)識(shí)該云主機(jī)是一個(gè)待重建的云主機(jī)、標(biāo)識(shí)該云主機(jī)重建失敗后能夠恢復(fù)的快照信息。具體算法步驟描述如下:a)新增一條元數(shù)據(jù),標(biāo)識(shí)該云主機(jī)是一個(gè)待重建的云主機(jī);元數(shù)據(jù)鍵is_rebuild_server元數(shù)據(jù)值trueb)新增兩條元數(shù)據(jù),記錄重建的參數(shù),包括鏡像信息、密碼信息;c)對(duì)原云主機(jī)創(chuàng)建快照,并將快照的ID記錄到云主機(jī)的元數(shù)據(jù)中,新增一條元數(shù)據(jù)為:d)通過(guò)監(jiān)聽(tīng)消息隊(duì)列中的云環(huán)境發(fā)出的快照創(chuàng)建成功事件,得知快照創(chuàng)建成功。若快照創(chuàng)建失敗,則終止算法;e)鎖定原云主機(jī)的IP地址;f)調(diào)用云主機(jī)刪除接口刪除原云主機(jī);g)通過(guò)監(jiān)聽(tīng)消息隊(duì)列中的云環(huán)境發(fā)出的云主機(jī)刪除成功事件,得知原云主機(jī)刪除成功。若刪除失敗,則刪除快照,終止算法。(三)、新云主機(jī)的創(chuàng)建機(jī)制接收到原云主機(jī)刪除成功時(shí)間后,進(jìn)入新云主機(jī)的創(chuàng)建算法邏輯。新云主機(jī)的創(chuàng)建的重點(diǎn)在于:保留原主機(jī)的IP信息、保留原主機(jī)的注入文件信息、保留原主機(jī)的元數(shù)據(jù)信息、保留原云主機(jī)的掛載云硬盤。具體算法步驟描述如下:a)接收到云主機(jī)刪除成功消息,并通過(guò)key為“is_rebuild_server”的元數(shù)據(jù)值為“true”得知該云主機(jī)需要重建;b)查詢待重建云主機(jī)的元信息,包括原云主機(jī)的網(wǎng)卡信息、規(guī)格信息、注入文件信息、元數(shù)據(jù)信息;c)通過(guò)步驟2查詢的信息結(jié)合重建時(shí)選擇的鏡像及密碼信息,組裝新的云主機(jī)對(duì)象,調(diào)用云主機(jī)創(chuàng)建接口;d)通過(guò)監(jiān)聽(tīng)消息隊(duì)列中的云環(huán)境發(fā)出的云主機(jī)創(chuàng)建成功事件。查詢?cè)浦鳈C(jī)的云硬盤綁定信息,見(jiàn)云硬盤掛載到新建的云主機(jī)上。其重點(diǎn)在于:若創(chuàng)建成功,要將云主機(jī)重建標(biāo)識(shí),即key為“is_rebuild_server”的元數(shù)據(jù)刪除。否則以后若主動(dòng)刪除該云主機(jī)時(shí),會(huì)被認(rèn)為是重建云主機(jī);e)通過(guò)監(jiān)聽(tīng)消息隊(duì)列中的云環(huán)境發(fā)出的云主機(jī)創(chuàng)建失敗事件,調(diào)用通過(guò)快照創(chuàng)建云主機(jī)接口,恢復(fù)原云主機(jī)。當(dāng)前第1頁(yè)1 2 3