專利名稱:管理虛擬機實例中預安裝應用的持久數(shù)據(jù)的方法和裝置的制作方法
技術領域:
本發(fā)明涉及計算機領域,具體涉及云計算領域,更具體涉及一種用于管理彈性虛擬機實例中的預安裝應用的持久數(shù)據(jù)的方法和裝置。
背景技術:
諸如Amazon EC2(Elastic Cloud Computing)、 ISAAC(IBM Service AgilityAccelerator for Cloud)、RHEV(Red Hat Enterprise Virtulization)等基礎設施即服務(IaaS)云服務,可以很快地且以高伸縮性供應彈性虛擬機實例。彈性虛擬機實例是響應于用戶請求從一主虛擬機映像發(fā)起的。主虛擬機映像代表了計算和存儲等硬件資源、操作系統(tǒng)平臺和應用等的特定配置。從一個主虛擬機映像發(fā)起的所有彈性虛擬機實例共享主虛擬機映像的公共文件和數(shù)據(jù),而虛擬機實例使用“寫時才拷貝”(Copy-On-Write)技術只在本地存儲很少量的修改數(shù)據(jù),從而節(jié)省了維護成本,節(jié)約了磁盤數(shù)據(jù)等。此外,應用可以被預安裝到主虛擬機映像中,并在主虛擬機映像中進行配置,這樣可以避免每個用戶在其發(fā)起的虛擬機實例中單獨安裝和配置應用,從而節(jié)省了大量時間和精力,降低了維護和存儲成本,縮短了價值實現(xiàn)時間(time to value)。然而,在此類IaaS方案中,把所有的計算資源分為兩個域計算域和存儲域。計算域由計算節(jié)點組成,提供計算資源(主要有CPU、內存、網(wǎng)卡等),但其中的所有數(shù)據(jù)被認為是可以丟棄的。存儲域由存儲節(jié)點組成,提供存儲資源,用來存儲用戶認為需要保留的數(shù)據(jù)。彈性虛擬機實例運行在計算節(jié)點上,它通過“寫時才拷貝”技術存儲在計算節(jié)點上的任何數(shù)據(jù)更改(例如,數(shù)據(jù)庫中的新的企業(yè)資產數(shù)據(jù),文件系統(tǒng)中產生的新的業(yè)務使用數(shù)據(jù)等)不是持久性的。如果實例所運行的硬件發(fā)生故障,或者實例被終止或被關閉,則這些新產生的數(shù)據(jù)將丟失。這是因為,彈性虛擬機實例運行在計算節(jié)點上的基于主虛擬機映像的本地臨時映像上,該本地臨時映像中的更改數(shù)據(jù)并沒有持久存儲在存儲域中;而主虛擬機映像不允許回寫,因為它是只讀的且由很多用戶所共享。這些在虛擬機實例發(fā)起后產生的更改的數(shù)據(jù)是用戶的實際業(yè)務數(shù)據(jù),因此應當被存儲在云端用于每個用戶的存儲卷中。當前,云服務提供者也提供了持久存儲解決方案,即上面所述的云環(huán)境中的存儲域,以便用戶存儲其希望存儲的任何數(shù)據(jù)。例如,Amazon提供了使用 Amazon EBS (Elastic Block Storage)的持久存儲,ISAAC 提供了 Volume 解決方案。用戶可以創(chuàng)建其希望的任何數(shù)量的存儲卷,并將存儲卷作為如未格式化硬盤那樣的原始塊存儲設備附接(attach)到虛擬機實例,使用任何文件系統(tǒng)對其進行格式化,并將其掛載(mount)到某個文件目錄或邏輯盤。當彈性虛擬機實例終止時,存儲卷仍然存在于存儲節(jié)點中,因此,可以將其重新附接到新發(fā)起的彈性虛擬機實例。然而,顯然,這種持久存儲解決方案只適合于彈性虛擬機實例被發(fā)起后且存儲卷被創(chuàng)建、附接、格式化和掛載后新安裝和配置的應用的數(shù)據(jù)的持久存儲,因為在現(xiàn)有技術中顯然只有當彈性虛擬機實例被發(fā)起,且存儲卷被創(chuàng)建、附接、格式化和掛接之后,才能安裝并配置應用以便將其運行過程中產生的數(shù)據(jù)持久存儲到所述卷中。而對于已在主虛擬機映像中預安裝和預配置的應用來說,無法將其運行過程中產生的數(shù)據(jù)持久存儲到所述卷中。為了為在主虛擬機映像中預安裝和預配置的軟件應用提供用戶數(shù)據(jù)的持久存儲,目前云服務提供者提出了以下三種解決方案I)將全部軟件應用安裝和配置到一個或一組主虛擬機映像中;在發(fā)起虛擬機實例之后,為每一個虛擬機實例將數(shù)據(jù)庫或文件系統(tǒng)備份解決方案配置為將數(shù)據(jù)備份到一個存儲卷。該解決方案可以很好地實現(xiàn)共享預安裝和預配置的軟件應用,從而可以很快地發(fā)起具有配置應用的虛擬機實例,然而,如果一個虛擬機實例終止,則最后一次備份操作之后的數(shù)據(jù)將丟失。此外,這種解決方案需要額外地為每一個虛擬機實例管理一個備份解決方案,盡管始終存在著用于云服務提供者提供的整個存儲的整體備份解決方案來確保數(shù)據(jù)安全性。2)發(fā)起僅帶有操作系統(tǒng)的虛擬機實例;創(chuàng)建存儲卷并將其附接到虛擬機實例;然后安裝軟件應用并將其配置為將持久數(shù)據(jù)直接存儲到存儲卷。這種解決方案目錄實際上已由很多用戶手工執(zhí)行,并且可以很容易地使用IT技術將其自動化。然而,這種解決方案不能快速地提供具有安裝的應用的虛擬機實例,因為安裝應用需要耗費大量時間,特別是對于某些大型復雜軟件應用而言。例如,完成IBM MaximoAsset Management v7. 5應用的安裝需要大約10小時,而安裝更復雜的解決方案甚至需要大約80小時。而且,應用安裝無法在不同用戶之間共享,每個用戶都需要分別安裝所需的應用。且對于同一個用戶來說,如果虛擬機實例終止,則需要重新安裝應用。3)某些云解決方案提供了持久虛擬機實例來解決該問題。也就是說,當需要發(fā)起虛擬機實例時,從主虛擬機映像復制一個新的映像(存儲卷)在存儲節(jié)點上,并在計算節(jié)點上遠程連接到該映像,計算節(jié)點本地不再產生一個使用“寫時才拷貝”技術的臨時映像。這樣,應用數(shù)據(jù)將存儲在這個位于存儲域中的存儲卷中,這樣當虛擬機關機或者主機關機時,應用數(shù)據(jù)仍是持久的。這種解決方案需要復制整個主虛擬機映像,這將需要很長時間。例如,當復制一個100G的主虛擬機映像時,需要大約半小時的時間。此外,由于存儲卷中的映像從主虛擬機映像復制之后是獨立于主虛擬機映像的,系統(tǒng)管理員需要額外的努力來維護該映像,執(zhí)行操作系統(tǒng)補丁、應用補丁等工作。這樣,例如如果有1000個實例,則系統(tǒng)管理員的工作量將增加1000倍。因此,本領域中需要一種能夠克服上述缺點的用于管理計算云虛擬機實例中的預安裝應用的持久數(shù)據(jù)的解決方案。
發(fā)明內容
根據(jù)本發(fā)明的一個方面,提供了一種用于管理彈性虛擬機實例中的預安裝應用的持久數(shù)據(jù)的方法,包括響應于將應用預安裝到主虛擬機映像中,獲得應用的功能模塊的持久數(shù)據(jù)點,所述持久數(shù)據(jù)點包括用于存儲所述功能模塊的持久數(shù)據(jù)的文件目錄;響應于從所述主虛擬機映像發(fā)起彈性虛擬機實例,創(chuàng)建存儲卷,將所述存儲卷附接到所述彈性虛擬機實例,并根據(jù)所述持久數(shù)據(jù)點將所述存儲卷掛載到所述文件目錄。根據(jù)本發(fā)明的另一個方面,提供了一種用于管理彈性虛擬機實例中的預安裝應用的持久數(shù)據(jù)的裝置,包括持久數(shù)據(jù)點獲得模塊,其被配置為響應于將應用預安裝到主虛擬機映像中,獲得應用的功能模塊的持久數(shù)據(jù)點,所述持久數(shù)據(jù)點包括用于存儲所述功能模塊的持久數(shù)據(jù)的文件目錄;存儲卷管理器,其被配置為響應于從所述主虛擬機映像發(fā)起彈性虛擬機實例,創(chuàng)建存儲卷,將所述存儲卷附接到所述彈性虛擬機實例,并根據(jù)所述持久數(shù)據(jù)點將所述存儲卷掛載到所述文件目錄。本發(fā)明的優(yōu)點在于1.彈性虛擬機實例運行過程中產生的用戶數(shù)據(jù)被直接寫入到存儲卷,這樣,當彈性虛擬機實例終止或發(fā)生故障時,用戶數(shù)據(jù)不會丟失。而且,不需要為每個彈性虛擬機實例維護一個特定的數(shù)據(jù)備份解決方案。存儲卷的備份是由云環(huán)境內的整體存儲備份解決方案負責的。2.應用是預安裝和配置在主虛擬機映像中的,因此各彈性虛擬機實例用戶可共享同一個安裝,而不需要耗時的安裝過程。且每個用戶具有其專用的存儲卷來存儲自己的數(shù)據(jù)。3.仍然屬于彈性虛擬機解決方案,不需要復制整個主虛擬機映像來存儲用戶的持久數(shù)據(jù)。系統(tǒng)管理員只需要維護主虛擬機映像,從而節(jié)約了總的擁有和維護成本。
所附權利要求中闡述了被認為是本發(fā)明的特點的創(chuàng)造性特征。但是,通過參照附圖閱讀下面對說明性實施例的詳細說明可更好地理解發(fā)明本身以及其優(yōu)選使用模式、目標、特征以及優(yōu)點,在附圖中圖1表示根據(jù)本發(fā)明一實施例的云計算節(jié)點;圖2表示根據(jù)本發(fā)明一實施例的云計算環(huán)境;圖3表示根據(jù)本發(fā)明一實施例的抽象模型層;圖4示出了本發(fā)明可在其中實現(xiàn)的云管理系統(tǒng);圖5具體示出了根據(jù)本發(fā)明的實施例的準備主虛擬機映像的流程;圖6具體示出了根據(jù)本發(fā)明的實施例的發(fā)起彈性虛擬機實例的流程;圖7具體示出了根據(jù)本發(fā)明的實施例的恢復彈性虛擬機實例的流程;圖8具體示出了根據(jù)本發(fā)明的實施例的啟用功能模塊的流程;圖9示出了根據(jù)本發(fā)明的實施例的用于管理彈性虛擬機實例中的預安裝應用的持久數(shù)據(jù)的方法;以及圖10示出了根據(jù)本發(fā)明的實施例的用于管理彈性虛擬機實例中的預安裝應用的持久數(shù)據(jù)的裝置。
具體實施例方式云計算首先應當明白,盡管本公開包括關于云計算的詳細描述,本公開所記載的技術方案的實現(xiàn)卻不限于云計算環(huán)境。本發(fā)明的實施例能夠結合現(xiàn)在已知的或以后開發(fā)的任何其它類型的計算環(huán)境而實現(xiàn)。云計算是一種服務交付模型,用于對共享的可配置計算資源池進行方便、按需的網(wǎng)絡訪問??膳渲糜嬎阗Y源例如是網(wǎng)絡、網(wǎng)絡帶寬、服務器、處理、內存、存儲、應用、虛擬機和服務,是以最小的管理成本或者最少的與服務提供者的交互就能快速提供和釋放的資源。這種云模型可以包括至少五個特征,至少三個服務模型和至少四個部署模型。特征如下按需自助式服務云消費者能單方面自動地按需提供計算能力,諸如服務器時間和網(wǎng)絡存儲,而無需與服務提供者進行人工交互。廣泛的網(wǎng)絡接入云計算能力可在網(wǎng)絡上獲取,并且是通過標準機制獲取的,標準機制促進通過不同種類瘦客戶機平臺或厚客戶機平臺(例如移動電話、膝上型電腦、個人數(shù)字助理PDA)對云的使用。資源池將提供者的計算資源歸入資源池,通過多租戶(munt1-tenant)模式服務于多重消費者,不同的實體資源和虛擬資源按照需要被動態(tài)地分配和再分配。因為消費者一般不控制甚至不知道所提供的資源的確切位置,但是可能在較高的抽象程度上指定位置(例如國家、州或數(shù)據(jù)中心),所以有一種位置獨立感。迅速的彈性能迅速和有彈性地(有時是自動地)提供計算資源,以實現(xiàn)快速地擴展并且能快速地釋放。對于消費者來說,可用的計算資源常常顯得是無限的,在任何時候都能獲取任何數(shù)量的計算資源??蓽y量的服務云系統(tǒng)通過利用適于服務(例如存儲、處理、帶寬和活動用戶帳號)類型的某種抽象程度的計量能力,自動地控制和優(yōu)化資源效用。可以監(jiān)測、控制和報告資源使用情況,為服務提供者和消費者雙方提供透明度。服務模型如下軟件即服務(SaaS):給予消費者使用提供者在云基礎架構上運行的應用的能力。應用是可通過諸如網(wǎng)絡瀏覽器的瘦客戶機接口從各種客戶機設備訪問的(例如基于網(wǎng)絡的電子郵件)。可能除了是有限的特定于用戶的應用配置設置外,消費者既不管理也不控制底層的云基礎架構,包括網(wǎng)絡、服務器、操作系統(tǒng)、存儲、乃至單個應用能力。平臺即服務(PaaS):向消費者提供的能力是在云基礎架構上部署消費者創(chuàng)建的或獲得的應用,這些應用是用提供者所支持的程序設計語言和工具創(chuàng)建的。消費者不管理或控制基礎的云基礎架構,包括網(wǎng)絡、服務器、操作系統(tǒng)或存儲,但是對所部署的應用具有控制權,對托管環(huán)境配置的應用也可能有控制權?;A架構即服務(IaaS):給予消費者提供處理、存儲、網(wǎng)絡和消費者能在其中部署和運行任意軟件的基礎計算資源的能力,其中軟件可包括操作系統(tǒng)和應用程序。消費者既不管理也不控制底層的云基礎架構,但是對操作系統(tǒng)、存儲和所部署的應用具有控制權,對選擇的網(wǎng)絡部件(例如主機防火墻)也可能擁有有限的控制權。部署模型如下私有云云基礎架構是單獨為某個組織運行的。云基礎架構可以由該組織管理,也可以由第三方管理,可以存在于組織內,也可以存在于組織外。共同體云云基礎架構被若干個組織共享,支持有共同利害關系(例如使命、安全要求、政策和合規(guī)考慮)的特定共同體。共同體云可以由共同體內的多個組織或第三方管理,可以存在于組織內,也可以存在于組織外。公共云云基礎架構向公眾或大型產業(yè)群提供,并由出售云服務的組織擁有。
混合云云基礎架構是兩個或更多的云(私有云、共同體云或公共云)的合成,這些云依然是獨特的實體,但是通過使數(shù)據(jù)和應用能夠移植的標準化技術或私有技術(例如用于云之間的負載平衡的云突發(fā)流量分擔技術)綁定在一起。云計算環(huán)境是面向服務的,特點集中在無狀態(tài)性、低耦合性、模塊性和語意的互操作性。云計算的核心是包含互連節(jié)點網(wǎng)絡的基礎結構?,F(xiàn)在參考圖1,圖中顯示了一個云計算節(jié)點的例子。云計算節(jié)點10僅僅是合適的云計算節(jié)點的一個示例,而并不意味著對本發(fā)明的實施例的功能和使用的范圍的任何限制。總之,云計算節(jié)點10能夠被實現(xiàn)和/或執(zhí)行以上所述的任何功能。在云計算節(jié)點10中有一個計算機系統(tǒng)/服務器12,其可與眾多其它通用或專用計算系統(tǒng)環(huán)境或配置一起操作。適于與計算機系統(tǒng)/服務器12 —起使用的眾所周知的計算系統(tǒng)、環(huán)境和/或配置的例子包括但不限于個人計算機系統(tǒng)、服務器計算機系統(tǒng)、瘦客戶機、厚客戶機、手持或膝上設備、基于微處理器的系統(tǒng)、機頂盒、可編程消費電子產品、網(wǎng)絡個人電腦、小型計算機系統(tǒng)、大型計算機系統(tǒng)和包括上述任何系統(tǒng)的分布式云計算技術環(huán)境,等
坐寸ο計算機系統(tǒng)/服務器12可以在由計算機系統(tǒng)執(zhí)行的計算機系統(tǒng)可執(zhí)行指令(諸如程序模塊)的一般語境下描述。通常,程序模塊可以包括例程、程序、目標程序、組件、邏輯、數(shù)據(jù)結構等等,它們執(zhí)行特定的任務或者實現(xiàn)特定的抽象數(shù)據(jù)類型。計算機系統(tǒng)/服務器12可以在分布式云計算環(huán)境中實施,分布式云計算環(huán)境中,任務是由通過通信網(wǎng)絡鏈接的遠程處理設備執(zhí)行的。在分布式云計算環(huán)境中,程序模塊可以位于包括存儲設備的本地或遠程計算系統(tǒng)存儲介質上。如圖1所示,云計算節(jié)點10中的計算機系統(tǒng)/服務器12是以通用計算設備的形式表現(xiàn)的。計算機系統(tǒng)/服務器12的部件可以包括但不限于一個或者多個處理器或者處理單元16,系統(tǒng)存儲器28,連接不同系統(tǒng)部件(包括系統(tǒng)存儲器28和處理單元16)的總線18。總線18表示幾種類型的總線結構中的一種或多種,包括存儲器總線或者存儲器控制器,外圍總線,圖形加速端口,處理器或者使用多種總線結構中的任何總線結構的局域總線。舉例(但不限于這些示例)來說,這些體系結構包括工業(yè)標準體系結構(ISA)總線,微通道體系結構(MAC)總線,增強型ISA總線、視頻電子標準協(xié)會(VESA)局域總線以及外圍部件互連(PCI)總線。計算機系統(tǒng)/服務器12典型地包括多種計算機系統(tǒng)可讀介質。這些介質可以為可被計算機系統(tǒng)/服務器12訪問的任何可獲得的介質,包括易失性和非易失性介質,可移動的和不可移動的介質。系統(tǒng)存儲器28可以包括易失性存儲器形式的計算機系統(tǒng)可讀介質,例如隨機存取存儲器(RAM) 30和/或高速緩存存儲器32。計算機系統(tǒng)/服務器12可以進一步包括其它可以移動的/不可移動的,易失性/非易失性計算機系統(tǒng)存儲介質。僅作為舉例,存儲系統(tǒng)34可以被提供用于讀出和寫入不可移動的、非易失性磁介質(未示出,通常稱為“硬盤驅動器”)。盡管圖中未示出,可以提供用于對可移動的非易失性磁盤(錄入“軟盤”)讀寫的磁盤驅動器,以及對可移動的非易失性光盤——諸如CD-ROM,DVD-ROM或者其它光介質——讀寫的光盤驅動器。在這些情況下,每個驅動器可以通過一個或者多個數(shù)據(jù)介質接口與總線18相連。如以下將進一步表示和描述的那樣,存儲器28可以包括至少一個程序產品,該程序產品有一組(例如至少一個)程序模塊,這些程序模塊被配置以執(zhí)行本發(fā)明各實施例的功能。有一組(至少一個)程序模塊42的程序/實用工具40,可以被存儲在存儲器28中,這樣的程序模塊42例如(但不限于)操作系統(tǒng)、一個或者多個應用程序、其它程序模塊以及程序數(shù)據(jù)。操作系統(tǒng)、一個或者多個應用程序、其它程序模塊、程序數(shù)據(jù)中的每一個或它們的某種組合中可能包括網(wǎng)絡環(huán)境的實現(xiàn)。程序模塊42通常執(zhí)行這里描述的本發(fā)明的實施例中的功能和/或方法。計算機系統(tǒng)/服務器12也可以與一個或多個外部設備14—諸如鍵盤、指向設備、顯示器24等等——通信,與一個或者多個使用戶能與計算機系統(tǒng)/服務器12交互的設備通信,和/或與使計算機系統(tǒng)/服務器12能與一個或多個其它計算設備通信的任何設備(例如網(wǎng)卡,調制解調器等等)通信。這種通信可以通過輸入/輸出(I/O)接口 22進行。并且,計算機系統(tǒng)/服務器12還可以通過網(wǎng)絡適配器20與一個或者多個網(wǎng)絡一諸如局域網(wǎng)(LAN),廣域網(wǎng)(WAN)和/或公共網(wǎng)絡(例如因特網(wǎng))一通信。如圖所示,網(wǎng)絡適配器20通過總線18與計算機系統(tǒng)/服務器12的其它模塊通信。應當明白,盡管圖中未示出,其它硬件和/或軟件模塊可以與計算機系統(tǒng)/服務器12 —起使用。例子包括但不限于微代碼、設備驅動器、冗余處理單元、外部磁盤驅動陣列、RAID系統(tǒng)、磁帶驅動器以及數(shù)據(jù)備份存儲系統(tǒng),等等?,F(xiàn)在參考圖2,該圖描述了示例性的云計算環(huán)境50。如圖所示,云計算環(huán)境50包括云計算消費者使用的本地計算設備可以與其相通信的一個或者多個云計算節(jié)點10,本地計算設備諸如個人數(shù)字輔助設備(PDA)或者是移動電話54A,臺式電腦54B,筆記本電腦54C,和/或汽車計算機系統(tǒng)54N。節(jié)點10之間可以相互通信。可以在在一個或者多個網(wǎng)絡一
諸如如上所述的私有云、共同體云、公共云或混合云或者它們的組合-中,將節(jié)點10進行
物理或者虛擬分組(圖中未示出)。這允許云計算環(huán)境50提供云消費者無需在本地計算設備上維護資源就能請求的基礎架構即服務、平臺即服務和/或軟件即服務。應當明白,圖2示出的各類計算設備54A-N僅僅是示意性的,計算節(jié)點10以及云計算環(huán)境50可以與任何類型的網(wǎng)絡上的和/或網(wǎng)絡可尋址的連接上的任何類型的計算設備(例如使用網(wǎng)絡瀏覽器)通信?,F(xiàn)在參考圖3,該圖示出了云計算環(huán)境50(圖2)提供的一組功能抽象層。首先應當明白,圖3所示的部件、層以及功能都僅僅是示意性的,本發(fā)明的實施例不限于此。如圖所示,提供了下列層和對應功能硬件和軟件層60包括硬件和軟件部件。硬件部件的例子包括主機——例如IBM zSeries 系統(tǒng);基于Rise(精簡指令集計算機)體系結構的服務器一例如iBMpSeries 系統(tǒng);iBMxSeries 系統(tǒng);iBMBladeCenter 系統(tǒng);存儲設備;網(wǎng)絡和網(wǎng)
絡部件。軟件部件的例子包括網(wǎng)絡應用服務器軟件一例如IBM WebSphere 應用服
務器軟件;數(shù)據(jù)庫軟件-例如IBMDB2 數(shù)據(jù)庫軟件。(IBM, zSeries, pSeries,xSeries,
BladeCenter, WebSphere以及DB2是國際商業(yè)機器公司在全世界各地注冊的商標)。虛擬層62提供一個抽象層,該層可以提供下列虛擬實體的例子虛擬服務器、虛擬存儲、虛擬網(wǎng)絡(包括虛擬私有網(wǎng)絡)、虛擬應用和操作系統(tǒng),以及虛擬客戶端。
在一個示例中,管理層64可以提供下述功能資源供應功能提供用于在云計算環(huán)境中執(zhí)行任務的計算資源和其它資源的動態(tài)獲?。挥嬃亢投▋r功能在云計算環(huán)境內資源被使用時進行成本跟蹤,并為這些資源的消費提供帳單和發(fā)票。在一個例子中,這些資源可以包括應用軟件許可。安全功能為云消費者和任務提供身份認證,為數(shù)據(jù)和其它資源提供保護。用戶門戶為消費者和系統(tǒng)管理員提供對云計算環(huán)境的訪問。服務水平管理功能提供云計算資源的分配和管理,以滿足必需的服務水平。服務水平協(xié)議(SLA)計劃和履行功能為根據(jù)SLA的預測了未來需求的云計算資源提供預先安排和供應。工作負載層66提供了云計算環(huán)境可能實現(xiàn)的功能的示例。在該層中,可提供的工作負載或功能的示例包括地圖繪制與導航;軟件開發(fā)及生命周期管理;虛擬教室的教學他提供;數(shù)據(jù)分析處理;交易處理;以及移動桌面等等。圖4示出了本發(fā)明可在其中實現(xiàn)的云管理系統(tǒng)101。該云管理系統(tǒng)101可以是圖3中所示的管理層64的一個實現(xiàn)。在本發(fā)明的一些實施例中,該云管理系統(tǒng)101是現(xiàn)有的云管理系統(tǒng),例如Amazon EC2、ISAAC、RHEV解決方案等。在本發(fā)明的另一些實施例中,該云管理系統(tǒng)101是如圖所示通過向現(xiàn)有的云管理系統(tǒng)中添加了本發(fā)明的用于管理彈性虛擬機實例中的預安裝應用的持久數(shù)據(jù)的裝置109而獲得的云管理系統(tǒng)。如圖所示,云管理系統(tǒng)101中包括一個或多個主虛擬機映像104,以及與單個主虛擬機映像對應的一個或多個彈性虛擬機實例105。每個主虛擬機映像104代表了特定數(shù)量、特性和性能的計算和存儲等硬件資源、操作系統(tǒng)平臺以及應用等IT資源的一種特定配置?;谝粋€主虛擬機映像104,可以發(fā)起任意多個虛擬機實例105,其中每個虛擬機實例105將具有與主虛擬機映像相同的硬件、操作系統(tǒng)和應用配置。因此,用戶可以通過在向云管理系統(tǒng)101發(fā)出服務請求時指定特定的主虛擬機映像104來生成相應的虛擬機實例105,從而獲得具有特定硬件和軟件配置的IT基礎設施。如圖所示,在本發(fā)明的實施例中,在主虛擬機映像104中預安裝和配置有一個或多個應用106,每個應用具有一個或多個持久數(shù)據(jù)點107。相應地,在由主虛擬機映像發(fā)起的每一個彈性虛擬機實例中也將包括相同的一個或多個應用106’,且每個應用106’包括相同的一個或多個數(shù)據(jù)點107’。如圖中彈性虛擬機實例105、應用106’和數(shù)據(jù)點107’方塊的虛線所意在表明的,彈性虛擬機實例105及其應用106’并不具有獨立于主虛擬機映像104及其應用106的單獨的文件系統(tǒng),相反,同一個主虛擬機映像104的所有彈性虛擬機實例105及其應用106’實際上共享著該主虛擬機映像104及其應用106的相同的文件系統(tǒng);然而,通過云管理系統(tǒng)101中的“寫時才拷貝”技術(未示出),在每個用戶看起來,其單獨占有其虛擬機實例中的整個文件系統(tǒng)。應用的持久數(shù)據(jù)點代表了應用中的功能模塊的持久數(shù)據(jù)的存儲位置,即持久數(shù)據(jù)所要存儲的文件目錄。在本申請中,功能模塊是指應用中的功能相對獨立的部分。一個應用可具有一個或多個功能模塊。功能模塊可能具有(也可能不具有)需要存儲的持久數(shù)據(jù),這種持久數(shù)據(jù)是在應用的運行過程中產生的,或是在應用的安裝過程中初始產生的。一個功能模塊的持久數(shù)據(jù)通常存儲在一個單獨的存儲位置。當然,一個功能模塊的持久數(shù)據(jù)也有可能存儲在多個存儲位置,或者,多個功能模塊的持久數(shù)據(jù)也有可能存儲在同一個存儲位置。因此,一個應用通??删哂幸粋€或多個持久數(shù)據(jù)點,每個持久數(shù)據(jù)點代表應用中的功能模塊的持久數(shù)據(jù)的一個存儲位置。不同應用基于其設計而具有不同的持久數(shù)據(jù)點。通常,應用的持久數(shù)據(jù)點所代表的存儲位置是在應用的設計和開發(fā)過程中默認的,并可以在應用安裝過程中由用戶進行配置。在應用運行過程中產生的不需要持久保存的非持久數(shù)據(jù),則可以沒有相應的持久數(shù)據(jù)點。如圖所示,根據(jù)本發(fā)明的實施例,在云管理系統(tǒng)101中,還包括本發(fā)明的用于管理彈性虛擬機實例中的預安裝應用的持久數(shù)據(jù)的裝置109 (將在下文中描述),且該裝置109可以在圖3中所示的管理層64中的資源供應功能中實現(xiàn)。在本發(fā)明的其他實施例中,本發(fā)明的用于管理彈性虛擬機實例中的預安裝應用的持久數(shù)據(jù)的裝置109也可以位于云管理系統(tǒng)101之外。如圖所示,根據(jù)本發(fā)明的實施例,對于每個彈性虛擬機實例105,本發(fā)明的裝置109可根據(jù)其包含的每個應用106’的每個持久數(shù)據(jù)點107’創(chuàng)建一個存儲卷108,將所述存儲卷108附接到該彈性虛擬機實例105,并掛載到該持久數(shù)據(jù)點107’。所述存儲卷108可以為可由云管理系統(tǒng)101提供或管理的任何計算機可讀寫的非易失性物理存儲介質或其部分。本發(fā)明的解決方案根據(jù)本發(fā)明的實施例,本發(fā)明的解決方案包括以下方面(—)在將一應用安裝到主虛擬機映像之前,使用元數(shù)據(jù)定義該應用的與功能模塊關聯(lián)的每個持久數(shù)據(jù)點。( 二)在將應用安裝到主虛擬機映像時,將應用的每個持久數(shù)據(jù)點元數(shù)據(jù)實例化。(三)安裝初始數(shù)據(jù)(如果有的話)的備份和清除。(四)從主虛擬機映像發(fā)起彈性虛擬機實例之后,且在啟動其中的應用之前,為每一個啟用的持久數(shù)據(jù)點創(chuàng)建存儲卷,將該存儲卷附接到該彈性虛擬機實例,對該存儲卷進行格式化,將該存儲卷掛載持久數(shù)據(jù)點中定義的文件目錄,并恢復所備份的安裝初始數(shù)據(jù)(如果有的話)。(五)當彈性虛擬機實例發(fā)生故障或終止時,從主虛擬機映像發(fā)起另一個虛擬機實例,并將相關存儲卷重新附接到該另一個虛擬機實例,并重新掛載到相應數(shù)據(jù)點中定義的文件目錄。(六)如果在虛擬機發(fā)起之后,應用的某個已安裝但被禁止的功能模塊被啟用,則根據(jù)相關持久數(shù)據(jù)點中定義的參數(shù)創(chuàng)建、附接、格式化和掛載存儲卷。下面詳細描述根據(jù)本發(fā)明的實施例的本發(fā)明的解決方案的各個方面。第(一)方面在將一應用安裝到主虛擬機映像之前,使用元數(shù)據(jù)定義該應用的與功能模塊關聯(lián)的每個持久數(shù)據(jù)點,所定義的每個持久數(shù)據(jù)點可包括以下各項相應功能模塊名稱或標識、存儲位置、保留的存儲空間大小及文件系統(tǒng)格式、是否包含初始數(shù)據(jù)、以及初始數(shù)據(jù)備份/恢復方法等信息。其中,相應功能模塊名稱或標識是指該數(shù)據(jù)點所關聯(lián)的應用中的功能模塊的名稱或標識;存儲位置是指該功能模塊的持久數(shù)據(jù)將存儲的文件目錄;保留的存儲空間大小是指將用于存儲該功能模塊的持久數(shù)據(jù)的存儲卷的大?。晃募到y(tǒng)格式是指該存儲卷的文件系統(tǒng)格式;是否包含初始數(shù)據(jù)是指在安裝應用的過程中是否將在所述存儲位置中存儲該功能模塊的初始數(shù)據(jù);初始數(shù)據(jù)備份/恢復方法是指在存儲了所述初始數(shù)據(jù)的情況下,用于備份該初始數(shù)據(jù)以及用于恢復該初始數(shù)據(jù)的方法。使用元數(shù)據(jù)定義持久數(shù)據(jù)點,亦即獲得持久數(shù)據(jù)點的元數(shù)據(jù)定義,可意味著所述各項或其中的一些項并不包括具體的值,而只有項的名稱。具體地,在使用元數(shù)據(jù)定義的數(shù)據(jù)點中,可以只有相應功能模塊名稱或標識項才有具體的值,而存儲位置、保留的存儲空間大小、文件系統(tǒng)格式、是否包含初始數(shù)據(jù)、以及初始數(shù)據(jù)備份/恢復方法這些項并沒有具體的值,而只有項的名稱。應用中的每個持久數(shù)據(jù)點的元數(shù)據(jù)定義是可以從應用的設計和開發(fā)階段獲得的,或者可以通過查閱有關應用的功能和結構的文檔而獲得。可以將所獲得的應用的持久數(shù)據(jù)點的元數(shù)據(jù)定義與應用相關聯(lián)地存儲,例如存儲在云管理系統(tǒng)101可訪問的任何位置。在本發(fā)明的其他實施例中,應用中的持久數(shù)據(jù)點的元數(shù)據(jù)定義可以包含更多或更少的內容,例如,也可以僅包含所述存儲位置,等等。在本發(fā)明另一些實施例中,也可以不去獲得應用的持久數(shù)據(jù)點的元數(shù)據(jù)定義,而是可以在將應用安裝到主虛擬機映像的過程中直接獲得應用的持久數(shù)據(jù)點,或用于存儲其持久數(shù)據(jù)的文件目錄。第(二)方面在將應用安裝到主虛擬機映像時,將應用的每個持久數(shù)據(jù)點元數(shù)據(jù)實例化。也就是說,在將應用安裝到主虛擬機映像的過程中,將這些持久數(shù)據(jù)點元數(shù)據(jù)定義中的各項的值填充到各項中。可以根據(jù)用戶在安裝過程中的配置,將存儲位置、保留的存儲空間大小、文件系統(tǒng)格式、是否包含初始數(shù)據(jù)以及初始數(shù)據(jù)備份/恢復方法這些項的具體值填充到持久數(shù)據(jù)點中,從而將持久數(shù)據(jù)點元數(shù)據(jù)實例化。在將應用的各持久數(shù)據(jù)點元數(shù)據(jù)實例化后,可將應用的已實例化的各持久數(shù)據(jù)點存儲起來,例如存儲到用于該主虛擬機映像的一持久數(shù)據(jù)點目錄中。用于該主虛擬機映像的持久數(shù)據(jù)點目錄中可包含該主虛擬機映像中預安裝的所有應用的所有實例化的持久數(shù)據(jù)點。該持久數(shù)據(jù)點目錄可與該主虛擬機映像相關聯(lián)地存儲在本發(fā)明的裝置109可訪問的任何位置。此外,可為每一個持久數(shù)據(jù)點設置一個啟用標志。啟用標志用于表示是否啟用了該持久數(shù)據(jù)點對應的功能模塊,且可根據(jù)安裝過程中或之后用戶的配置進行設置。如上所述,在本發(fā)明的另一些實施例中,也可以不去獲得應用的持久數(shù)據(jù)點的元數(shù)據(jù)定義,因而不需要將應用的持久數(shù)據(jù)點元數(shù)據(jù)實例化,而是在將應用預安裝到主虛擬機映像的過程中,由用戶在安裝過程之中和/或之后配置或指定應用的持久數(shù)據(jù)的存儲位置、為持久數(shù)據(jù)保留的存儲空間大小、文件系統(tǒng)格式、是否包含初始數(shù)據(jù)、初始數(shù)據(jù)備份/恢復方法、是否啟用了相應功能模塊等,并將這些配置或指定存儲在用于該主虛擬機映像的持久數(shù)據(jù)點目錄或其他數(shù)據(jù)結構中。第(三)方面在為彈性計算云準備主虛擬機映像時,如果在主虛擬機映像的持久數(shù)據(jù)點目錄中定義的一持久數(shù)據(jù)點中指示包含初始數(shù)據(jù)(即是否包含初始數(shù)據(jù)項的值為真,不管啟用標志的值為真或為假),即在應用的安裝過程中該持久數(shù)據(jù)點的存儲位置存儲了相應功能模塊的初始數(shù)據(jù),則使用該持久數(shù)據(jù)點中定義的初始數(shù)據(jù)備份方法將該存儲位置中的初始數(shù)據(jù)進行備份,然后從該存儲位置清除初始數(shù)據(jù)(以便空的文件目錄將來可用于掛載存儲卷)。上述操作可針對主虛擬機映像的持久數(shù)據(jù)點目錄中每一個持久數(shù)據(jù)點執(zhí)行。在本發(fā)明的另一些實施例中,持久數(shù)據(jù)點中可以不包含是否包含初始數(shù)據(jù)項,而是可以任何其他方式(例如,在與應用關聯(lián)的持久數(shù)據(jù)點和持久數(shù)據(jù)點目錄之外的任何其他數(shù)據(jù)結構中)指示在應用的安裝過程中是否存儲了初始數(shù)據(jù);此外,持久數(shù)據(jù)點中也可以不包含初始數(shù)據(jù)備份/恢復方法,而是對于一個應用的所有數(shù)據(jù)點(或者對于一個主虛擬機映像的所有應用的所有數(shù)據(jù)點,或者對于云管理系統(tǒng)中的所有主虛擬機映像的所有應用的所有數(shù)據(jù)點)使用相同的初始數(shù)據(jù)備份/恢復方法。當然,在本發(fā)明的一些實施例中,如果能確定在將任何應用預安裝到主虛擬機映像時都不會存儲初始數(shù)據(jù),則不需要對初始數(shù)據(jù)進行備份、清除以及恢復,也不需要在持久數(shù)據(jù)點中指定或以其他方式指定是否包含初始數(shù)據(jù)以及初始數(shù)據(jù)備份/恢復方法。圖5具體示出了根據(jù)本發(fā)明的實施例的準備主虛擬機映像的流程。如圖所示,在開始準備主虛擬機映像之后,在步驟201,從主虛擬機映像的持久數(shù)據(jù)點目錄讀取一個數(shù)據(jù)點。在步驟202,判斷該數(shù)據(jù)點中是否指示存在初始數(shù)據(jù)。如果該判斷為否,則執(zhí)行步驟205。如果該判斷為是,則執(zhí)行步驟203。在步驟203,使用該數(shù)據(jù)點中定義的備份命令備份在安裝應用過程中存儲到該數(shù)據(jù)點中定義的存儲位置的初始數(shù)據(jù)。在步驟204,從所述存儲位置清除所述初始數(shù)據(jù)。在步驟205,判斷在主虛擬機映像的持久數(shù)據(jù)點目錄中是否還有更多的持久數(shù)據(jù)點。如果步驟205的判斷為是,則返回步驟201,從持久數(shù)據(jù)點目錄中讀取下一個持久數(shù)據(jù)點,并針對該下一個持久數(shù)據(jù)點再次執(zhí)行步驟202-205。如果步驟205的判斷為否,則執(zhí)行步驟206。在步驟206,執(zhí)行云解決方案所要求的用于準備主虛擬機映像的其他任務(由于這些任務與本發(fā)明無關,故不在此贅述)。這樣,就完成了主虛擬機映像的準備。第(四)方面在從主虛擬機映像發(fā)起一個彈性虛擬機實例之后,且在啟動其中的應用之前,可由根據(jù)本發(fā)明的裝置109讀取主虛擬機映像的持久數(shù)據(jù)點目錄,并為其中的每一個啟用標志的值為真的持久數(shù)據(jù)點執(zhí)行以下操作I)創(chuàng)建具有該持久數(shù)據(jù)點中定義的保留的存儲空間大小的存儲卷;2)將該存儲卷附接到該彈性虛擬機實例;3)使用該持久數(shù)據(jù)點中定義的文件系統(tǒng)格式對該存儲卷進行格式化;4)將該存儲卷掛載到該持久數(shù)據(jù)點中定義的存儲位置即文件目錄;5)如果該持久數(shù)據(jù)點中的是否包含初始數(shù)據(jù)項的值為真,則使用該持久數(shù)據(jù)點中定義的初始數(shù)據(jù)恢復方法恢復所備份的初始數(shù)據(jù)。以上過程可以在發(fā)起彈性虛擬機實例后,且在啟動任何應用之前,針對其中的全部應用的全部持久數(shù)據(jù)點進行。也可以在發(fā)起彈性虛擬機實例后,且在啟動任何單個應用之前,針對該單個應用的全部持久數(shù)據(jù)點進行。如本領域中所知的,在現(xiàn)有的云管理系統(tǒng)101中通常提供了用于創(chuàng)建、格式化、附接和掛載存儲卷的工具或功能,因此,本發(fā)明的裝置109可通過這些工具或功能實現(xiàn)存儲卷的創(chuàng)建、格式化、附接和掛載。在本發(fā)明的其他一些實施例中,在從主虛擬機映像發(fā)起一個彈性虛擬機實例后,可從主虛擬機映像的持久數(shù)據(jù)點目錄創(chuàng)建與該彈性虛擬機實例關聯(lián)的持久數(shù)據(jù)點目錄副本,并可將該持久數(shù)據(jù)點目錄副本與該虛擬機實例的標識相關聯(lián)地存儲起來,例如存儲在云管理系統(tǒng)101中的一非易失性存儲器中。這樣,本發(fā)明的裝置109將不是讀取主虛擬機映像的持久數(shù)據(jù)點目錄,而是讀取該彈性虛擬機實例的持久數(shù)據(jù)點目錄副本,并為其中的每一個啟用標志為真的持久數(shù)據(jù)點執(zhí)行上述操作I)-5)。在本發(fā)明的其他一些實施例中,也可以考慮由云管理系統(tǒng)101或本發(fā)明的裝置109預先創(chuàng)建和格式化具有不同大小和格式的存儲卷,這樣,就不再需要在此時創(chuàng)建和格式化存儲卷,而只需要根據(jù)持久數(shù)據(jù)點中定義的保留的存儲空間大小和文件系統(tǒng)格式選擇適當?shù)拇鎯?,并將所選擇的存儲卷附接到彈性虛擬機實例并掛載到持久數(shù)據(jù)點中定義的文件目錄。此外,還可以考慮本發(fā)明的裝置109將對所有的數(shù)據(jù)點使用相同大小和/或格式的存儲卷,這樣,就不再需要在數(shù)據(jù)點中定義保留的存儲空間大小和文件系統(tǒng)格式了,本發(fā)明的裝置109將直接使用預先創(chuàng)建的(或在發(fā)起彈性虛擬機實例后創(chuàng)建的)相同大小和/或格式的存儲卷進行附接和掛載。此外,本發(fā)明的裝置109還可將該彈性虛擬機實例的該持久數(shù)據(jù)點與該存儲卷之間的映射關系存儲起來,例如,存儲在云管理系統(tǒng)101中可由本發(fā)明的裝置109訪問的一非易失性存儲器中的一映射關系表中,以便將來使用,例如,如下所述,在該彈性虛擬機實例終止或發(fā)生故障后重新發(fā)起彈性虛擬機實例時使用。本發(fā)明的裝置109可在該映射關系表中相關聯(lián)地存儲彈性虛擬機實例的ID、持久數(shù)據(jù)點的名稱或ID、以及存儲卷的ID。圖6具體示出了根據(jù)本發(fā)明的實施例的發(fā)起彈性虛擬機實例的流程。如圖所示,在發(fā)出發(fā)起彈性虛擬機實例的命令后,在步驟301,使用彈性計算云API從主虛擬機映像發(fā)起一個彈性虛擬機實例。如何使用彈性計算云API從主映射像發(fā)起一個彈性虛擬機實例,這在本領域中是公知的,故在此不再贅述。在步驟302,從用于彈性虛擬機的持久數(shù)據(jù)點目錄讀取一個持久數(shù)據(jù)點。所述用于彈性虛擬機實例的持久數(shù)據(jù)點目錄或者是主虛擬機映像的持久數(shù)據(jù)點目錄(在由主虛擬機映像發(fā)起的所有彈性虛擬機實例共享主虛擬機映像的持久數(shù)據(jù)點目錄的情況下),或者是該彈性虛擬機實例的持久數(shù)據(jù)點目錄副本(在為每個彈性虛擬機實例生成一個持久數(shù)據(jù)點目錄副本的情況下)。在步驟303,判斷該持久數(shù)據(jù)點是否被啟用,即其啟用標志的值是否為真。如果該判斷為否,則執(zhí)行步驟307。如果該判斷為是,則執(zhí)行步驟304。在步驟304,執(zhí)行以下操作1)創(chuàng)建具有持久數(shù)據(jù)點中定義的保留的存儲空間大小的存儲卷;2)將存儲卷附接到虛擬機實例;3)使用持久數(shù)據(jù)點中定義的文件系統(tǒng)格式格式化存儲卷;4)將存儲卷掛載到數(shù)據(jù)點中定義的存儲位置即文件目錄。在步驟305,判斷持久數(shù)據(jù)點中是否指示存在初始數(shù)據(jù)。如果該判斷為否,則執(zhí)行步驟307。如果該判斷為是,則執(zhí)行步驟306。在步驟306,使用持久數(shù)據(jù)點中定義的(或以其他方式指定的)恢復命令恢復初始數(shù)據(jù)。
在步驟307,判斷彈性虛擬機的持久數(shù)據(jù)點目錄中是否存在更多的持久數(shù)據(jù)點。如果該判斷為是,則返回步驟302,從虛擬機的持久數(shù)據(jù)點目錄中讀取下一個持久數(shù)據(jù)點,并針對該下一個持久數(shù)據(jù)點再次執(zhí)行步驟303-307。如果該判斷為否,則執(zhí)行步驟308。在步驟308,存儲虛擬機實例的持久數(shù)據(jù)點與存儲卷之間的映射關系。例如,可將所述映射關系存儲在云管理系統(tǒng)101中的一個非易失存儲器中的映射關系表中,以便將來使用。在步驟309,在虛擬機實例中準備和啟動應用(包括修改應用配置以適應新的網(wǎng)絡環(huán)境,啟動應用等)。由于該步驟與本發(fā)明無關,故不在此詳述。這樣,應用就在虛擬機實例中運行起來。第(五)方面在虛擬機實例中的應用的運行過程中,云管理系統(tǒng)101將把應用的功能模塊所產生的用戶持久數(shù)據(jù)寫入相應的文件目錄(如在對應于該功能模塊的持久數(shù)據(jù)點中所指定的),從而直接寫入到所掛載的存儲卷中。當虛擬機實例發(fā)生故障或終止時,存儲卷中的數(shù)據(jù)將仍然存在。此后,可以從主虛擬機映像發(fā)起另一個虛擬機實例,并根據(jù)以上所述為發(fā)生故障或終止的虛擬機實例存儲的其持久數(shù)據(jù)點與存儲卷之間的映射關系,確定該發(fā)生故障或終止的虛擬機實例的所有存儲卷,將所有存儲卷(包含其存儲的用戶持久數(shù)據(jù))分別重新附接到該另一個虛擬機實例,并分別重新掛載到相應數(shù)據(jù)點中定義的文件目錄,從而實現(xiàn)虛擬機實例的恢復。圖7具體示出了根據(jù)本發(fā)明的實施例的恢復虛擬機實例的流程。如圖所示,在使用已終止的先前彈性虛擬機實例的ID發(fā)出恢復彈性虛擬機實例的命令之后,在步驟401,使用彈性計算云API從主虛擬機映像發(fā)起一個新的彈性虛擬機實例。此外,如上所述,在本發(fā)明的一實施例中,可在從主虛擬機映像發(fā)起彈性虛擬機實例時,從主虛擬機映像的持久數(shù)據(jù)點目錄生成一個用于該彈性虛擬機實例的持久數(shù)據(jù)點目錄副本。在步驟402,從用于該新的彈性虛擬機實例的持久數(shù)據(jù)點目錄(主虛擬機實例的持久數(shù)據(jù)點目錄,或者該新的彈性虛擬機實例的持久數(shù)據(jù)點目錄副本)讀取一個持久數(shù)據(jù)點。在步驟403,判斷對于先前彈性虛擬機實例,是否存在一個存儲卷映射到該持久數(shù)據(jù)點,并且該持久數(shù)據(jù)點對于先前彈性虛擬機實例是否是啟用的。在本發(fā)明的一個實施例中,可通過查詢在上述步驟308中存儲在映射關系表中的各彈性虛擬機實例的持久數(shù)據(jù)點與存儲卷之間的映射關系,來判斷對于先前彈性虛擬機實例是否存在一個存儲卷映射到該持久數(shù)據(jù)點。在本發(fā)明的一實施例中,可通過查詢所存儲的先前彈性虛擬機實例的持久數(shù)據(jù)點目錄副本中的該持久數(shù)據(jù)點的啟用標志值(或其他數(shù)據(jù)結構中的該持久數(shù)據(jù)點或相應的功能模塊是否啟用的標志),來判斷該持久數(shù)據(jù)點對于先前虛擬機實例是否是啟用的。如果步驟403的判斷為否,則執(zhí)行步驟405。如果步驟403的判斷為是,則執(zhí)行步驟 404。在步驟404,將在步驟403中判斷存在的存儲卷附接到所發(fā)起的新的彈性虛擬機實例,并將該存儲卷掛載到在該持久數(shù)據(jù)點中所定義的文件目錄。在步驟405,判斷用于新的彈性虛擬機實例的持久數(shù)據(jù)點目錄中是否還存在其他持久數(shù)據(jù)點。如果該判斷為是,則返回步驟402,從用于新的彈性虛擬機實例的持久數(shù)據(jù)點目錄讀取下一個持久數(shù)據(jù)點,并針對該下一個持久數(shù)據(jù)點,重新執(zhí)行步驟403-405。如果該判斷為否,則執(zhí)行步驟406。在步驟406,為該新的虛擬機實例存儲該持久數(shù)據(jù)點與該存儲卷之間的映射關系,并存儲持久數(shù)據(jù)點相應的啟用標志值。例如,將該映射關系更新到前述映射關系表,以替換先前虛擬機實例的該持久數(shù)據(jù)點與該存儲卷之間的映射關系,并且將相應的啟用標志值存儲在該新的虛擬機實例的持久數(shù)據(jù)點目錄副本或其他數(shù)據(jù)結構中。在步驟407,在該新的彈性虛擬機實例中準備和啟動的應用(修改應用配置以適應新的網(wǎng)絡環(huán)境,啟動應用等)。由于該步驟的內容與本發(fā)明無關,故不在此贅述。這樣,應用就在新的虛擬機實例中運行起來。第(六)方面如果在虛擬機發(fā)起之后,根據(jù)拓撲需求或客戶需求或任何其他需求,應用的某個已安裝但被禁止的功能模塊被啟用,則根據(jù)持久數(shù)據(jù)點目錄中的相關持久數(shù)據(jù)點中定義的參數(shù)創(chuàng)建、附接、格式化和掛載存儲卷。本發(fā)明的裝置109將為該虛擬機實例維護與該功能模塊相關的持久數(shù)據(jù)點的啟用標志的值為真。該啟用標志值將覆蓋主虛擬機映像的持久數(shù)據(jù)點目錄中的持久數(shù)據(jù)點的默認的啟用標志值。在本發(fā)明的一些實施例中,為該虛擬機實例生成和維護了持久數(shù)據(jù)點目錄副本,這樣,可以直接將該持久數(shù)據(jù)點目錄副本中的與該功能相關的持久數(shù)據(jù)點的啟用標志的值設置為真。在本發(fā)明的另一些實施例中,可以在為該虛擬機實例維護的其他數(shù)據(jù)結構中記錄該功能模塊已啟用。圖8具體示出了根據(jù)本發(fā)明的實施例的啟用功能模塊的流程。如圖所示,開始啟用彈性虛擬機實例中的一個應用的一個功能模塊之后,在步驟501,在用于該彈性虛擬機實例的持久數(shù)據(jù)點目錄中搜索用于該功能模塊的持久數(shù)據(jù)點,從而獲得包含用于該功能模塊的所有持久數(shù)據(jù)點(一個功能模塊可能有多個持久數(shù)據(jù)存儲位置,因此可能有多個持久數(shù)據(jù)點)的一搜索列表。接著,在步驟502,從搜索列表中讀取一個持久數(shù)據(jù)點。接著,在步驟503,判斷該持久數(shù)據(jù)點是否已被啟用(多個功能模塊可能共享同一個存儲位置,因而共享同一個持久數(shù)據(jù)點,因此,在該功能模塊未啟用時,其持久數(shù)據(jù)點有可能因共享該持久數(shù)據(jù)點的其他功能模塊的啟用而已被啟用)。如果該判斷為是,則執(zhí)行步驟508。如果該判斷為否,則執(zhí)行步驟504。如果為該彈性虛擬機實例生成和維護持久數(shù)據(jù)點目錄副本或其他數(shù)據(jù)結構,則可以在該持久數(shù)據(jù)點副本或其他數(shù)據(jù)結構中記錄每個數(shù)據(jù)點是否被啟用。這樣,可通過查詢該虛擬機實例的持久數(shù)據(jù)點目錄副本或其他數(shù)據(jù)結構來判斷所述持久數(shù)據(jù)點是否已被啟用。接著,在步驟504,判斷是否存在現(xiàn)有的存儲卷映射到該持久數(shù)據(jù)點(如果該功能模塊曾經(jīng)啟用和運行,但因虛擬機實例終止或其他原因被終止,則會存在現(xiàn)有的存儲卷映射到該持久數(shù)據(jù)點;此外,如果共享該持久數(shù)據(jù)點的其他功能模塊曾經(jīng)運行,但已被終止,則也會存在現(xiàn)有的存儲卷映射到該持久數(shù)據(jù)點)。可通過查詢以上步驟308中所存儲的映射關系表來判斷是否存在現(xiàn)有的存儲卷映射到該持久數(shù)據(jù)點。如果該判斷為是,則執(zhí)行步驟505。如果該判斷為否,則執(zhí)行步驟506。在步驟505,將現(xiàn)有的存儲卷附接到該彈性虛擬機實例,如果尚未附接的話(如果該功能模塊或共享該持久數(shù)據(jù)點的其他功能模塊曾經(jīng)運行,但已被終止,而該虛擬機實例未被終止,則現(xiàn)有的存儲卷會已經(jīng)附接到該虛擬機實例)。然后,執(zhí)行步驟507。在步驟506,使用該持久數(shù)據(jù)點中定義的保留的存儲空間大小創(chuàng)建一存儲卷;將該存儲卷附接到該彈性虛擬機實例;并使用該持久數(shù)據(jù)點中定義的文件系統(tǒng)格式格式化該存儲卷。然后,執(zhí)行步驟507。在步驟507,將該存儲卷掛載到該持久數(shù)據(jù)點中定義的存儲位置即文件目錄,如果尚未掛載的話(如果該功能模塊或共享該持久數(shù)據(jù)點的其他功能模塊曾經(jīng)運行,但已被終止,而該彈性虛擬機實例未被終止,則現(xiàn)有的存儲卷會已掛載到該文件目錄)。此外,在該彈性虛擬機實例的持久數(shù)據(jù)點目錄副本中將該持久數(shù)據(jù)點的啟用標志設置為真,或在為該虛擬機實例維護的其他數(shù)據(jù)結構中記錄該功能已啟用。接著,在步驟508,判斷在所述搜索列表中是否還有其他持久數(shù)據(jù)點。如果該判斷為是,則返回步驟502,針對下一個持久數(shù)據(jù)點,執(zhí)行步驟502-508。如果該判斷為否,則執(zhí)行步驟509。在步驟509,啟用該應用中的該功能模塊,并在需要時重啟應用以得到啟用的功倉泛。這樣,應用就帶著新啟用的功能運行起來。在本發(fā)明的一些實施例中,可以不包括上述在虛擬機發(fā)起之后,響應于應用的某個已安裝但被禁止的功能模塊被啟用,根據(jù)持久數(shù)據(jù)點目錄中的相關持久數(shù)據(jù)點中定義的參數(shù)創(chuàng)建、附接、格式化和掛載存儲卷的過程。本發(fā)明既適用于簡單的應用,例如企業(yè)資產管理服務云,其中一個虛擬機包含了所有組件;也適用于復雜的解決方案。本發(fā)明的解決方案的示例性說明下面以企業(yè)資產管理服務云應用為例詳細描述根據(jù)本發(fā)明的特定實施例的解決方案的步驟(一)在將一應用安裝到主虛擬機映像之前,使用元數(shù)據(jù)定義該應用的與功能模塊關聯(lián)的每個持久數(shù)據(jù)點。下面示出了該企業(yè)資產管理服務云應用的各持久數(shù)據(jù)點元數(shù)據(jù)定義<PersistentDataPoints application="Maximo SaaS">
<PersistentDataPoint name=" Maximo Instance Database"hasInitialData=,’true,’ enablement= "true">
<FunctionComponent>Base Service</FunctionComponent>
<Location>%MaximoInstanceDBLocation%</Location>
<ReservedSize>%ReservedSizeForMaximoInstanceDB%</Reser
vedSize>
<FileSystemFormat> %F ileSystemF o rmat %</F ileSystemF o rmat
權利要求
1.一種用于管理彈性虛擬機實例中的預安裝應用的持久數(shù)據(jù)的方法,包括 響應于將應用預安裝到主虛擬機映像中,獲得應用的功能模塊的持久數(shù)據(jù)點,所述持久數(shù)據(jù)點包括用于存儲所述功能模塊的持久數(shù)據(jù)的文件目錄; 響應于從所述主虛擬機映像發(fā)起彈性虛擬機實例,創(chuàng)建存儲卷,將所述存儲卷附接到所述彈性虛擬機實例,并根據(jù)所述持久數(shù)據(jù)點將所述存儲卷掛載到所述文件目錄。
2.根據(jù)權利要求1的方法,還包括 如果在將應用預安裝到主虛擬機映像后,所述文件目錄中包含應用的初始數(shù)據(jù),則備份所述初始數(shù)據(jù),并清空所述文件目錄;以及 在將所述存儲卷掛載到所述文件目錄后,將所備份的初始數(shù)據(jù)恢復到所述文件目錄。
3.根據(jù)權利要求1的方法,還包括 記錄所述持久數(shù)據(jù)點與所述存儲卷之間的映射關系; 當所述彈性虛擬機實例終止后,響應于從所述主虛擬機映像發(fā)起另一個彈性虛擬機實例,執(zhí)行以下操作 將所述存儲卷附接到所述另一個彈性虛擬機實例;以及 根據(jù)所記錄的所述持久數(shù)據(jù)點與所述存儲卷之間的映射關系,將所述存儲卷掛載到所述文件目錄。
4.根據(jù)權利要求1的方法,其中,所述持久數(shù)據(jù)點還包括保留的存儲空間大小和文件系統(tǒng)格式,且其中所述創(chuàng)建存儲卷包括 創(chuàng)建大小為所述保留的存儲空間大小的存儲卷;以及 將所述存儲卷格式化為所述文件系統(tǒng)格式。
5.根據(jù)權利要求2的方法,其中,所述持久數(shù)據(jù)點還包括 用于備份所述初始數(shù)據(jù)的命令;以及 用于恢復所述初始數(shù)據(jù)的命令。
6.根據(jù)權利要求1的方法,其中,所述持久數(shù)據(jù)點還包括啟用標志,用于表示是否啟用了應用的相應功能模塊,且所述創(chuàng)建、附接和掛載存儲卷是響應于判斷所述啟用標志的值為真執(zhí)行的。
7.根據(jù)權利要求6的方法,還包括 在發(fā)起所述彈性虛擬機實例之后,響應于啟用應用中已被禁止的功能模塊,根據(jù)該功能模塊的持久數(shù)據(jù)點創(chuàng)建存儲卷,將該存儲卷附接到所述彈性虛擬機實例,并將所述存儲卷掛載到該持久數(shù)據(jù)點包括的文件目錄。
8.根據(jù)權利要求1的方法,還包括 獲得應用的功能模塊的持久數(shù)據(jù)點的元數(shù)據(jù)定義;以及 響應于將應用預安裝到主虛擬機映像中,根據(jù)用戶的配置將應用的功能模塊的持久數(shù)據(jù)點的元數(shù)據(jù)定義實例化,從而獲得所述應用的功能模塊的持久數(shù)據(jù)點。
9.根據(jù)權利要求1的方法,其中,該方法是在云管理系統(tǒng)中實現(xiàn)的。
10.一種用于管理彈性虛擬機實例中的預安裝應用的持久數(shù)據(jù)的裝置,包括 持久數(shù)據(jù)點獲得模塊,其被配置為響應于將應用預安裝到主虛擬機映像中,獲得應用的功能模塊的持久數(shù)據(jù)點,所述持久數(shù)據(jù)點包括用于存儲所述功能模塊的持久數(shù)據(jù)的文件目錄;存儲卷管理器,其被配置為響應于從所述主虛擬機映像發(fā)起彈性虛擬機實例,創(chuàng)建存儲卷,將所述存儲卷附接到所述彈性虛擬機實例,并根據(jù)所述持久數(shù)據(jù)點將所述存儲卷掛載到所述文件目錄。
11.根據(jù)權利要求10的裝置,還包括初始數(shù)據(jù)備份/恢復管理器,其被配置為 如果在將應用預安裝到主虛擬機映像后,所述文件目錄中包含應用的初始數(shù)據(jù),則備份所述初始數(shù)據(jù),并清空所述文件目錄;以及 在將所述存儲卷掛載到所述文件目錄后,將所備份的初始數(shù)據(jù)恢復到所述文件目錄。
12.根據(jù)權利要求10的裝置,還包括映射關系記錄器,其被配置為記錄所述持久數(shù)據(jù)點與所述存儲卷之間的映射關系,且其中, 所述存儲卷管理器還被配置為 當所述彈性虛擬機實例終止后,從所述主虛擬機映像發(fā)起另一個彈性虛擬機實例; 將所述存儲卷附接到所述另一個彈性虛擬機實例;以及 根據(jù)所記錄的所述持久數(shù)據(jù)點與所述存儲卷之間的映射關系,將所述存儲卷掛載到所述文件目錄。
13.根據(jù)權利要求10的裝置,其中,所述持久數(shù)據(jù)點還包括保留的存儲空間大小和文件系統(tǒng)格式,且其中所述存儲卷管理器創(chuàng)建存儲卷包括 創(chuàng)建大小為所述保留的存儲空間大小的存儲卷;以及 將所述存儲卷格式化為所述文件系統(tǒng)格式。
14.根據(jù)權利要求11的裝置,其中,所述持久數(shù)據(jù)點還包括 用于備份所述初始數(shù)據(jù)的命令;以及 用于恢復所述初始數(shù)據(jù)的命令。
15.根據(jù)權利要求10的裝置,其中,所述持久數(shù)據(jù)點還包括啟用標志,用于表示是否啟用了應用的相應功能模塊,且所述存儲卷管理器創(chuàng)建、附接和掛載存儲卷是響應于判斷所述啟用標志的值為真執(zhí)行的。
16.根據(jù)權利要求15的裝置,其中,所述存儲卷管理器進一步被配置為 在發(fā)起所述彈性虛擬機實例之后,響應于啟用應用中已被禁止的功能模塊,根據(jù)該功能模塊的持久數(shù)據(jù)點創(chuàng)建存儲卷,將該存儲卷附接到所述彈性虛擬機實例,并將所述存儲卷掛載到該持久數(shù)據(jù)點包括的文件目錄。
17.根據(jù)權利要求10的裝置,還包括 持久數(shù)據(jù)點元數(shù)據(jù)定義獲得模塊,其被配置為獲得應用的功能模塊的持久數(shù)據(jù)點的元數(shù)據(jù)定義;且其中, 所述持久數(shù)據(jù)點獲得模塊進一步被配置為 響應于將應用預安裝到主虛擬機映像中,根據(jù)用戶的配置,將應用的功能模塊的持久數(shù)據(jù)點的元數(shù)據(jù)定義實例化,從而獲得所述應用的功能模塊的持久數(shù)據(jù)點。
18.根據(jù)權利要求1的裝置,其中,該裝置是在云管理系統(tǒng)中實現(xiàn)的。
全文摘要
公開了一種用于管理彈性虛擬機實例中的預安裝應用的持久數(shù)據(jù)的方法和裝置,該方法包括響應于將應用預安裝到主虛擬機映像中,獲得應用的功能模塊的持久數(shù)據(jù)點,所述持久數(shù)據(jù)點包括用于存儲所述功能模塊的持久數(shù)據(jù)的文件目錄;響應于從所述主虛擬機映像發(fā)起彈性虛擬機實例,創(chuàng)建存儲卷,將所述存儲卷附接到所述彈性虛擬機實例,并根據(jù)所述持久數(shù)據(jù)點將所述存儲卷掛載到所述文件目錄。
文檔編號G06F12/16GK103034453SQ20111029949
公開日2013年4月10日 申請日期2011年9月30日 優(yōu)先權日2011年9月30日
發(fā)明者張霞, 史曉斌, 劉昕鵬, 黃允松 申請人:國際商業(yè)機器公司