两个人的电影免费视频_国产精品久久久久久久久成人_97视频在线观看播放_久久这里只有精品777_亚洲熟女少妇二三区_4438x8成人网亚洲av_内谢国产内射夫妻免费视频_人妻精品久久久久中国字幕

用于虛擬設(shè)備的模型驅(qū)動的維護的方法和系統(tǒng)的制作方法

文檔序號:6377918閱讀:204來源:國知局
專利名稱:用于虛擬設(shè)備的模型驅(qū)動的維護的方法和系統(tǒng)的制作方法
技術(shù)領(lǐng)域
根據(jù)本發(fā)明的一個或多個實施例的解決方案一般涉及數(shù)據(jù)處理領(lǐng)域。更具體而言,此解決方案涉及虛擬設(shè)備。
背景技術(shù)
虛擬設(shè)備是特定類型的軟件設(shè)備。一般而言,軟件設(shè)備是包括封裝在預(yù)先構(gòu)建的獨立自備單元中的軟件應(yīng)用(即,執(zhí)行特定用戶任務(wù)的一個或多個應(yīng)用程序)以及剛剛足夠操作系統(tǒng),或JeOS (即,為支持軟件應(yīng)用專門定制的有限的操作系統(tǒng))的軟件解決方案;軟件設(shè)備提供簡化的管理以及改善的隔離(相對于在完全的通用操作系統(tǒng)上運行的標(biāo)準(zhǔn)軟件應(yīng)用)。具體而言,虛擬設(shè)備是被設(shè)計成在虛擬化環(huán)境中運行的軟件設(shè)備;為此目的,虛擬設(shè)備包括一個或多個虛擬機(即,通過物理機的軟件來仿真),每一個都帶有其操作系統(tǒng)以及應(yīng)用程序。虛擬設(shè)備允許以非常簡單而快速的方式來提供相應(yīng)的服務(wù)。每一虛擬設(shè)備(如任何其他軟件工件)在其生命周期內(nèi)常遭受連續(xù)的維護操作。具體而言,常常應(yīng)用修補以糾正錯誤或臨時解決地址安全問題。周期性地提供虛擬設(shè)備的新的版本或發(fā)行(合并所有可用的修補程序并提供新功能)。然而,虛擬設(shè)備的維護十分復(fù)雜;的確,在此情況下,維護一般需要對軟件組件的其整個堆棧(即,操作系統(tǒng)、應(yīng)用程序和/或虛擬機)的若干個更新。在包括多個應(yīng)用層的大型虛擬設(shè)備中該問題特別嚴(yán)重,每一個應(yīng)用層又都包括帶有相應(yīng)的操作系統(tǒng)以及應(yīng)用程序的多個虛擬機。為此目的,如US-A-2008/000037060 (此處包括了其完整的描述作為參考)所描述的,可以利用提供對其軟件組件的所有所需的更新的新虛擬設(shè)備替換整個虛擬設(shè)備。此外,如US-A-2008/0215796 (此處包括了其完整的描述作為參考)所描述的,可以利用“寫入時復(fù)制”技術(shù)來最小化替換虛擬設(shè)備要交換的數(shù)據(jù)的量。然而,此方法要求任何本地數(shù)據(jù)(例如,個人信息以及特定自定義)應(yīng)該適當(dāng)?shù)嘏c虛擬設(shè)備隔開;相反,替換虛擬設(shè)備將導(dǎo)致此本地數(shù)據(jù)的完全丟失。—些工具也可用于促進虛擬設(shè)備的管理。具體而言,廣泛地使用建模工具來設(shè)計和部署虛擬設(shè)備。例如,在“Model-Driven Application Deployment forCloud Computing Environments, White Paper, 2010 年 I 月,,(http: //wikis. sun,com/download/attachments/73401323/CloudPackaging-Final-100131, pdf )(此 處包括了其完整的描述作為參考)陳述了相應(yīng)的最佳實踐;市場上可用的用于建模虛擬設(shè)備的商用的工具是 IBM 公司的 IBM Tivoli Conguration Change Manager (IBM 公司的商標(biāo))。此夕卜,在 “FLEXVAPS:A SYSTEM FOR MANAGING VIRTUAL APPLIANCES INHETER0GENE0USVIRTUALIZED ENVIRONMENTS, Kreutz, D. Charao, A. , Grupo de Pesquisa emSist.de Informacao, Univ. Fed. do Pampa, Alegrete, Brazil, Network Operations andManagement Symposium, 2009. LANOMS 2009. Latin American, 2009 年 10 月 19-21,,(此處包括了其完整的描述作為參考)中公開了用于管理異質(zhì)基礎(chǔ)結(jié)構(gòu)中的虛擬設(shè)備的系統(tǒng),而在 “AN EFFECTIVE ARCHITECTURE FOR AUTOMATED APPLIANCE MANAGEMENT SYSTEMAPPLYING ONTOLOGY-BASED CLOUD DISCOVERY, Amir Vahid Dastjerdil, Sayed GholamHassan Tabatabaei, and Rajkumar Buyya, 201010thIEEE/ACM International Conferenceon Cluster, Cloud and Grid Computing”(此處包括了其完整的描述作為參考)中公開了用于基于本體技術(shù)來部署虛擬設(shè)備的體系結(jié)構(gòu)。具體而言,rPath公司所推出的商用工具rBuilder (rPath公司的商標(biāo))利用深度系統(tǒng)建模,以便以自動方式無縫地更新虛擬設(shè)備;此外,如果發(fā)生故障,虛擬設(shè)備被回滾到已知的良好狀態(tài)一例如,如 http://www. rpath. com/corp/images/stories/white_papers/WP_BestPractices. pdf 處的“BEST PRACTICES FOR BUILDINGVIRTUAL APPLIANCES”所描述(此處包括了其完整的描述作為參考)。此外,在US-A-2009/0300641 (此處包括了其完整的描述作為參考)中公開了用于創(chuàng)建虛擬設(shè)備的系統(tǒng)。在此情況下,當(dāng)提供任何軟件組件的更新版本時,向創(chuàng)建包括它們的虛擬設(shè)備的用戶發(fā)送相應(yīng)的通知,以便這樣的用戶可以重建帶有更新的軟件組件的相應(yīng)圖像(以便允許部署這些虛擬設(shè)備的任何用戶接收所有它們的軟件組件的正確版本);還可執(zhí)行測試,以驗證每一虛擬設(shè)備是否利用更新的軟件組件正確地表現(xiàn)(以及實現(xiàn)對虛擬設(shè)備的適應(yīng)更新的軟件組件所需的任何更改)。US-A-2010/0312865 (此處包括了其完整的描述作為參考)公開了用于更新虛擬設(shè)備的系統(tǒng),其中,客戶端周期性地聯(lián)系服務(wù)器以確定是否有新的更新可用。如果有,則客戶端下載用于替換虛擬設(shè)備的相應(yīng)部分的差異更新圖像;如果發(fā)生錯誤(例如,因為虛擬設(shè)備太舊難以直接應(yīng)用新的更新),則下載完整的更新圖像。在這兩種情況下,一旦用戶結(jié)束他/她與虛擬設(shè)備的會話,就將(差異或完整的)更新圖像應(yīng)用到客戶端上。最后,在US-A-2009/0249324 (此處包括了其完整的描述作為參考)中客戶端映射文件與安裝在客戶端上的每一虛擬設(shè)備相關(guān)聯(lián);客戶端映射文件包括虛擬設(shè)備的每一塊的散列值以及表示其在相應(yīng)圖像內(nèi)的位置的偏移。當(dāng)前映射文件同樣與服務(wù)器上的虛擬設(shè)備的最新版本相關(guān)聯(lián)。將當(dāng)前映射文件與客戶端映射文件進行比較,以確定已經(jīng)應(yīng)用于虛擬設(shè)備的更改,以便允許客戶端只從服務(wù)器下載虛擬設(shè)備的已經(jīng)更改的部分。然而,本領(lǐng)域內(nèi)已知的技術(shù)不具有一般適用性;實際上,這些技術(shù)嚴(yán)格地與虛擬設(shè)備的特定建模方案關(guān)聯(lián),以便它們不能應(yīng)用于任何其他虛擬設(shè)備。此外,當(dāng)對虛擬設(shè)備進行手動更新(獨立于其集中維護)時,已知的技術(shù)可能會產(chǎn)生問題。更具體而言,當(dāng)一些軟件組件已經(jīng)根據(jù)需要被更新時,這可能會導(dǎo)致無用的維護操作;相反,不希望有的手動更新可能會使虛擬設(shè)備進入集中維護不能檢測出的不一致的狀態(tài)。進一步的缺點是由于在它們的維護過程中虛擬設(shè)備的停機時間,該停機時間應(yīng)該保持得盡可能地短(特別是在關(guān)鍵應(yīng)用中)。

發(fā)明內(nèi)容
一般而言,根據(jù)本發(fā)明的一個或多個實施例的解決方案基于根據(jù)其實際狀態(tài)來驅(qū)動對虛擬設(shè)備的維護的思想。
具體而言,在獨立權(quán)利要求中闡述了根據(jù)本發(fā)明的特定實施例的解決方案的一個或多個方面,在從屬權(quán)利要求中闡述同一解決方案的有益特征,此處逐字地合并了其措詞作為參考(任何有益的特征都引用根據(jù)本發(fā)明的一個實施例的解決方案的對其每一個其他方面應(yīng)用必要的變更的特定方面)。更具體而言,根據(jù)本發(fā)明的一個實施例的解決方案的一個方面提供用于維護虛擬設(shè)備的方法;虛擬設(shè)備包括一組軟件組件,每一個軟件組件都安裝在相應(yīng)的虛擬機上。該方法包括下列步驟。提供維護描述符,包括要被更新到其上的軟件組件中的至少每一個的新級別的指示。對于在所述維護描述符中所指示的每一個軟件組件,確定安裝在所述相應(yīng)的虛擬機上的所述軟件組件的當(dāng)前級別。根據(jù)所述相應(yīng)的當(dāng)前級別以及新級別之間的比較,確定要被實際更新的所述軟件組件的一組舊軟件組件。然后,克隆虛擬設(shè)備。通過將每一舊軟件組件更新到所述新級別,來更新所述克隆的虛擬設(shè)備?,F(xiàn)在將虛擬設(shè)備替換為更新的克隆的虛擬設(shè)備。根據(jù)本發(fā)明的一個實施例的解決方案的另一方面提供相應(yīng)的計算機程序。根據(jù)本發(fā)明的一個實施例的解決方案的再一個方面提供相應(yīng)的計算機程序產(chǎn)品。根據(jù)本發(fā)明的一個實施例的解決方案的一個不同的方面提供相應(yīng)的系統(tǒng)。


根據(jù)本發(fā)明的一個或多個實施例的解決方案,以及其進一步特征以及優(yōu)點,通過參考純粹地作為非限制性的指示給出的要與各個附圖一起閱讀的下面的詳細描述,將被最佳地理解(其中,為簡單起見,相應(yīng)的元件利用相同或類似的附圖標(biāo)記來表示,不重復(fù)對它們的說明,每一實體的名稱一般用來表示其類型以及其屬性——諸如值,內(nèi)容以及表示形式)。具體而言圖1示出了根據(jù)本發(fā)明的一個實施例的解決方案適用于的數(shù)據(jù)處理基礎(chǔ)結(jié)構(gòu)的圖形表示,圖2示出了此數(shù)據(jù)處理基礎(chǔ)結(jié)構(gòu)的一般性計算機的示意框圖,圖3A-圖3F示出了根據(jù)本發(fā)明的一個實施例的解決方案的應(yīng)用的示例性情形,以及圖4示出了表示可以被用來實現(xiàn)根據(jù)本發(fā)明的一個實施例的解決方案的主要軟件模塊的角色的協(xié)作圖示。
具體實施例方式現(xiàn)在參考圖1,示出了根據(jù)本發(fā)明的一個實施例的解決方案的數(shù)據(jù)處理基礎(chǔ)結(jié)構(gòu)100的圖形表示。數(shù)據(jù)處理基礎(chǔ)結(jié)構(gòu)100具有基于網(wǎng)絡(luò)105—例如,因特網(wǎng)的分布式體系結(jié)構(gòu)。多個物理和/或虛擬機通過網(wǎng)絡(luò)105 —個與另一個地連接。具體而言,一個或多個提供商機器110管理虛擬設(shè)備的部署以及它們的維護。每一虛擬設(shè)備都安裝在一個或多個用戶機器115上。為此目的,每一用戶機器115都包括虛擬化層(或虛擬機監(jiān)控程序),該虛擬化層模仿一個或多個虛擬機(每一個虛擬機都包括抽象環(huán)境,給出虛擬機對其具有唯一控制的物理機的外觀);商用虛擬化層的一個示例是VMWare公司推出的VMWareESX (VMWare公司的商標(biāo))。每一虛擬設(shè)備都包括一個或多個虛擬機(在一個或多個用戶機器115上運行);每一虛擬機又包括定義其軟件平臺(例如,JeOS)的操作系統(tǒng),以及一個或多個在操作系統(tǒng)上運行的應(yīng)用程序。移到圖2,示出了此數(shù)據(jù)處理基礎(chǔ)結(jié)構(gòu)的一般性計算機200的示意框圖。計算機200(用來實現(xiàn)上文所提及的物理機或虛擬機)由并聯(lián)到系統(tǒng)總線205的多個單元所形成(帶有根據(jù)數(shù)據(jù)處理基礎(chǔ)結(jié)構(gòu)中的計算機200的實際功能適當(dāng)?shù)乜s放的結(jié)構(gòu))。詳細地,一個或多個微處理器(U P)210控制計算機200的操作;RAM 215被微處理器210用作工作存儲器,而ROM 220存儲用于計算機200的自舉的基本代碼。多個外圍單元圍繞本地總線225 (通過相應(yīng)接口)而聚集。具體而言,大容量存儲器包括一個或多個硬盤230以及用于讀取DVD或⑶-ROM 240的驅(qū)動器235。此外,計算機200包括輸入單元245 (例如,鍵盤以及鼠標(biāo)),以及輸出單元250 (例如,監(jiān)視器以及打印機)。網(wǎng)絡(luò)適配器255被用來將計算機連接到網(wǎng)絡(luò)(圖中未示出)。橋單元260將系統(tǒng)總線205連接到本地總線225。每一微處理器210和橋單元260都可以作為請求訪問系統(tǒng)總線205以便傳輸信息的主代理(master agent)來操作。判優(yōu)器265管理對系統(tǒng)總線205的訪問的允許,帶有相互排斥。在圖3A-圖3F中示出了根據(jù)本發(fā)明的一個實施例的解決方案的應(yīng)用的示例性情形。從圖3A開始,通用虛擬設(shè)備305 (安裝在一個或多個用戶機上,圖中未示出)包括三個虛擬機VMa、VMb和VMc。虛擬機VMa包括兩個軟件組件SWa和SWb (每一個軟件組件都包括操作系統(tǒng)或者應(yīng)用程序);軟件組件SWa處于級別L2,軟件組件SWb處于級別L4 (例如,通過它們的版本和/或發(fā)行來定義)。而虛擬機VMb包括級別LI處的軟件組件SWc,級別L5處的軟件組件SWd,以及級別L3處的軟件組件SWe。最后,虛擬機VMc包括級別L3處的軟件組件SWf,級別L2處的軟件組件SWg。在根據(jù)本發(fā)明的一個實施例的解決方案中,虛擬設(shè)備305的維護是由維護描述符310驅(qū)動的(例如,當(dāng)提供虛擬設(shè)備的更新時,從發(fā)布它的虛擬設(shè)備的提供商機器中檢索)。維護描述符310包括應(yīng)該被更新到新級別的軟件組件的列表(一般包括其修復(fù)問題,解決安全性問題和/或添加進一步功能的升級)。在所涉及的示例中,維護描述符310表示軟件組件SWa應(yīng)該被更新到級別L3,軟件組件SWd應(yīng)該被更新到級別L5,以及軟件組件SWf應(yīng)該被更新到級別L4。移到圖3B,對于在維護描述符310中所指示的每一個軟件組件,確定虛擬設(shè)備305中一即,在它被安裝在其中的虛擬機上一的其當(dāng)前級別(例如,通過在其虛擬機上運行在維護描述符310中所指示的相應(yīng)的發(fā)現(xiàn)命令)。在此情況下,操作確定軟件組件SWa處于級別L2,軟件組件SWd處于級別L5,而軟件組件SWf處于級別L3。現(xiàn)在參考圖3C,根據(jù)相應(yīng)的當(dāng)前級別(如上面所發(fā)現(xiàn)的)以及新級別(如在維護描述符310中所指示的)一例如,當(dāng)當(dāng)前級別不同于新級別時一之間的比較,確定虛擬設(shè)備305中的應(yīng)該實際被更新的(舊)軟件組件。在所涉及的示例中,軟件組件SWa應(yīng)該被從級別L2更新到級別L3,以及軟件組件SWf應(yīng)該被從級別L3更新到級別L4 ;相反,軟件組件SWd不需要執(zhí)行任何動作,因為它已經(jīng)在所希望的級別L5處。如圖3D所示,虛擬設(shè)備305被克隆為虛擬設(shè)備315—在下文中,被稱為當(dāng)前虛擬設(shè)備305和克隆的虛擬設(shè)備315,以彼此區(qū)別(例如,通過請求托管相應(yīng)的虛擬機的用戶機器的虛擬機監(jiān)控程序熱克隆它們)。
繼續(xù)到圖3E,在克隆的虛擬設(shè)備315中,每一要被更新的軟件組件(即,軟件組件Sffa和SWf )都被置于所希望的級別(即,對于軟件組件SWa,級別L3,以及對于軟件組件SWf,級別L4) 一例如,通過下載相應(yīng)的維護包并將它們應(yīng)用到相應(yīng)的虛擬機。此時,參見圖3F,當(dāng)前虛擬設(shè)備305被替換為(更新的)克隆的虛擬設(shè)備315 (軟件組件SWa和SWf現(xiàn)在分別處于級別L3和L4)。上文所描述的根據(jù)本發(fā)明的一個實施例的解決方案具有一般適用性;具體而言,此技術(shù)不與虛擬設(shè)備的任何建模方案關(guān)聯(lián),以便它可以被應(yīng)用于任何虛擬設(shè)備(甚至在它們不基于任何模型的情況下)。此外,虛擬設(shè)備的維護現(xiàn)在基于它們的安裝的實際狀態(tài)(考慮可能已經(jīng)被應(yīng)用到其上的任何可能的手動更新)。具體而言,這避免了無用的維護操作(當(dāng)一些軟件組件已經(jīng)根據(jù)需要被更新時),它還可去除將使虛擬設(shè)備進入不一致狀態(tài)的不希望有的手動更新。所提出的技術(shù)縮短了虛擬設(shè)備在其維護期間的停機時間。實際上,更新現(xiàn)在被應(yīng)用于克隆的虛擬設(shè)備,而當(dāng)前虛擬設(shè)備可以同時被維護一一般需要的其關(guān)閉只用于將它替換為克隆的虛擬設(shè)備(一旦應(yīng)用了所希望的更新)。轉(zhuǎn)到圖4,示出了表示可以被用來實現(xiàn)根據(jù)本發(fā)明的一個實施例的解決方案的主要軟件模塊的角色的協(xié)作圖示。這些軟件模塊被利用附圖標(biāo)記400表示為一個整體。當(dāng)程序正在運行時,信息(程序和數(shù)據(jù))通常存儲在硬盤中,并被(至少部分地)加載到相應(yīng)的(虛擬或物理)機的工作存儲器中。程序最初例如從DVD-ROM安裝到每一硬盤上。具體而言,圖形描述了軟件模塊的靜態(tài)結(jié)構(gòu)以及它們的動態(tài)行為(通過一系列交換消息,每一個交換消息都表不相應(yīng)的動作,以序列號前面帶有符號“A”來表不)。具體而言,虛擬設(shè)備的維護由維護機器405 (運行維護管理器,下面將詳細描述)來管理;維護機器405包括(通過網(wǎng)絡(luò),圖中未示出)連接到部署了虛擬設(shè)備(圖中只示出了一個)的提供商機器110以及其中安裝了虛擬設(shè)備(圖中只示出了一個)的用戶機器115的物理或虛擬機。維護機器405存儲包括每一個虛擬設(shè)備的部署描述符410 (通過相應(yīng)的虛擬設(shè)備標(biāo)識符來標(biāo)識一例如,全局唯一標(biāo)識符,或GUID)的儲存庫,該儲存庫在其控制下安裝在用戶機器115上一例如,符合開放虛擬化格式(OVF)規(guī)范。每當(dāng)提供每一虛擬設(shè)備的新級別時,在相應(yīng)的提供商機器110上發(fā)布一個或多個維護包415以及維護描述符420。每一維護包415都包括用來更新虛擬設(shè)備的相應(yīng)軟件組件的文件。維護描述符420包括用于處理虛擬設(shè)備的更新的信息(如下面所描述)。具體而言,維護描述符420包括虛擬設(shè)備的虛擬設(shè)備標(biāo)識符,等于相應(yīng)的部署描述符410中所包含的那個。此外,維護描述符420包括虛擬設(shè)備的新級別的指示(例如,對于其版本Nv以及發(fā)行Nr,以形式Nv. Nr)。然后,維護描述符420包括虛擬設(shè)備的所有軟件組件的列表(例如,其操作系統(tǒng)以及應(yīng)用程序),每一個軟件組件都通過軟件組件被安裝在其中的虛擬機的名稱以及虛擬機標(biāo)識符來標(biāo)識。對于每一個軟件組件,維護描述符420表示其新級別一例如,對于其版本Nv以及發(fā)行Nr,也是以形式Nv. Nr。然后,維護描述符420包括要用于發(fā)現(xiàn)軟件組件的當(dāng)前級別的發(fā)現(xiàn)命令(或更多),相應(yīng)的維護包的下載地址,一組(一個或多個)要用于在相應(yīng)的虛擬機上應(yīng)用維護包的更新命令,以及一組(一個或多個)要用于驗證在應(yīng)用維護包之后驗證虛擬設(shè)備的正確性的驗證命令(如下面所描述)。維護管理器的監(jiān)視器425周期性地(例如,每天晚上)從相應(yīng)的部署描述符410提取虛擬設(shè)備標(biāo)識符以及每一虛擬設(shè)備的維護地址(動作“Al.提取”)。然后,監(jiān)視器425對于虛擬設(shè)備,驗證是否有新維護描述符420可用(在相應(yīng)的維護地址處);例如,此結(jié)果可以通過向維護地址提交相應(yīng)的查詢來實現(xiàn)一該查詢包括虛擬設(shè)備標(biāo)識符以及最后一個維護描述符的級別,如果有的話,它們已經(jīng)應(yīng)用于同一個虛擬設(shè)備,如監(jiān)視器425記錄的(動作“A2.監(jiān)視”)。當(dāng)有新維護描述符420可用于任何虛擬設(shè)備時(S卩,其級別高于其最后一個維護描述符的一個,或者沒有維護描述符應(yīng)用于其)一例如,如在返回到相應(yīng)的查詢的響應(yīng)中所指示的一監(jiān)視器425將此維護描述符下載到維護機器405上,其中,它用附圖標(biāo)記430來表示(動作“A3.下載”)。然后,維護描述符430被維護管理器的發(fā)現(xiàn)器435訪問。對于維護描述符430中所指示的每一個軟件組件,發(fā)現(xiàn)器435提取相應(yīng)的名稱、虛擬機標(biāo)識符以及發(fā)現(xiàn)命令(動作“A4.提取”)。然后,發(fā)現(xiàn)器435在用戶機器115上安裝的虛擬設(shè)備(用附圖標(biāo)記440來表示)的相應(yīng)的虛擬機(通過其虛擬機標(biāo)識符來表示)上執(zhí)行每一發(fā)現(xiàn)命令,以便發(fā)現(xiàn)相應(yīng)的軟件組件的當(dāng)前級別。例如,發(fā)現(xiàn)命令可以包括當(dāng)被提交時直接返回軟件組件的當(dāng)前級別的查詢;可另選地,發(fā)現(xiàn)命令可以包括必須從其虛擬機中檢索的軟件組件的簽名的指示。發(fā)現(xiàn)器435將虛擬設(shè)備440的所有軟件組件(每一個軟件組件都通過其名稱以及虛擬機標(biāo)識符來標(biāo)識)的當(dāng)前級別保存到發(fā)現(xiàn)列表445中(動作“A5.發(fā)現(xiàn)”)。維護管理器的比較器450訪問維護描述符430以及發(fā)現(xiàn)列表445。比較器450比較虛擬設(shè)備440 (通過相同名稱以及虛擬機標(biāo)識符來標(biāo)識)的每一軟件組件的當(dāng)前級別(來自發(fā)現(xiàn)列表445)以及新級別(來自維護描述符430),以便確定虛擬設(shè)備440中的實際需要更新的軟件組件。對于其新級別不同于其當(dāng)前級別的每一個(舊)軟件組件,比較器450將相應(yīng)的名稱以及虛擬機標(biāo)識符添加到更新列表455中(動作“A6.比較”)。如此,由于始終驗證虛擬設(shè)備440的所有軟件組件,因此可以確定虛擬設(shè)備440所需的任何類型的更新;具體而言,這確保虛擬設(shè)備 始終被置于一致狀態(tài)(例如,去除任何不希望有的手動更新)。如果更新列表455是空的,則在虛擬設(shè)備440上不需要執(zhí)行任何動作(由于所有其軟件組件都已經(jīng)在所希望的級別)。相反,必須更新虛擬設(shè)備440的一個或多個軟件組件。在此情況下,要應(yīng)用于虛擬設(shè)備440的更新的摘要(例如,表示要被更新的每一軟件組件的名稱以及虛擬機標(biāo)識符,以及其當(dāng)前級別以及新級別)被通知給系統(tǒng)管理員;如果系統(tǒng)管理員批準(zhǔn)更新,則他/她調(diào)度它們的應(yīng)用(立即或者稍后)?!┑竭_更新的調(diào)度時間,維護管理器的下載器460就訪問維護描述符430以及更新列表455。對于更新列表455中所指示的每一個軟件組件,下載器460從維護描述符430中提取相應(yīng)的下載器地址(動作“A7.提取”)。然后,下載器460將軟件組件的維護包415從其下載地址下載到維護機405上,其中,它用附圖標(biāo)記465來表示(動作“AS.下載”)。在克隆虛擬設(shè)備440之前下載所有維護包465確保此操作盡可能最遲地執(zhí)行(以便最小化在應(yīng)用維護包465期間可能向其應(yīng)用的任何數(shù)據(jù)更改)。此時,維護管理器的更新器470將(當(dāng)前)虛擬設(shè)備440克隆到(克隆的)虛擬設(shè)備475中;例如,此結(jié)果可以通過請求用戶機115的虛擬機監(jiān)控程序來熱克隆其虛擬機來實現(xiàn)一即,無需關(guān)閉它們,以便避免停止相應(yīng)的服務(wù)(例如,如http://smkelly. live journal.com/66017, html 處的 “Take a hot clone of a virtual machine in ESX server” 或http://vmetc. com/2008/05/26/cloning-a-running-virtual-machine-using-the-service-console/ 處的 “Cloning a running Virtual Machine using the Service Console,,所描述,此處包括了其完整的描述作為參考)??寺〉奶摂M設(shè)備475連接到與當(dāng)前虛擬設(shè)備440的網(wǎng)絡(luò)分離的維護網(wǎng)絡(luò)(例如,虛擬局域網(wǎng),或VLAN),以便避免任何沖突(動作“A9.克隆”)。對于更新列表455中所指示的每一個軟件組件,更新器470從維護描述符430中提取相應(yīng)的更新命令(動作“A10.提取”)。然后,更新器470在相應(yīng)的虛擬機上應(yīng)用所有維護包465,以將相應(yīng)的軟件組件帶到它們的新級別。為此目的,更新器470首先打開克隆的虛擬設(shè)備475。對于更新列表455中所指示的每一個軟件組件,更新器470將其維護包465復(fù)制到克隆的虛擬設(shè)備475中的相應(yīng)的虛擬機。然后,更新器470在此虛擬機上執(zhí)行相應(yīng)的更新命令。例如,更新命令包括用于安裝維護包465的安裝命令,以及用于配置相應(yīng)的軟件組件以及其虛擬機的配置命令,以及可能的任何其他相關(guān)軟件組件和虛擬機(動作“All.更新”)。一旦所有維護包465都已經(jīng)被應(yīng)用于克隆的虛擬設(shè)備475,維護管理器的驗證器480就從維護描述符430中提取更新列表465中所指示的每一軟件組件的驗證命令(動作“A12.提取”)。然后,驗證器480在克隆的虛擬設(shè)備475中的其虛擬機上執(zhí)行每一軟件組件的驗證命令,以確定相應(yīng)的維護包465的應(yīng)用的正確性。此時,驗證器480關(guān)閉克隆的虛擬設(shè)備475 (動作“A13.驗證”)。如果驗證的結(jié)果對于所有軟件組件都是肯定的(意思是說,克隆的虛擬設(shè)備475都已經(jīng)正確地被置于其新級別),則更新器470關(guān)閉當(dāng)前虛擬設(shè)備440。然后,更新器470確定在其克隆之后已經(jīng)被應(yīng)用于當(dāng)前虛擬設(shè)備440的任何數(shù)據(jù)更改一例如,通過掃描從克隆的時間開始的相應(yīng)記錄(動作“A14.掃描”)。更新器470將這些數(shù)據(jù)更改應(yīng)用到克隆的虛擬設(shè)備475,以便將它與當(dāng)前虛擬設(shè)備440重新同步(動作“A15.同步”)。這會防止在更新過程中丟失在當(dāng)前虛擬設(shè)備440中可能已經(jīng)發(fā)生的對本地數(shù)據(jù)的任何改變(以及克隆的虛擬設(shè)備475無法覺察到的)。此時,更新器470將當(dāng)前虛擬設(shè)備440替換為克隆的虛擬設(shè)備475 (更新到其新級別,并與當(dāng)前虛擬設(shè)備440的數(shù)據(jù)更改同步);為此目的,當(dāng)前虛擬設(shè)備440被丟棄,而克隆的虛擬設(shè)備475通過將其維護網(wǎng)絡(luò)切換到在生產(chǎn)中使用的實際網(wǎng)絡(luò)而被打開(動作“A16a.替換”)。相反,當(dāng)在克隆的虛擬設(shè)備475中檢測到一個或多個錯誤時,驗證器480丟棄克隆的虛擬設(shè)備475,以便繼續(xù)無縫地使用當(dāng)前虛擬設(shè)備440 (動作“A16b.丟棄”);如此,更新過程以事務(wù)式的方式執(zhí)行,如果在更新過程中檢測到錯誤的話,將已經(jīng)被應(yīng)用(到克隆的虛擬設(shè)備475)的更新回滾。自然,為了滿足本地和特定要求,所屬技術(shù)領(lǐng)域的專業(yè)人員可以將許多邏輯和/或物理修改和更改應(yīng)用于上文所描述的解決方案。更具體而言,雖然是以一定程度的細節(jié)并參考其一個或多個實施例來描述此解決方案的,但是應(yīng)該理解,在形式和細節(jié)方面的各種省略、替換和變化以及其他實施例都是可以的。具體而言,本發(fā)明的不同的實施例甚至可以在沒有前面的描述中所闡述的具體細節(jié)(諸如數(shù)值)的情況下實施,以提供對本發(fā)明的全面理解;相反,還省略或簡化了已知的特征,以便不致以不需要的細節(jié)使描述模糊。此外,很明確,參考所公開的解決方案的任何實施例所描述的特定元素和/或方法步驟可以作為一般設(shè)計選擇被包含在任何其他實施例中。在任何情況下,術(shù)語“包括”,“具有”和“包含”(以及其任何形式)應(yīng)該是開放的,非詳盡的含義(即,不僅限于所列舉的項目),術(shù)語“基于”,“依賴于”,“根據(jù)”(以及其任何形式)應(yīng)該是非排他性的關(guān)系(即,涉及可能的進一步的變化),術(shù)語“一個”應(yīng)該是一個或多個項目(除非明確地指出)。更一般而言,本發(fā)明的一個實施例提供了用于維護虛擬設(shè)備的方法。如果相同解決方案利用等效的方法來實現(xiàn)(通過使用帶有更多步驟或其一些部分的相同功能的類似的步驟,去除非基本的一些步驟,或添加進一步的可選步驟),類似的考慮也適用;此外,各步驟可以以不同的順序,同時或以交錯的方式(至少部分地)執(zhí)行。虛擬設(shè)備可以包括任何數(shù)量(一個或多個)的任何軟件組件(例如,操作系統(tǒng)、應(yīng)用程序、配置文件等等),每一個軟件組件都安裝在相應(yīng)的虛擬機上。在本發(fā)明的一個實施例中,提供了維護描述符;維護描述符包括待更新到其上的軟件組件中的(至少)每一個的新級別的任何指示(例如,它們的版本和/或發(fā)行編號或日期)。對于在所述維護描述符中所指示的每一個軟件組件,確定安裝在所述相應(yīng)的虛擬機上的所述軟件組件的當(dāng)前級別。根據(jù)所述相應(yīng)的當(dāng)前級別以及新級別之間的比較,確定要被實際更新的所述軟件組件的一組舊軟件組件??寺√摂M設(shè)備(優(yōu)選地,以熱方式一即使不排除任何其他克隆模式)。然后,通過將每一舊軟件組件更新到相應(yīng)的新級別,來更新克隆的虛擬設(shè)備。此時,將虛擬設(shè)備替換為更新的克隆的虛擬設(shè)備。在本發(fā)明的一個實施例中,維護描述符包括所有所述軟件組件中的每一個軟件組件的新級別的指示。在任何情況下,不排除其中維護描述符只包括已經(jīng)相對于虛擬設(shè)備的前一級別(或更多)而更新的軟件組件的基本實現(xiàn)。在本發(fā)明的一個實施例中,虛擬設(shè)備與包括虛擬設(shè)備的設(shè)備標(biāo)識符的設(shè)備描述符相關(guān)聯(lián),以及維護描述符與所述設(shè)備標(biāo)識符相關(guān)聯(lián)。在此情況下,通過從設(shè)備描述符中提取設(shè)備標(biāo)識符,并檢索與設(shè)備標(biāo)識符相關(guān)聯(lián)的維護描述符,來檢索維護描述符。然而,如果以不同的方式來定義設(shè)備標(biāo)識符,或者如果以任何其他方式來檢索維護描述符(甚至獨立于相應(yīng)的虛擬設(shè)備的任何設(shè)備描述符),類似的考慮也適用。在本發(fā)明的一個實施例中,設(shè)備描述符還包括維護描述符的維護地址;在此情況下,通過從維護地址下載維護描述符來檢索它。可另選地,沒有任何東西阻止從已經(jīng)從其中部署了相應(yīng)的虛擬設(shè)備的相同地址下載維護描述符。在本發(fā)明的一個實施例中,通過監(jiān)視維護地址,以了解比已經(jīng)成功地在所述虛擬設(shè)備上應(yīng)用的最后一個維護描述符更新的新維護描述符的可用性,來檢索維護描述符。可另選地,可以以任何其他方式(例如,簡單地通過其時間戳)來定義維護描述符的級別;此外,還可以手動觸發(fā)對維護描述符的可用性的驗證。在本發(fā)明的一個實施例中,對于維護描述符中所指示的每一個軟件組件,一組(一個或多個)發(fā)現(xiàn)命令被包括在維護描述符內(nèi);在此情況下,對于維護描述符中所指示的每一個軟件組件,確定安裝在相應(yīng)的虛擬機上的軟件組件的當(dāng)前級別的步驟包括從維護描述符中提取相應(yīng)的發(fā)現(xiàn)命令,以及在相應(yīng)的虛擬機上執(zhí)行相應(yīng)的發(fā)現(xiàn)命令。類似的考慮適用于任何其他發(fā)現(xiàn)命令(例如,簡單地基于相應(yīng)的文件的時間戳);在任何情況下,也可以以不同的方式來發(fā)現(xiàn)軟件組件的當(dāng)前級別,甚至獨立于維護描述符(例如,通過外部掃描儀)。在本發(fā)明的一個實施例中,對于維護描述符中所指示的每一個軟件組件,下載地址被包括在維護描述符內(nèi);在此情況下,更新克隆的虛擬設(shè)備包括從維護描述符中提取相應(yīng)的下載地址,從相應(yīng)的下載地址下載舊軟件組件的維護包,以及在相應(yīng)的虛擬機上應(yīng)用維護包??闪磉x地,沒有任何東西阻止從已經(jīng)從其中檢索了相應(yīng)的維護描述符的相同地址下載維護包;此外,也可以以不同的方式來更新軟件組件(例如,通過利用軟件分發(fā)應(yīng)用)。在本發(fā)明的一個實施例中,對于維護描述符中所指示的每一個軟件組件,一組(一個或多個)更新命令被包括在維護描述符內(nèi);在此情況下,更新克隆的虛擬設(shè)備包括從維護描述符中提取相應(yīng)的更新命令,以及在相應(yīng)的虛擬機上執(zhí)行相應(yīng)的更新命令。如果提供了類似的和/或替換的更新命令(例如,用于準(zhǔn)備軟件組件),則類似的考慮也適用;然而,也可以通過簡單地啟動相應(yīng)的維護包,來更新軟件組件,無需任何附加命令。在本發(fā)明的一個實施例中,該方法還包括驗證更新的克隆的虛擬設(shè)備的正確性,以及響應(yīng)于肯定的驗證結(jié)果,允許虛擬設(shè)備替換為更新的克隆的虛擬設(shè)備,或否則丟棄更新的克隆的虛擬設(shè)備。然而,不排除手動驗證更新的克隆的虛擬設(shè)備的基本實現(xiàn)。在本發(fā)明的一個實施例中,對于維護描述符中所指示的每一個軟件組件,一組(一個或多個)驗證命令被包括在維護描述符內(nèi);在此情況下,驗證更新的克隆的虛擬設(shè)備的正確性包括從維護描述符中提取相應(yīng)的驗證命令,以及在相應(yīng)的虛擬機上執(zhí)行相應(yīng)的驗證命令。如上所述,也可以以不同的方式來驗證更新的克隆的虛擬設(shè)備,甚至獨立于維護描述符(例如,通過其內(nèi)置的測試功能一甚至簡單地在整體虛擬設(shè)備的級別)。在本發(fā)明的一個實施例中,該方法還包括在克隆虛擬設(shè)備的步驟和將虛擬設(shè)備替換為更新的克隆的虛擬設(shè)備的步驟之間確定已經(jīng)應(yīng)用于虛擬設(shè)備的本地數(shù)據(jù)的數(shù)據(jù)更改,以及將數(shù)據(jù)更改應(yīng)用到已替換的虛擬設(shè)備。如果以不同的方式(例如,通過微分過程)執(zhí)行重新同步,則類似的考慮也適用;在任何情況下,也可以在更新過程中簡單地防止對本地數(shù)據(jù)的任何改變(以便避免其重新同步的需求)。本發(fā)明的另一實施例提供計算機程序,該計算機程序包括用于當(dāng)在數(shù)據(jù)處理系統(tǒng)上執(zhí)行計算機程序時導(dǎo)致數(shù)據(jù)處理系統(tǒng)(例如,用戶機器)執(zhí)行上文所描述的方法的步驟的代碼裝置。本發(fā)明的另一實施例提供包括具體化計算機程序的非瞬時計算機可讀介質(zhì)(例如,DVD-ROM)的計算機程序產(chǎn)品;該計算機程序包括可直接加載到數(shù)據(jù)處理系統(tǒng)的工作存儲器中從而配置數(shù)據(jù)處理系統(tǒng)執(zhí)行相同方法的代碼裝置。在任何情況下,所提出的解決方案可以被實現(xiàn)為獨立的模塊,或者甚至直接實現(xiàn)在每一虛擬設(shè)備中。應(yīng)該容易地看出,還可以將相同解決方案部署為通過網(wǎng)絡(luò)訪問的服務(wù)。如果以不同的方式構(gòu)建程序(該程序可以被用來實現(xiàn)本發(fā)明的每一實施例),或者如果提供額外的模塊或功能,類似的考慮也適用;同樣,存儲器結(jié)構(gòu)可以是其他類型,或者可以替換為相當(dāng)?shù)膶嶓w(不一定包括物理存儲介質(zhì))。程序可以呈現(xiàn)適合于被任何數(shù)據(jù)處理系統(tǒng)所使用的或與其一起使用的任何形式(例如,在虛擬機內(nèi)),從而配置系統(tǒng)以執(zhí)行所希望的操作;具體而言,程序可以是外部或常駐軟件、固件,或微代碼(目標(biāo)代碼或源代碼的形式一一例如,待編譯的或者解釋的)的形式。此外,還可以在任何計算機可使用的介質(zhì)上提供程序(具體而言,作為非瞬時介質(zhì)上的制品);介質(zhì)可以是適合于包含、存儲、傳遞、傳播或傳輸程序的任何元件。例如,介質(zhì)可以是電子、磁性、光學(xué)、電磁、紅外或半導(dǎo)體類型;這樣的介質(zhì)的示例有固定盤(其中可以預(yù)先加載程序),可移動磁盤、帶、卡、線路、光纖、無線連接、網(wǎng)絡(luò)、廣播波等等。在任何情況下,根據(jù)本發(fā)明的一個實施例的解決方案有助于甚至利用硬件結(jié)構(gòu)(例如,集成在半導(dǎo)體材料的芯片中),或利用被適當(dāng)?shù)鼐幊袒蛞詣e的方式配置的軟件和硬件的組合來實現(xiàn)。本發(fā)明的另一實施例提供包括用于執(zhí)行上文所描述的方法的步驟的裝置的系統(tǒng)(例如,用戶機器)。如果系統(tǒng)具有不同的結(jié)構(gòu)或包括相當(dāng)?shù)慕M件,或者它具有其他操作的特征,則類似的考慮也適用。在任何情況下,其每個組件都可以被分成更多元件,或者兩個或更多組件可以結(jié)合為單個元件;此外,每一組件都可以被復(fù)制以支持相應(yīng)的操作并行地執(zhí)行。還指出(除非特別指明),不同的組件之間的任何交互一般不需要是連續(xù)的,它可以是直接的或者通過一個或多個中介間接的。
權(quán)利要求
1.一種用于維護包括一組軟件組件的虛擬設(shè)備的方法(Al-A16b),每一個組件都安裝在相應(yīng)的虛擬機上,所述方法包括下列步驟 收集(A1-A3)包括要被更新到其上的至少每一個所述軟件組件的新級別的指示的維護描述符, 對于在所述維護描述符中所指示的每一個軟件組件,確定(A4-A5)安裝在所述相應(yīng)的虛擬機上的所述軟件組件的當(dāng)前級別, 根據(jù)所述相應(yīng)的當(dāng)前級別和新級別之間的比較,確定(A6)要被實際更新的所述軟件組件的一組舊軟件組件, 克隆(A9)所述虛擬設(shè)備, 通過將其每一舊軟件組件更新到所述新級別,來更新(A7-A8,AlO-1 I)所述克隆的虛擬設(shè)備,以及 通過所述更新的克隆的虛擬設(shè)備,來替換(A16a)所述虛擬設(shè)備。
2.根據(jù)權(quán)利要求1所述的方法(Al-A16b),其中,所述維護描述符包括所有所述軟件組件中的每一個軟件組件的所述新級別的指示。
3.根據(jù)權(quán)利要求1或2所述的方法(Al-A16b),其中,所述虛擬設(shè)備與包括所述虛擬設(shè)備的設(shè)備標(biāo)識符的設(shè)備描述符相關(guān)聯(lián),以及所述維護描述符與所述設(shè)備標(biāo)識符相關(guān)聯(lián),檢索(A1-A3)維護描述符的步驟包括 從所述設(shè)備描述符提取(Al)所述設(shè)備標(biāo)識符,以及 檢索(A2-A3)與所述設(shè)備標(biāo)識符相關(guān)聯(lián)的所述維護描述符。
4.根據(jù)權(quán)利要求1到3中任一權(quán)利要求所述的方法(Al-A16b),其中,所述設(shè)備描述符還包括所述維護描述符的維護地址,檢索(A1-A3)維護描述符的步驟包括 從所述維護地址下載(A3)所述維護描述符。
5.根據(jù)權(quán)利要求4所述的方法(Al-A16b),其中,檢索(A1-A3)維護描述符的步驟包括 監(jiān)視(A2)所述維護地址,以了解比已經(jīng)成功地在所述虛擬設(shè)備上應(yīng)用的最后一個維護描述符更新的新維護描述符的可用性。
6.根據(jù)權(quán)利要求1到5中任一權(quán)利要求所述的方法(Al-A16b),其中,對于所述維護描述符中所指示的每一個軟件組件,一組發(fā)現(xiàn)命令被包括在所述維護描述符內(nèi),對于所述維護描述符中所指示的每一個軟件組件,所述確定(A4-A5)安裝在所述相應(yīng)的虛擬機上的所述軟件組件的當(dāng)前級別的步驟包括 從所述維護描述符提取(A4)所述相應(yīng)的發(fā)現(xiàn)命令,以及 在所述相應(yīng)的虛擬機上執(zhí)行(A5)所述相應(yīng)的發(fā)現(xiàn)命令。
7.根據(jù)權(quán)利要求1到6中任一權(quán)利要求所述的方法(Al-A16b),其中,對于所述維護描述符中所指示的每一個軟件組件,下載地址被包括在所述維護描述符內(nèi),通過將所述克隆的虛擬設(shè)備的每一舊軟件組件更新到所述新級別來更新(A7-A8,A10-11)所述克隆的虛擬設(shè)備的步驟包括 從所述維護描述符提取(A7)所述相應(yīng)的下載地址, 從所述相應(yīng)的下載地址下載(AS)所述舊軟件組件的維護包,以及 在所述相應(yīng)的虛擬機上應(yīng)用(AlO-All)所述維護包。
8.根據(jù)權(quán)利要求1到7中任一權(quán)利要求所述的方法(Al-A16b),其中,對于所述維護描述符中所指示的每一個軟件組件,一組更新命令被包括在所述維護描述符內(nèi),通過將所述克隆的虛擬設(shè)備的每一舊軟件組件更新到所述新級別來更新(A7-A8,A10-11)所述克隆的虛擬設(shè)備的步驟包括 從所述維護描述符提取(AlO)所述相應(yīng)的更新命令,以及 在所述相應(yīng)的虛擬機上執(zhí)行(Al I)所述相應(yīng)的更新命令。
9.根據(jù)權(quán)利要求1到8中任一權(quán)利要求所述的方法(Al-A16b),還包括下列步驟 驗證(A12-A13)所述更新的克隆的虛擬設(shè)備的正確性,以及 響應(yīng)于所述驗證的肯定結(jié)果,允許(A16a)所述虛擬設(shè)備替換為所述更新的克隆的虛擬設(shè)備,或否則丟棄(A16b)所述更新的克隆的虛擬設(shè)備。
10.根據(jù)權(quán)利要求9所述的方法(Al-A16b),其中,對于所述維護描述符中所指示的每一個軟件組件,一組驗證命令被包括在所述維護描述符內(nèi),驗證(A12-A13 )所述更新的克隆的虛擬設(shè)備的正確性的步驟包括 從所述維護描述符提取(A12)所述相應(yīng)的驗證命令,以及 在所述相應(yīng)的虛擬機上執(zhí)行(A13)所述相應(yīng)的驗證命令。
11.根據(jù)權(quán)利要求1到10中任一權(quán)利要求所述的方法(Al-A16b),還包括下列步驟 在所述克隆(A9)所述虛擬設(shè)備的步驟和所述將所述虛擬設(shè)備替換(A16a)為所述更新的克隆的虛擬設(shè)備的步驟之間確定(A14)要應(yīng)用于所述虛擬設(shè)備的本地數(shù)據(jù)的數(shù)據(jù)更改,以及 將所述數(shù)據(jù)更改應(yīng)用(A15)到所述被替換的虛擬設(shè)備。
12.—種包括用于執(zhí)行根據(jù)權(quán)利要求1到11中任一權(quán)利要求所述的方法(Al-A16b)的步驟的裝置(400)的系統(tǒng)(I 15)。
全文摘要
本發(fā)明涉及用于虛擬設(shè)備的模型驅(qū)動的維護的方法和系統(tǒng)。提出用于維護包括一組軟件組件的虛擬設(shè)備的解決方案,每一個軟件組件都安裝在相應(yīng)的虛擬機上。方法(A1-A16b)包括提供(A1-A3)包括要被更新到其上的至少每一個軟件組件的新級別的指示的維護描述符,對于在所述維護描述符中所指示的每一個軟件組件,確定(A4-A5)安裝在相應(yīng)的虛擬機上的軟件組件的當(dāng)前級別,根據(jù)相應(yīng)的當(dāng)前級別和新級別之間的比較,確定(A6)要被實際更新的軟件組件的一組舊軟件組件,克隆(A9)所述虛擬設(shè)備,通過將其每一舊軟件組件更新到新級別,來更新(A7-A8,A10-11)克隆的虛擬設(shè)備,以及通過更新的克隆的虛擬設(shè)備,來替換(A16a)所述虛擬設(shè)備。
文檔編號G06F9/455GK103034523SQ20121036666
公開日2013年4月10日 申請日期2012年9月28日 優(yōu)先權(quán)日2011年10月5日
發(fā)明者M·阿爾塞斯, G·西亞諾, A·D·科克, L·皮切蒂, M·米列斯基 申請人:國際商業(yè)機器公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1
湘阴县| 维西| 沾化县| 沅江市| 道孚县| 朝阳区| 酒泉市| 恭城| 克山县| 双城市| 耿马| 壶关县| 林西县| 中西区| 讷河市| 萝北县| 南宁市| 太湖县| 郑州市| 彰化市| 右玉县| 桃源县| 孝昌县| 潍坊市| 健康| 西昌市| 成武县| 河北省| 静海县| 博乐市| 宁波市| 陈巴尔虎旗| 内黄县| 新密市| 安多县| 东源县| 辰溪县| 华宁县| 三江| 乌拉特中旗| 基隆市|