云計算平臺中快速部署和更新虛擬環(huán)境系統(tǒng)及其方法
【技術領域】
[0001]本發(fā)明涉及云計算技術,具體涉及云計算平臺中快速部署和更新虛擬環(huán)境系統(tǒng)及其方法。
【背景技術】
[0002]隨著云計算的不斷普及,用戶對云計算產品的需求越來越豐富,從單一地獲取虛擬硬件設施,即虛擬機、虛擬存儲、虛擬網絡,到獲取在虛擬硬件上配置了完整軟件系統(tǒng)的虛擬環(huán)境。虛擬環(huán)境由虛擬硬件以及在虛擬硬件上安裝的軟件系統(tǒng)組成,軟件系統(tǒng)則包含了一系列互相關聯(lián)的軟件包。用戶可以使用虛擬環(huán)境承載個人網站,建立Hadoop集群進行科學實驗,對開發(fā)中的分布式系統(tǒng)進行測試。
[0003]虛擬環(huán)境可以按需供給,用戶不需要時,可隨時銷毀停止付費,而且擴容方便,與傳統(tǒng)的實體環(huán)境相比有很大優(yōu)勢。然而虛擬環(huán)境的部署和更新仍然很復雜,用戶需具備一定的專業(yè)知識來處理軟硬件問題。當用戶需要多次部署相同環(huán)境時,每次都要重復相同的操作。
[0004]但是上述現(xiàn)有技術仍然存在著以下缺陷:配置虛擬環(huán)境的方法復雜,如配置文件格式復雜、軟件包配置復雜以及用戶需要手工定義工作流描述部署過程等;軟件包配置的重用性差,即在一種虛擬環(huán)境配置中起作用的軟件包配置定義在另一個虛擬環(huán)境中需要重新定義;部署之后的環(huán)境沒有更新能力,用戶需要手工操作虛擬資源和軟件進行更新;部署速度慢,主要是由于虛擬硬件尤其是虛擬機的生成需要一定時間。
【發(fā)明內容】
[0005]發(fā)明目的:本發(fā)明的目的在于解決現(xiàn)有技術中存在的不足,提供一種云計算平臺中快速部署和更新虛擬環(huán)境系統(tǒng)及其方法,本發(fā)明使用簡潔的配置描述格式、方便的軟件包注冊機制、以及操作排序機制和硬件資源池機制,使得在云計算平臺中部署虛擬環(huán)境更加快捷高效,本發(fā)明中的模型差異算法為虛擬環(huán)境提供了更新能力,滿足了用戶更改、升級虛擬環(huán)境的需求。
[0006]技術方案:本發(fā)明所述的一種云計算平臺中快速部署和更新虛擬環(huán)境系統(tǒng),包括依次連接的配置輸入模塊、配置解析模塊、模型差異計算模塊和操作執(zhí)行模塊,
[0007]所述配置輸入模塊接收用戶輸入的配置文件并傳入配置解析模塊;
[0008]所述配置解析模塊驗證所接收配置文件的合法性和解析用戶描述,檢測不符合格式要求的描述并返回錯誤信息,并解析合法文本內容生成相應模型;
[0009]所述模型差異計算模塊計算兩個模型之間的差異,輸出從模型A轉換到模型B所需的最少操作集合,模型A可以為空,用于計算首次部署虛擬環(huán)境時需要的操作集合;并且,模型差異計算模塊與配置解析模塊之間設置有模型存儲模塊,所述模型存儲模塊存儲配置解析模塊生成的模型,該模型用于更新時進行的模型差異計算;
[0010]所述操作執(zhí)行模塊執(zhí)行模型差異計算模塊輸出的所有操作集合,本模塊包括有三個子模塊:操作排序模塊,以及分別與操作排序模塊連接的硬件操作執(zhí)行模塊和軟件操作執(zhí)行模塊;
[0011]所述硬件操作執(zhí)行模塊的另一端分別連接有相互聯(lián)通的云計算平臺和硬件資源池模塊;所述軟件操作執(zhí)行模塊的另一端連接有自動化軟件配置管理工具,自動化軟件配置管理工具上還連接有軟件包注冊模塊。
[0012]進一步的,所述云計算平臺和自動化軟件配置管理工具上均設有編程接口 ;
[0013]所述硬件資源池模塊用于設定資源池容量,維護池中虛擬機資源,在設定硬件資源池最大和最小容量后該模塊調用云計算平臺提供的編程接口發(fā)出指令生成虛擬機直至達到最大容量,由于虛擬機有不同配置類型,容量是一組鍵值對,例如(Typel: [10,20], Type2: [10,30],Type3: [5,15]),該鍵值對表示Typel類型的虛擬機的數(shù)量保持在10到20之間,Type2類型的虛擬機的數(shù)量保持在10到30之間,Type3類型的虛擬保持在5到15之間。
[0014]所述操作執(zhí)行模塊在創(chuàng)建虛擬機時優(yōu)先使用硬件資源池中虛擬機,刪除虛擬機時將虛擬機放入資源池而不是立即銷毀虛擬機,除非當前資源池容量已經達到預先設定的最大值;
[0015]所述軟件包注冊模塊在自動化軟件配置管理工具上注冊新的軟件包;
[0016]所述操作排序模塊根據(jù)操作對象在模型所表示的圖形上的拓撲序進行反向排序形成工作流,硬件操作執(zhí)行模塊執(zhí)行對虛擬機的增加、刪除、修改操作,軟件操作執(zhí)行模塊于執(zhí)行對軟件的增加、刪除和修改操作。
[0017]本發(fā)明還公開了一種云計算平臺中快速部署和更新虛擬環(huán)境系統(tǒng)的方法,包括以下步驟:
[0018](I)用戶按照虛擬環(huán)境配置描述規(guī)約描述所需虛擬環(huán)境,形成配置文件;其中,虛擬環(huán)境包括虛擬機硬件資源和軟件系統(tǒng),以及相互之間的關系,并且該配置文件只描述期望得到的虛擬環(huán)境的各組成部分和關聯(lián)關系;
[0019](2)解析上述所得的配置文件生成模型,模型由頂點和邊形成有向圖,頂點表示虛擬機和軟件包,邊表示頂點之間的關系,有向圖整體表示所需虛擬環(huán)境;
[0020](3)進行模型差異計算得到部署或更新時需要執(zhí)行的操作集合,并對該操作集合進行排序形成工作流,其中,所述操作集合中的操作包括對頂點和邊的增加、刪除和修改;在首次部署時使用空模型作為舊模型,后續(xù)更新時使用前一次配置作為舊模型,用戶最新提交的配置文件解析成的模型是新模型;
[0021](4)生成硬件資源池,在實際部署前創(chuàng)建虛擬機硬件資源,減少部署和更新時等待創(chuàng)建虛擬硬件所需的時間;并使用該硬件資源池和云計算平臺提供的編程接口執(zhí)行硬件相關操作;
[0022](5)將部署和更新所涉及的軟件在自動化軟件配置管理工具上注冊為軟件包,注冊后的軟件包中包括有安裝文件、安裝方法、卸載方法和配置修改方法,且該軟件包用于本次部署和后續(xù)更新以及其他部署和更新;
[0023](6)使用自動化軟件配置管理工具提供的編程接口和已注冊的軟件包執(zhí)行軟件相關操作,對軟件進行安裝、卸載和修改;
[0024](7)按照步驟(3)所得工作流順序,執(zhí)行所述硬件相關操作和所述軟件相關操作后獲得虛擬環(huán)境;
[0025](8)修改配置文件并再次提交可以重復上述過程更新已部署的虛擬環(huán)境。
[0026]進一步的,所述步驟(I)中配置文件的描述規(guī)約包括:
[0027]使用kindOf關鍵詞聲明虛擬機類型和軟件包類型,在語句末尾使用with關鍵詞添加屬性描述具體配置;
[0028]使用hostOn關鍵詞聲明某軟件包安裝于某虛擬機;
[0029]使用cbpengOn關鍵詞聲明軟件包與軟件包之間的依賴關系,在語句末尾使用at關鍵詞聲明所涉及的軟件包配置項,未指定配置項的使用缺省配置項。
[0030]進一步的,所述步驟(2)中,邊表示的關系包括軟件包與虛擬機之間的hostOn、軟件包與軟件包之間的dependOn關系;
[0031]所述各個頂點和邊的屬性集為:頂點的屬性表示虛擬機的名字、配置類型以及軟件包的名字、類型、版本和具體配置;邊的屬性表示僅用于軟件包與軟件包之間的dependOn關系以及該dependOn關系所涉及的具體配置,軟件包與虛擬機之間的hostOn關系不帶屬性。
[0032]進一步的,所述步驟(3)中,進行模型差異計算輸出從模型A轉換到模型B所需的操作集合,其具體計算過程包括:
[0033]設定四個集合,匹配集合M、新增集合N、刪除集合D和修改集合C,集合M表示完全一致不需要進行操作,集合N表示需要創(chuàng)建新的虛擬機或安裝新的軟件包,集合D表示刪除虛擬機或軟件包,集合C表示修改軟件包的配置或將虛擬機的類型進行更改,且修改虛擬機的類型由刪除原虛擬機和創(chuàng)建新虛擬機組成;
[0034]對比模型A和模型B,利用頂點的名字匹配各頂點,利用邊的起始點、終止點和屬性集匹配各邊,將所有匹配的對放入集合M ;
[0035]掃描所有模型A中不存在但在模型B中存在的頂點和邊,放入集合N,即這些頂點和邊需要新建;
[0036]掃描所有模型A中存在但在模型B中不存在的頂點和邊,放入集合D,即這些頂點和邊需要刪除;
[0037]掃描M集合中所有匹配的對,將任何有屬性更改的對放