云計(jì)算中虛擬機(jī)鏡像管理系統(tǒng)的制作方法【
技術(shù)領(lǐng)域:
】[0001]本發(fā)明涉及云計(jì)算領(lǐng)域,尤其涉及云計(jì)算中虛擬機(jī)鏡像管理系統(tǒng)?!?br>背景技術(shù):
】[0002]云計(jì)算是一種基于互聯(lián)網(wǎng)的計(jì)算方式,通過(guò)這種方式,共享的軟硬件資源和信息可以按需求提供給計(jì)算機(jī)和其他設(shè)備,主要是基于互聯(lián)網(wǎng)的相關(guān)服務(wù)的增加、使用和交付模式,通常涉及通過(guò)互聯(lián)網(wǎng)來(lái)提供動(dòng)態(tài)易擴(kuò)展且經(jīng)常是虛擬化的資源。云是網(wǎng)絡(luò)、互聯(lián)網(wǎng)的一種比喻說(shuō)法。過(guò)去在圖中往往用云來(lái)表示電信網(wǎng),后來(lái)也用來(lái)表示互聯(lián)網(wǎng)和底層基礎(chǔ)設(shè)施的抽象。狹義云計(jì)算指IT基礎(chǔ)設(shè)施的交付和使用模式,指通過(guò)網(wǎng)絡(luò)以按需、易擴(kuò)展的方式獲得所需資源;廣義云計(jì)算指服務(wù)的交付和使用模式,指通過(guò)網(wǎng)絡(luò)以按需、易擴(kuò)展的方式獲得所需服務(wù)。這種服務(wù)可以是IT和軟件、互聯(lián)網(wǎng)相關(guān),也可是其他服務(wù)。它意味著計(jì)算能力也可作為一種商品通過(guò)互聯(lián)網(wǎng)進(jìn)行流通。[0003]目前,由于虛擬化技術(shù)的快速發(fā)展,IaaS云服務(wù)商通常提供獨(dú)立的虛擬機(jī)方式為用戶提供服務(wù),用戶通過(guò)遠(yuǎn)程的方式管理虛擬機(jī)。由于虛擬機(jī)的創(chuàng)建成本較低,用戶往往為不同的任務(wù)創(chuàng)建不同的虛擬機(jī)。用戶還可以克隆、快照、甚至可以回滾到以前的狀態(tài)。這些功能為用戶提供了極大的靈活性,但它們對(duì)云平臺(tái)成了的巨大安全風(fēng)險(xiǎn)。而且隨著云計(jì)算應(yīng)用的深入發(fā)展,越來(lái)越多的虛擬機(jī)出現(xiàn)。這種現(xiàn)象被稱為虛擬機(jī)蔓延,使得虛擬機(jī)管理與軟件更新成為一件非常費(fèi)時(shí)的任務(wù)。云計(jì)算平臺(tái)提供商將虛擬機(jī)系統(tǒng)更新任務(wù)交給用戶自己負(fù)責(zé),而用戶迫切期望供應(yīng)商來(lái)完成這項(xiàng)任務(wù)。結(jié)果就導(dǎo)致大量的虛擬機(jī)(運(yùn)行或休眠)由于沒(méi)有及時(shí)進(jìn)行軟件漏洞修復(fù)而受到大量的安全威脅,降低了系統(tǒng)的安全性,在使用過(guò)程中存在一定的缺陷。[0004]綜上所述,針對(duì)云計(jì)算平臺(tái)能耗較大的缺陷,提出云計(jì)算中虛擬機(jī)鏡像管理系統(tǒng),以解決現(xiàn)有技術(shù)的不足。【
發(fā)明內(nèi)容】[0005]本發(fā)明的目的是提供云計(jì)算中虛擬機(jī)鏡像管理系統(tǒng),基于通用配置管理工具、源跟蹤機(jī)制和版本庫(kù)維護(hù)服務(wù)的虛擬機(jī)鏡像文件管理的策略,從而實(shí)現(xiàn)虛擬機(jī)鏡像文件管理的靈活性、高效性,以解決現(xiàn)有技術(shù)中存在的不足。[0006]本發(fā)明為解決其技術(shù)問(wèn)題所采用的技術(shù)方案是,[0007]云計(jì)算中虛擬機(jī)鏡像管理系統(tǒng),該系統(tǒng)包括有鏡像庫(kù)、鏡像管理平臺(tái);[0008]所述的鏡像管理平臺(tái)內(nèi)部設(shè)置有通用配置管理模塊、源跟蹤模塊、版本庫(kù)維護(hù)模塊、過(guò)濾器模塊;[0009]通用配置管理模塊用于虛擬機(jī)鏡像管理平臺(tái),能根據(jù)用戶虛擬機(jī)鏡像的不同需求進(jìn)行自動(dòng)化配置,并且能夠達(dá)到大規(guī)模批量更新的要求;[0010]源跟蹤模塊是對(duì)于虛擬機(jī)鏡像的快照和回滾操作,需要通過(guò)建立源跟蹤機(jī)制對(duì)其進(jìn)行記錄,當(dāng)出現(xiàn)回滾操作時(shí),及時(shí)通知版本庫(kù)維護(hù)模塊及過(guò)濾器模塊進(jìn)行更新;[0011]版本庫(kù)維護(hù)模塊是創(chuàng)建一個(gè)中心數(shù)據(jù)庫(kù),這個(gè)數(shù)據(jù)庫(kù)包含所有需要的檢查更新的任務(wù)的信息,中心數(shù)據(jù)庫(kù)中包括安裝包的列表信息,軟件包的版本信息,還有每一個(gè)虛擬機(jī)使用的升級(jí)站點(diǎn)(倉(cāng)庫(kù))列表信息;[0012]過(guò)濾器模塊要實(shí)現(xiàn)虛擬機(jī)鏡像的軟件更新。[0013]進(jìn)一步,所述的源跟蹤模塊在基于Openstack的云計(jì)算平臺(tái)中,通過(guò)CeilometerAPI實(shí)現(xiàn)虛擬機(jī)鏡像。[0014]進(jìn)一步,所述的通用配置管理模塊對(duì)于虛擬機(jī)鏡像配制包含有用戶管理、軟件包管理、網(wǎng)絡(luò)管理、安全管理、系統(tǒng)配置管理、用戶自定義配置管理。[0015]本發(fā)明的優(yōu)點(diǎn)在于,該系統(tǒng)基于通用配置管理工具、源跟蹤機(jī)制和版本庫(kù)維護(hù)服務(wù)的虛擬機(jī)鏡像文件管理的策略,從而實(shí)現(xiàn)虛擬機(jī)鏡像文件管理的靈活性、高效性,設(shè)計(jì)新穎,是一項(xiàng)很好的設(shè)計(jì)方案,很有市場(chǎng)推廣前景,方便用戶使用,而且感觀性能優(yōu)?!靖綀D說(shuō)明】[0016]下面結(jié)合附圖和【具體實(shí)施方式】來(lái)詳細(xì)說(shuō)明本發(fā)明:[0017]圖1是本發(fā)明架構(gòu)示意圖;[0018]圖2是本發(fā)明模塊關(guān)系示意圖;[0019]圖3是本發(fā)明通用配置管理模塊示意圖;[0020]圖4是本發(fā)明版本庫(kù)維護(hù)模塊構(gòu)框圖;[0021]圖5是本發(fā)明過(guò)濾器分析流程圖;[0022]圖6是本發(fā)明腳本分析與重寫更新流程圖;[0023]圖7是本發(fā)明腳本分析與重寫機(jī)制圖;[0024]圖8是本發(fā)明測(cè)試環(huán)境示意圖;[0025]圖9是本發(fā)明虛擬機(jī)鏡像通用軟件初始化性能分析圖;[0026]圖10是本發(fā)明虛擬機(jī)鏡像通用軟件初始化性能對(duì)比圖;[0027]圖11是本發(fā)明鏡像內(nèi)已安裝軟件信息查詢性能比較圖;[0028]圖12是本發(fā)明不同包管理系統(tǒng)單個(gè)鏡像更新性能對(duì)比圖;[0029]圖13是本發(fā)明批量鏡像更新性能對(duì)比圖;【具體實(shí)施方式】[0030]為了使本發(fā)明實(shí)現(xiàn)的技術(shù)手段、創(chuàng)作特征、達(dá)成目的與功效易于明白了解,下面結(jié)合圖示與具體實(shí)施例,進(jìn)一步闡述本發(fā)明。[0031]如圖1、圖2所示,本發(fā)明提出的云計(jì)算中虛擬機(jī)鏡像管理系統(tǒng),該系統(tǒng)包括有鏡像庫(kù)、鏡像管理平臺(tái);鏡像管理平臺(tái)內(nèi)部設(shè)置有通用配置管理模塊、源跟蹤模塊、版本庫(kù)維護(hù)模塊、過(guò)濾器模塊;在鏡像發(fā)布環(huán)節(jié),虛擬機(jī)鏡像管理平臺(tái)攔截用戶發(fā)布的鏡像文件,并且通過(guò)通用配置管理和用戶自定義管理兩種相結(jié)合的方式,首先對(duì)虛擬機(jī)鏡像進(jìn)行軟件的初始化操作,實(shí)現(xiàn)隱私或保密數(shù)據(jù)的清理,并通過(guò)源跟蹤、軟件版本庫(kù)維護(hù)和過(guò)濾器來(lái)對(duì)修改后的鏡像進(jìn)行跟蹤與更新維護(hù)。[0032]通用配置管理模塊用于虛擬機(jī)鏡像管理平臺(tái),能根據(jù)用戶虛擬機(jī)鏡像的不同需求進(jìn)行自動(dòng)化配置,并且能夠達(dá)到大規(guī)模批量更新的要求;[0033]源跟蹤模塊是對(duì)于虛擬機(jī)鏡像的快照和回滾操作,需要通過(guò)建立源跟蹤機(jī)制對(duì)其進(jìn)行記錄,當(dāng)出現(xiàn)回滾操作時(shí),及時(shí)通知版本庫(kù)維護(hù)模塊及過(guò)濾器模塊進(jìn)行更新;[0034]版本庫(kù)維護(hù)模塊是創(chuàng)建一個(gè)中心數(shù)據(jù)庫(kù),這個(gè)數(shù)據(jù)庫(kù)包含所有需要的檢查更新的任務(wù)的信息,中心數(shù)據(jù)庫(kù)中包括安裝包的列表信息,軟件包的版本信息,還有每一個(gè)虛擬機(jī)使用的升級(jí)站點(diǎn)(倉(cāng)庫(kù))列表信息;[0035]過(guò)濾器模塊要實(shí)現(xiàn)虛擬機(jī)鏡像的軟件更新。僅僅獲得軟件包版本庫(kù)信息還是不夠的,還要將每一個(gè)軟件包所依賴的信息也提取出來(lái)。本系統(tǒng)采用過(guò)濾器的機(jī)制解決包依賴等更新問(wèn)題。[0036]另外,通用配置管理模塊對(duì)于虛擬機(jī)鏡像配制包含有用戶管理、軟件包管理、網(wǎng)絡(luò)管理、安全管理、系統(tǒng)配置管理、用戶自定義配置管理。云平臺(tái)用戶創(chuàng)建的虛擬機(jī)鏡像,會(huì)包含一些通用的軟件及相應(yīng)的配置。例如當(dāng)用戶創(chuàng)建一個(gè)跟ApacheWeb或者是Jboss應(yīng)用服務(wù)器有關(guān)的虛擬機(jī)鏡像時(shí),首先會(huì)選擇一個(gè)Linux鏡像,然后再安裝這些組件。然而安裝的系統(tǒng)軟件的配置在初始情況下都是默認(rèn)配置,有些時(shí)候無(wú)法滿足實(shí)際應(yīng)用的需求。讓這些機(jī)器部署實(shí)際的應(yīng)用,還需要安裝一些依賴的軟件包,如dns、ssh等;同時(shí)還需要設(shè)置相關(guān)的配置,如根據(jù)IP段來(lái)設(shè)置dns;為了保證服務(wù)器的安全性需要禁止某些端口,這時(shí)候就需要設(shè)置iptables。[0037]本系統(tǒng)以云平臺(tái)中最為流行的管理工具Puppet為開(kāi)發(fā)基礎(chǔ),設(shè)計(jì)并實(shí)現(xiàn)了虛擬機(jī)鏡像的通用配置管理功能。基于Puppet的通用配置管理模塊架構(gòu)如圖3所示。用戶通過(guò)編寫通用的配置管理信息以manifest的形式保存在Puppet服務(wù)端,當(dāng)客戶端下載manifest之后,可以根據(jù)manifest對(duì)虛擬機(jī)鏡像進(jìn)行初始化配置,例如軟件包管理,用戶管理和文件管理等。Puppetd通過(guò)調(diào)用facter,探測(cè)出虛擬機(jī)鏡像的一些變量,例如主機(jī)名,內(nèi)存大小,ip地址等。Puppetd把這些信息通過(guò)ssl連接發(fā)送到服務(wù)器端;服務(wù)器端的puppetmaster檢測(cè)客戶端的主機(jī)名,然后找到manifest里面對(duì)應(yīng)的node配置,并對(duì)該部分內(nèi)容進(jìn)行解析,facter送過(guò)來(lái)的信息可以作為變量處理,node牽涉到的代碼才解析,其他沒(méi)牽涉的代碼不解析。解析分為幾個(gè)階段,語(yǔ)法檢查,如果語(yǔ)法錯(cuò)誤就報(bào)錯(cuò)。如果語(yǔ)法沒(méi)錯(cuò),就繼續(xù)解析,解析的結(jié)果生成一個(gè)中間的"偽代碼",然后把偽代碼發(fā)給客戶端;客戶端接收到"偽代碼",并且執(zhí)行,客戶端把執(zhí)行結(jié)果發(fā)送給服務(wù)器;服務(wù)器端把客戶端的執(zhí)行結(jié)果寫入日志。當(dāng)前第1頁(yè)1 2 3