按照該順序執(zhí)行模型差異算法輸出的操作,部署、更新相應(yīng)硬件和軟件,最終獲得所需的虛擬環(huán)境。
【主權(quán)項(xiàng)】
1.一種云計(jì)算平臺(tái)中快速部署和更新虛擬環(huán)境系統(tǒng),其特征在于:包括依次連接的配置輸入模塊、配置解析模塊、模型差異計(jì)算模塊和操作執(zhí)行模塊, 所述配置輸入模塊接收用戶輸入的配置文件并傳入配置解析模塊; 所述配置解析模塊驗(yàn)證所接收配置文件的合法性和解析用戶描述,檢測(cè)不符合格式要求的描述并返回錯(cuò)誤信息,并解析合法文本內(nèi)容生成相應(yīng)模型; 所述模型差異計(jì)算模塊計(jì)算兩個(gè)模型之間的差異,輸出從模型A轉(zhuǎn)換到模型B所需的最少操作集合,模型A可以為空,用于計(jì)算首次部署虛擬環(huán)境時(shí)需要的操作集合;并且,模型差異計(jì)算模塊與配置解析模塊之間設(shè)置有模型存儲(chǔ)模塊,所述模型存儲(chǔ)模塊存儲(chǔ)配置解析模塊生成的模型,該模型用于更新時(shí)進(jìn)行的模型差異計(jì)算; 所述操作執(zhí)行模塊執(zhí)行模型差異計(jì)算模塊輸出的所有操作集合,本模塊包括有三個(gè)子模塊:操作排序模塊,以及分別與操作排序模塊連接的硬件操作執(zhí)行模塊和軟件操作執(zhí)行豐吳塊; 所述硬件操作執(zhí)行模塊的另一端分別連接有相互聯(lián)通的云計(jì)算平臺(tái)和硬件資源池模塊;所述軟件操作執(zhí)行模塊的另一端連接有自動(dòng)化軟件配置管理工具,自動(dòng)化軟件配置管理工具上還連接有軟件包注冊(cè)模塊。
2.根據(jù)權(quán)利要求1所述的云計(jì)算平臺(tái)中快速部署和更新虛擬環(huán)境系統(tǒng),其特征在于:所述云計(jì)算平臺(tái)和自動(dòng)化軟件配置管理工具上均設(shè)有編程接口; 所述硬件資源池模塊設(shè)定資源池容量且維護(hù)池中虛擬機(jī)資源; 所述操作執(zhí)行模塊在創(chuàng)建虛擬機(jī)時(shí)優(yōu)先使用硬件資源池中虛擬機(jī),刪除虛擬機(jī)時(shí)將虛擬機(jī)放入資源池而不是立即銷毀虛擬機(jī),除非當(dāng)前資源池容量已經(jīng)達(dá)到預(yù)先設(shè)定的最大值; 所述軟件包注冊(cè)模塊在自動(dòng)化軟件配置管理工具上注冊(cè)新的軟件包; 所述操作排序模塊根據(jù)操作對(duì)象在模型所表示的圖形上的拓?fù)湫蜻M(jìn)行反向排序形成工作流,硬件操作執(zhí)行模塊執(zhí)行對(duì)虛擬機(jī)的增加、刪除、修改操作,軟件操作執(zhí)行模塊于執(zhí)行對(duì)軟件的增加、刪除和修改操作。
3.—種根據(jù)權(quán)利要求1或2任意一項(xiàng)所述的云計(jì)算平臺(tái)中快速部署和更新虛擬環(huán)境系統(tǒng)的方法,其特征在于:包括以下步驟: (1)用戶按照虛擬環(huán)境配置描述規(guī)約描述所需虛擬環(huán)境,形成配置文件;其中,虛擬環(huán)境包括虛擬機(jī)硬件資源和軟件系統(tǒng),以及相互之間的關(guān)系; (2)解析上述所得的配置文件生成模型,模型由頂點(diǎn)和邊形成有向圖,頂點(diǎn)表示虛擬機(jī)和軟件包,邊表示頂點(diǎn)之間的關(guān)系,有向圖整體表示所需虛擬環(huán)境; (3)進(jìn)行模型差異計(jì)算得到部署或更新時(shí)需要執(zhí)行的操作集合,并對(duì)該操作集合進(jìn)行排序形成工作流,其中,所述操作集合中的操作包括對(duì)頂點(diǎn)和邊的增加、刪除和修改; (4)生成硬件資源池,在實(shí)際部署前創(chuàng)建虛擬機(jī)硬件資源;并使用該硬件資源池和云計(jì)算平臺(tái)提供的編程接口執(zhí)行硬件相關(guān)操作; (5)將部署和更新所涉及的軟件在自動(dòng)化軟件配置管理工具上注冊(cè)為軟件包,注冊(cè)后的軟件包中包括有安裝文件、安裝方法、卸載方法和配置修改方法,且該軟件包用于本次部署和后續(xù)更新以及其他部署和更新; (6)使用自動(dòng)化軟件配置管理工具提供的編程接口和已注冊(cè)的軟件包執(zhí)行軟件相關(guān)操作,對(duì)軟件進(jìn)行安裝、卸載和修改; (7)按照步驟(3)所得工作流順序,執(zhí)行所述硬件相關(guān)操作和所述軟件相關(guān)操作后獲得虛擬環(huán)境; (8)修改配置文件并再次提交可以重復(fù)上述過(guò)程更新已部署的虛擬環(huán)境。
4.根據(jù)權(quán)利要求3所述的云計(jì)算平臺(tái)中快速部署和更新虛擬環(huán)境系統(tǒng)的方法,其特征在于:所述步驟(I)中配置文件的描述規(guī)約包括: 使用kindOf關(guān)鍵詞聲明虛擬機(jī)類型和軟件包類型,在語(yǔ)句末尾使用with關(guān)鍵詞添加屬性描述具體配置; 使用hostOn關(guān)鍵詞聲明某軟件包安裝于某虛擬機(jī); 使用cbpengOn關(guān)鍵詞聲明軟件包與軟件包之間的依賴關(guān)系,在語(yǔ)句末尾使用at關(guān)鍵詞聲明所涉及的軟件包配置項(xiàng),未指定配置項(xiàng)的使用缺省配置項(xiàng)。
5.根據(jù)權(quán)利要求3所述的云計(jì)算平臺(tái)中快速部署和更新虛擬環(huán)境系統(tǒng)的方法,其特征在于:所述步驟(2)中,邊表示的關(guān)系包括軟件包與虛擬機(jī)之間的hostOn、軟件包與軟件包之間的dependOn關(guān)系; 所述各個(gè)頂點(diǎn)和邊的屬性集為:頂點(diǎn)的屬性表示虛擬機(jī)的名字、配置類型以及軟件包的名字、類型、版本和具體配置;邊的屬性表示僅用于軟件包與軟件包之間的cbpendOn關(guān)系以及該dependOn關(guān)系所涉及的具體配置,軟件包與虛擬機(jī)之間的hostOn關(guān)系不帶屬性。
6.根據(jù)權(quán)利要求3所述的云計(jì)算平臺(tái)中快速部署和更新虛擬環(huán)境系統(tǒng)的方法,其特征在于:所述步驟(3)中,進(jìn)行模型差異計(jì)算輸出從模型A轉(zhuǎn)換到模型B所需的操作集合,其具體計(jì)算過(guò)程包括: 設(shè)定四個(gè)集合,匹配集合M、新增集合N、刪除集合D和修改集合C,集合M表示完全一致不需要進(jìn)行操作,集合N表示需要?jiǎng)?chuàng)建新的虛擬機(jī)或安裝新的軟件包,集合D表示刪除虛擬機(jī)或軟件包,集合C表示修改軟件包的配置或?qū)⑻摂M機(jī)的類型進(jìn)行更改,且修改虛擬機(jī)的類型由刪除原虛擬機(jī)和創(chuàng)建新虛擬機(jī)組成; 對(duì)比模型A和模型B,利用頂點(diǎn)的名字匹配各頂點(diǎn),利用邊的起始點(diǎn)、終止點(diǎn)和屬性集匹配各邊,將所有匹配的對(duì)放入集合M ; 掃描所有模型A中不存在但在模型B中存在的頂點(diǎn)和邊,放入集合N,即這些頂點(diǎn)和邊需要新建; 掃描所有模型A中存在但在模型B中不存在的頂點(diǎn)和邊,放入集合D,即這些頂點(diǎn)和邊需要?jiǎng)h除; 掃描M集合中所有匹配的對(duì),將任何有屬性更改的對(duì)放入集合C并標(biāo)明修改之處,即這些頂點(diǎn)和邊的屬性需要修改; 掃描集合M和集合C中初始點(diǎn)是軟件包、終止點(diǎn)是虛擬機(jī)的邊,如果該虛擬機(jī)處于集合N、D或C中,即該虛擬機(jī)已經(jīng)不是原來(lái)的那臺(tái),則說(shuō)明軟件包從原來(lái)所處的虛擬機(jī)上移動(dòng)了新創(chuàng)建的虛擬機(jī)上,應(yīng)將該軟件包頂點(diǎn)和該邊放入集合N,表示在新創(chuàng)建的虛擬機(jī)上安裝該軟件包; 最后,為集合N中元素生成新建操作,為集合D中元素生成刪除操作,為集合C中元素生成修改操作,忽略集合M中元素。
7.根據(jù)權(quán)利要求3所述的云計(jì)算平臺(tái)中快速部署和更新虛擬環(huán)境系統(tǒng)的方法,其特征在于,所述步驟(3)中,所述工作流具體是指,將操作集合中的操作按照操作對(duì)象在模型有向圖上的拓?fù)湫蚣匆蕾囮P(guān)系進(jìn)行反向排序:從拓?fù)湫蜃畲?、依賴關(guān)系最深的對(duì)象開(kāi)始依次執(zhí)行到拓?fù)湫蜃钚?、依賴關(guān)系最淺的對(duì)象,保證操作對(duì)象的依賴對(duì)象會(huì)先于本操作對(duì)象被創(chuàng)建。
8.根據(jù)權(quán)利要求3所述的云計(jì)算平臺(tái)中快速部署和更新虛擬環(huán)境系統(tǒng)的方法,其特征在于:所述步驟(4)中,生成硬件資源池后設(shè)定資源池容量的最大值和最小值,調(diào)用云計(jì)算平臺(tái)提供的編程接口發(fā)出指令生成虛擬機(jī)直至達(dá)到最大容量,硬件資源池中的虛擬機(jī)在部署和更新時(shí)被優(yōu)先使用,其中,硬件資源池容量的最大值和最小值是一組鍵值對(duì),表示不同虛擬機(jī)配置類型所對(duì)應(yīng)的容量; 在執(zhí)行硬件相關(guān)操作時(shí),若需新建硬件資源,優(yōu)先使用硬件資源池中的資源,硬件資源池中資源無(wú)法滿足執(zhí)行操作時(shí),向云計(jì)算平臺(tái)提供的編程接口發(fā)出指令創(chuàng)建資源;若需刪除資源,優(yōu)先將資源放入硬件資源池中,除非硬件資源池中相應(yīng)類型資源數(shù)量以達(dá)最大值,這種情況下將銷毀該資源;使用過(guò)硬件資源池中的資源后,若資源池中相應(yīng)資源的數(shù)量少于規(guī)定的最小值,則會(huì)向云計(jì)算平臺(tái)提供的編程接口發(fā)出指令創(chuàng)建一定量資源滿足最小值。
【專利摘要】本發(fā)明公開(kāi)一種云計(jì)算平臺(tái)中快速部署和更新虛擬環(huán)境系統(tǒng)及其方法,用配置文件描述虛擬環(huán)境,將配置文件解析為模型,計(jì)算模型差異獲得操作集合,對(duì)操作集合排序后執(zhí)行,執(zhí)行過(guò)程中使用云計(jì)算平臺(tái)提供的編程接口和硬件資源池操作虛擬硬件,使用自動(dòng)化軟件配置管理工具提供的編程接口操作軟件,所有操作執(zhí)行完畢后獲得所需虛擬環(huán)境,修改配置文件再次提交可以重復(fù)上述過(guò)程更新已部署的虛擬環(huán)境。本發(fā)明從多個(gè)方面極大的簡(jiǎn)化用戶在部署虛擬環(huán)境時(shí)的工作,提供了對(duì)虛擬環(huán)境的更新能力,加速了部署和更新過(guò)程,提高了配置的復(fù)用能力,具有廣闊的應(yīng)用推廣前景。
【IPC分類】G06F9-445, G06F9-455
【公開(kāi)號(hào)】CN104699508
【申請(qǐng)?zhí)枴緾N201510133806
【發(fā)明人】曹春, 馬曉星, 余東亮
【申請(qǐng)人】南京大學(xué)
【公開(kāi)日】2015年6月10日
【申請(qǐng)日】2015年3月25日...