背景技術(shù):
計(jì)算系統(tǒng)已變成泛在的,其范圍從小型嵌入式設(shè)備到電話和平板型設(shè)備到pc和后端服務(wù)器。這些計(jì)算系統(tǒng)中的每個計(jì)算系統(tǒng)被設(shè)計(jì)為對軟件代碼進(jìn)行處理。軟件允許用戶執(zhí)行功能,與由計(jì)算系統(tǒng)提供的硬件交互。在一些情況下,這些計(jì)算系統(tǒng)允許用戶建立和運(yùn)行虛擬機(jī)。這些虛擬機(jī)可以提供未被主機(jī)操作系統(tǒng)提供的功能,或者可以包括完全不同的操作系統(tǒng)。這樣,虛擬機(jī)可以被用于擴(kuò)展計(jì)算系統(tǒng)的功能。
技術(shù)實(shí)現(xiàn)要素:
本文中描述的實(shí)施例涉及備份虛擬機(jī)集群和在備份虛擬機(jī)集群之前確定虛擬機(jī)節(jié)點(diǎn)所有權(quán)。在一個實(shí)施例中,一種計(jì)算機(jī)系統(tǒng)確定哪些虛擬機(jī)節(jié)點(diǎn)是所述虛擬機(jī)集群的部分,確定哪些共享存儲資源是所述虛擬機(jī)集群的部分,以及確定哪些虛擬機(jī)節(jié)點(diǎn)擁有所述共享存儲資源。計(jì)算機(jī)系統(tǒng)然后向虛擬機(jī)節(jié)點(diǎn)擁有者指示將在所述虛擬機(jī)集群的節(jié)點(diǎn)上使至少一個指定的應(yīng)用停頓(quiesce),以使得可以創(chuàng)建一致的集群范圍檢查點(diǎn)。計(jì)算機(jī)系統(tǒng)進(jìn)一步創(chuàng)建包括針對虛擬機(jī)集群中的每個虛擬機(jī)的檢查點(diǎn)的集群范圍檢查點(diǎn)。創(chuàng)建一致的集群范圍檢查點(diǎn)降低該系統(tǒng)內(nèi)的存儲要求,因?yàn)槠浔苊鈫为?dú)地備份每個虛擬機(jī)。此外,由于每個虛擬機(jī)不是被單獨(dú)地備份的,所以節(jié)省了用于那些備份中的每個備份的處理資源,允許這些資源被用在其它地方,并且提高其它項(xiàng)目的處理速度。
在另一個實(shí)施例中,一種計(jì)算機(jī)系統(tǒng)執(zhí)行用于在備份虛擬機(jī)集群之前確定虛擬機(jī)節(jié)點(diǎn)所有權(quán)的方法。計(jì)算機(jī)系統(tǒng)確定對于虛擬機(jī)集群內(nèi)的至少一個共享存儲資源而言所有權(quán)已變更,并且標(biāo)識共享存儲資源的至少一個潛在的新?lián)碛姓?。?jì)算機(jī)系統(tǒng)確定哪些虛擬機(jī)節(jié)點(diǎn)擁有共享存儲資源,并且向虛擬機(jī)節(jié)點(diǎn)擁有者指示將在所述虛擬機(jī)集群的節(jié)點(diǎn)上使至少一個指定的應(yīng)用停頓,以使得可以創(chuàng)建一致的集群范圍檢查點(diǎn)。計(jì)算機(jī)系統(tǒng)然后創(chuàng)建包括針對虛擬機(jī)集群中的每個共享存儲設(shè)備的檢查點(diǎn)的集群范圍虛擬機(jī)檢查點(diǎn)。
提供本概要以便以簡化形式介紹下面在詳細(xì)說明中進(jìn)一步描述的概念的選擇。本概要不旨在標(biāo)識所要求保護(hù)的主題的關(guān)鍵特征或者必要特征,其也不旨在被用作在確定所要求保護(hù)的主題的范圍時(shí)的輔助。
附加特征和優(yōu)點(diǎn)將在隨后的說明中被闡明,并且部分上將是對于本領(lǐng)域的技術(shù)人員而言從說明中顯而易見的,或者可以通過實(shí)踐本文中的教導(dǎo)被習(xí)得。本文中描述的實(shí)施例的特征和優(yōu)點(diǎn)可以通過在所附權(quán)利要求中具體指出的儀器和組合來實(shí)現(xiàn)和獲得。從下面的說明和所附的權(quán)利要求中,本文中描述的實(shí)施例的特征將變得顯而易見。
附圖說明
為進(jìn)一步澄清本文中描述的實(shí)施例的以上和其它的特征,將參考附圖給予更具體的說明。應(yīng)當(dāng)認(rèn)識到,這些圖僅描繪了本文中描述的實(shí)施例的示例,并且因此將不被看作對其范圍的限制。將通過使用附圖在具有附加特異性和細(xì)節(jié)的情況下描述和解釋實(shí)施例,其中:
圖1圖示了包括備份虛擬機(jī)集群的本文中描述的實(shí)施例可以在其中運(yùn)行的計(jì)算機(jī)架構(gòu)。
圖2圖示了用于備份虛擬機(jī)集群的示例方法的流程圖。
圖3圖示了用于在備份虛擬機(jī)集群之前確定虛擬機(jī)節(jié)點(diǎn)所有權(quán)的示例方法的流程圖。
圖4圖示了其中虛擬機(jī)集群內(nèi)的虛擬機(jī)節(jié)點(diǎn)停機(jī)并且所有權(quán)變更節(jié)點(diǎn)的實(shí)施例。
圖5圖示了其中在虛擬機(jī)節(jié)點(diǎn)中被實(shí)例化的代理創(chuàng)建針對多個共享存儲資源的檢查點(diǎn)的實(shí)施例。
具體實(shí)施方式
本文中描述的實(shí)施例涉及備份虛擬機(jī)集群和在備份虛擬機(jī)集群之前確定虛擬機(jī)節(jié)點(diǎn)所有權(quán)。在一個實(shí)施例中,計(jì)算機(jī)系統(tǒng)確定哪些虛擬機(jī)節(jié)點(diǎn)是虛擬機(jī)集群的部分,確定哪些共享存儲資源是虛擬機(jī)集群的部分,以及確定哪些虛擬機(jī)節(jié)點(diǎn)擁有共享存儲資源。計(jì)算機(jī)系統(tǒng)然后向虛擬機(jī)節(jié)點(diǎn)擁有者指示將在虛擬機(jī)集群的節(jié)點(diǎn)上使至少一個指定的應(yīng)用停頓,以使得可以創(chuàng)建一致的集群范圍檢查點(diǎn)。計(jì)算機(jī)系統(tǒng)進(jìn)一步創(chuàng)建包括針對虛擬機(jī)集群中的每個虛擬機(jī)的檢查點(diǎn)的集群范圍檢查點(diǎn)。
在另一個實(shí)施例中,計(jì)算機(jī)系統(tǒng)執(zhí)行用于在備份虛擬機(jī)集群之前確定虛擬機(jī)節(jié)點(diǎn)所有權(quán)的方法。計(jì)算機(jī)系統(tǒng)確定對于虛擬機(jī)集群內(nèi)的至少一個共享存儲資源而言所有權(quán)已變更,并且標(biāo)識共享存儲資源的至少一個潛在的新?lián)碛姓?。?jì)算機(jī)系統(tǒng)確定哪些虛擬機(jī)節(jié)點(diǎn)擁有共享存儲資源,并且向虛擬機(jī)節(jié)點(diǎn)擁有者指示將在虛擬機(jī)集群的節(jié)點(diǎn)上使至少一個指定的應(yīng)用停頓,以使得可以創(chuàng)建一致的集群范圍檢查點(diǎn)。計(jì)算機(jī)系統(tǒng)然后創(chuàng)建包括針對虛擬機(jī)集群中的每個共享存儲設(shè)備的檢查點(diǎn)的集群范圍虛擬機(jī)檢查點(diǎn)。
下面的討論現(xiàn)在涉及可以被執(zhí)行的一些方法和方法動作。應(yīng)當(dāng)指出,盡管方法動作可以按照特定的次序被討論或者在流程圖中被圖示為按照具體的次序發(fā)生,但除非專門指出或者由于一個動作在該動作被執(zhí)行之前取決于另一個動作被完成而是必需的,否則沒有任何具體的次序是必需的。
本文中描述的實(shí)施例可以實(shí)現(xiàn)各種類型的計(jì)算系統(tǒng)。這些計(jì)算系統(tǒng)現(xiàn)在日益采用多種多樣的形式。計(jì)算系統(tǒng)例如可以是諸如是智能電話或者特征電話之類的手持型設(shè)備、家電、膝上型計(jì)算機(jī)、可穿戴設(shè)備、臺式計(jì)算機(jī)、大型機(jī)、分布式計(jì)算系統(tǒng)或者甚至常規(guī)上還未被看作計(jì)算系統(tǒng)的設(shè)備。在本說明和權(quán)利要求中,術(shù)語“計(jì)算系統(tǒng)”被寬泛地定義為包括包括至少一個物理的且有形的處理器和能夠在其上具有可以被處理器執(zhí)行的計(jì)算機(jī)可執(zhí)行指令的物理的且有形的存儲器的任何設(shè)備或者系統(tǒng)(或者其組合)。計(jì)算系統(tǒng)可以被分布在網(wǎng)絡(luò)環(huán)境上,并且可以包括多個成員計(jì)算系統(tǒng)。
如在圖1中圖示的,計(jì)算系統(tǒng)101通常包括至少一個處理單元102和存儲器103。存儲器103可以是物理系統(tǒng)存儲器,物理系統(tǒng)存儲器可以是易失性的、非易失性的或者這兩者的某種組合。術(shù)語“存儲器”在本文中可以還被用于指諸如是物理存儲介質(zhì)之類的非易失性大容量存儲裝置。如果計(jì)算系統(tǒng)是分布式的,則處理、存儲器和/或存儲能力可以也是分布式的。
如本文中使用的,術(shù)語“可執(zhí)行模塊”或者“可執(zhí)行組件”可以指可以在計(jì)算系統(tǒng)上被執(zhí)行的軟件對象、例程或者方法。本文中描述的不同的組件、模塊、引擎和服務(wù)可以被實(shí)現(xiàn)為在計(jì)算系統(tǒng)上執(zhí)行(例如,作為單獨(dú)的線程)的對象或者進(jìn)程。
在隨后的說明中,參考被一個或多個計(jì)算系統(tǒng)執(zhí)行的動作描述了實(shí)施例。如果這樣的動作用軟件來實(shí)現(xiàn),則執(zhí)行動作的關(guān)聯(lián)的計(jì)算系統(tǒng)的一個或多個處理器響應(yīng)于具有被執(zhí)行的計(jì)算機(jī)可執(zhí)行指令指引計(jì)算系統(tǒng)的操作。例如,這樣的計(jì)算機(jī)可執(zhí)行指令可以被體現(xiàn)在形成計(jì)算機(jī)程序產(chǎn)品的一個或多個計(jì)算機(jī)可讀介質(zhì)上。這樣的操作的示例涉及對數(shù)據(jù)的操縱??梢詫⒂?jì)算機(jī)可執(zhí)行指令(和被操縱的數(shù)據(jù))存儲在計(jì)算系統(tǒng)101的存儲器103中。計(jì)算系統(tǒng)101還可以包含允許計(jì)算系統(tǒng)101通過有線或者無線網(wǎng)絡(luò)與其它消息處理器通信的通信信道。
本文中描述的實(shí)施例可以包括或者使用包括例如諸如是如下面詳細(xì)討論的一個或多個處理器和系統(tǒng)存儲器之類的計(jì)算機(jī)硬件的專用或者通用計(jì)算機(jī)系統(tǒng)??梢詫⑾到y(tǒng)存儲器包括在總體存儲器103內(nèi)。系統(tǒng)存儲器也可以被稱為“主存儲器”,并且包括可由至少一個處理單元102通過存儲器總線尋址的存儲器位置,在這種情況下,在存儲器總線自身上斷言地址位置。系統(tǒng)存儲器傳統(tǒng)上是易失性的,但本文中描述的原理也適用于系統(tǒng)存儲器是部分上或者甚至完全非易失性的情況。
本發(fā)明的范圍內(nèi)的實(shí)施例還包括用于攜帶或者存儲計(jì)算機(jī)可執(zhí)行指令和/或數(shù)據(jù)結(jié)構(gòu)的物理的和其它的計(jì)算機(jī)可讀介質(zhì)。這樣的計(jì)算機(jī)可讀介質(zhì)可以是可以被通用或者專用計(jì)算機(jī)系統(tǒng)訪問的任何可用介質(zhì)。存儲計(jì)算機(jī)可執(zhí)行指令和/或數(shù)據(jù)結(jié)構(gòu)的計(jì)算機(jī)可讀介質(zhì)是計(jì)算機(jī)存儲介質(zhì)。攜帶計(jì)算機(jī)可執(zhí)行指令和/或數(shù)據(jù)結(jié)構(gòu)的計(jì)算機(jī)可讀介質(zhì)是傳輸介質(zhì)。因此,通過示例而非限制,本發(fā)明的實(shí)施例可以包括至少兩種完全不同種類的計(jì)算機(jī)可讀介質(zhì):計(jì)算機(jī)存儲介質(zhì)和傳輸介質(zhì)。
計(jì)算機(jī)存儲介質(zhì)是存儲計(jì)算機(jī)可執(zhí)行指令和/或數(shù)據(jù)結(jié)構(gòu)的物理硬件存儲介質(zhì)。物理硬件存儲介質(zhì)包括計(jì)算機(jī)硬件,所述計(jì)算機(jī)硬件諸如是ram、rom、eeprom、固態(tài)驅(qū)動器(“ssd”)、閃存、相變存儲器(“pcm”)、光盤存儲裝置、磁盤存儲裝置或者其它(一個或者多個)磁性存儲設(shè)備、或者可以被用于存儲采用計(jì)算機(jī)可執(zhí)行指令或者數(shù)據(jù)結(jié)構(gòu)的形式的程序代碼的任何其它(一個或者多個)硬件存儲設(shè)備,所述計(jì)算機(jī)可執(zhí)行指令或者數(shù)據(jù)結(jié)構(gòu)可以被通用或者專用計(jì)算機(jī)系統(tǒng)訪問和執(zhí)行以實(shí)現(xiàn)本發(fā)明的所公開的功能。
傳輸介質(zhì)可以包括可以被用于攜帶采用計(jì)算機(jī)可執(zhí)行指令或者數(shù)據(jù)結(jié)構(gòu)的形式的程序代碼并且可以被通用或者專用計(jì)算機(jī)系統(tǒng)訪問的網(wǎng)絡(luò)和/或數(shù)據(jù)鏈路?!熬W(wǎng)絡(luò)”被定義為使得能進(jìn)行計(jì)算機(jī)系統(tǒng)和/或模塊和/或其它電子設(shè)備之間的電子數(shù)據(jù)傳輸?shù)囊粋€或多個數(shù)據(jù)鏈路。在通過網(wǎng)絡(luò)或者另一種通信連接(硬連線、無線或者硬連線或者無線的組合)向計(jì)算機(jī)系統(tǒng)傳輸或者提供信息時(shí),計(jì)算機(jī)系統(tǒng)可以將連接看作傳輸介質(zhì)。以上各項(xiàng)的組合也應(yīng)當(dāng)被包括在計(jì)算機(jī)可讀介質(zhì)的范圍內(nèi)。
進(jìn)一步地,在到達(dá)各種計(jì)算機(jī)系統(tǒng)部件時(shí),采用計(jì)算機(jī)可執(zhí)行指令或者數(shù)據(jù)結(jié)構(gòu)的形式的程序代碼可以自動地從傳輸介質(zhì)被傳輸?shù)接?jì)算機(jī)存儲介質(zhì)(或者反之亦然)。例如,通過網(wǎng)絡(luò)或者數(shù)據(jù)鏈路接收的計(jì)算機(jī)可執(zhí)行指令或者數(shù)據(jù)結(jié)構(gòu)可以被緩沖在網(wǎng)絡(luò)接口模塊(例如,“nic”)內(nèi)的ram中,并且然后最終被傳輸?shù)接?jì)算機(jī)系統(tǒng)ram和/或計(jì)算機(jī)系統(tǒng)處的較非易失性的計(jì)算機(jī)存儲介質(zhì)。因此,應(yīng)當(dāng)理解,可以將計(jì)算機(jī)存儲介質(zhì)包括在也(或者甚至主要地)使用傳輸介質(zhì)的計(jì)算機(jī)系統(tǒng)部件中。
計(jì)算機(jī)可執(zhí)行指令例如包括當(dāng)在一個或多個處理器處被執(zhí)行時(shí)導(dǎo)致通用計(jì)算機(jī)系統(tǒng)、專用計(jì)算機(jī)系統(tǒng)或者專用處理設(shè)備執(zhí)行特定的功能或者功能組的指令和數(shù)據(jù)。計(jì)算機(jī)可執(zhí)行指令可以例如是二進(jìn)制文件、諸如是匯編語言之類的中間格式指令或者甚至源代碼。
本領(lǐng)域的技術(shù)人員將認(rèn)識到,本文中描述的原理可以在具有許多類型的計(jì)算機(jī)系統(tǒng)配置的網(wǎng)絡(luò)計(jì)算環(huán)境中被實(shí)踐,所述計(jì)算機(jī)系統(tǒng)配置包括個人計(jì)算機(jī)、臺式計(jì)算機(jī)、膝上型計(jì)算機(jī)、消息處理器、手持型設(shè)備、多處理器系統(tǒng)、基于微處理器的或者可編程的消費(fèi)電子、網(wǎng)絡(luò)pc、微型計(jì)算機(jī)、大型計(jì)算機(jī)、移動電話、pda、平板型設(shè)備、尋呼機(jī)、路由器、交換機(jī)等。本發(fā)明還可以在通過網(wǎng)絡(luò)被鏈接(通過硬連線數(shù)據(jù)鏈路、無線數(shù)據(jù)鏈路或者通過硬連線和無線數(shù)據(jù)鏈路的組合)的本地和遠(yuǎn)程計(jì)算機(jī)系統(tǒng)兩者執(zhí)行任務(wù)的分布式系統(tǒng)環(huán)境中被實(shí)踐。因此,在分布式系統(tǒng)環(huán)境中,一個計(jì)算機(jī)系統(tǒng)可以包括多個成員計(jì)算機(jī)系統(tǒng)。在分布式系統(tǒng)環(huán)境中,可以將程序模塊放置在本地和遠(yuǎn)程存儲器存儲設(shè)備兩者中。
本領(lǐng)域的技術(shù)人員還將認(rèn)識到,本發(fā)明可以在云計(jì)算環(huán)境中被實(shí)踐。云計(jì)算環(huán)境可以是分布式的,盡管這不是必需的。在是分布式的時(shí),云計(jì)算環(huán)境可以被國際化地分布在組織內(nèi)和/或具有跨多個組織地?fù)碛械牟考?。在本說明和下面的權(quán)利要求中,“云計(jì)算”被定義為用于使得能進(jìn)行對可配置計(jì)算資源(例如,網(wǎng)絡(luò)、服務(wù)器、存儲裝置、應(yīng)用和服務(wù))的共享池的按需網(wǎng)絡(luò)訪問的模型?!霸朴?jì)算”的定義不限于在被正確地部署時(shí)可以從這樣的模型獲得的其它許多優(yōu)點(diǎn)中的任何優(yōu)點(diǎn)。
仍然進(jìn)一步地,本文中描述的系統(tǒng)架構(gòu)可以包括多個獨(dú)立的部件,其每個為作為整體的系統(tǒng)的功能做貢獻(xiàn)。該模塊化在處理平臺可伸縮性的問題時(shí)允許增加的靈活性,并且為此提供多種優(yōu)點(diǎn)??梢酝ㄟ^使用具有有限的功能范圍的較小規(guī)模的部分更容易地管理系統(tǒng)復(fù)雜度和增長。通過使用這些松耦合的模塊增強(qiáng)了平臺故障容忍度??梢噪S著業(yè)務(wù)需求指示而遞增地使單個部件增長。模塊化開發(fā)還轉(zhuǎn)化成減少的新功能上市時(shí)間??梢栽诓挥绊懞诵南到y(tǒng)的情況下添加或者減除新功能。
圖1圖示了可以在其中使用至少一個實(shí)施例的計(jì)算機(jī)架構(gòu)100。計(jì)算機(jī)架構(gòu)100包括計(jì)算機(jī)系統(tǒng)101。計(jì)算機(jī)系統(tǒng)101可以是包括云計(jì)算系統(tǒng)的任何類型的本地或者分布式計(jì)算機(jī)系統(tǒng)。計(jì)算機(jī)系統(tǒng)101包括用于執(zhí)行多種不同的功能的模塊。例如,通信模塊104可以被配置為與其它計(jì)算系統(tǒng)通信。通信模塊104可以包括可向或者從其它計(jì)算系統(tǒng)接收和/或發(fā)射數(shù)據(jù)的任何有線或者無線通信裝置。通信模塊104可以被配置為與數(shù)據(jù)庫、移動計(jì)算設(shè)備(諸如是移動電話或者平板型設(shè)備)、嵌入式或者其它類型的計(jì)算系統(tǒng)交互。
計(jì)算機(jī)系統(tǒng)101可以包括檢查點(diǎn)生成模塊106。檢查點(diǎn)生成模塊106可以被配置為生成檢查點(diǎn)或者快照。這些檢查點(diǎn)或者快照是計(jì)算系統(tǒng)的狀態(tài)的時(shí)間點(diǎn)表示。這些檢查點(diǎn)可以形成用于將計(jì)算系統(tǒng)恢復(fù)到時(shí)間上的之前的狀態(tài)的參考點(diǎn)。檢查點(diǎn)可以包括操作系統(tǒng)、被安裝在該操作系統(tǒng)內(nèi)的應(yīng)用、數(shù)據(jù)文件、設(shè)置和配置變更、媒體文件和與物理或者虛擬機(jī)節(jié)點(diǎn)相關(guān)的其它數(shù)據(jù)。在一些情況下,檢查點(diǎn)可以是適用于虛擬機(jī)集群內(nèi)的多個不同的虛擬機(jī)節(jié)點(diǎn)和/或共享存儲資源的集群范圍檢查點(diǎn)。
例如,如圖1中所示,虛擬機(jī)集群116包括兩個虛擬機(jī)(vm)節(jié)點(diǎn)113a和113b。盡管在圖1中示出了兩個節(jié)點(diǎn),但將理解,給定的vm集群中可以存在基本上任意數(shù)量的vm節(jié)點(diǎn)。類似地,盡管在圖1中示出了僅一個共享存儲資源117,但將理解,可以在給定的vm集群或者物理機(jī)的集群中實(shí)現(xiàn)基本上任意數(shù)量的共享存儲資源。每個虛擬機(jī)節(jié)點(diǎn)可以具有諸如是應(yīng)用114之類的被安裝在其上的應(yīng)用。如圖1中所示,vm節(jié)點(diǎn)可以具有相同的被安裝的應(yīng)用(例如,114),并且可以具有未被示出的其它的被安裝的應(yīng)用。實(shí)際上,每個vm節(jié)點(diǎn)可以具有在其上被安裝或者運(yùn)行的基本上任意數(shù)量的應(yīng)用或者服務(wù)。虛擬機(jī)節(jié)點(diǎn)可以進(jìn)一步具有被安裝在其上的虛擬化代理(或者在本文中被簡單地稱為“代理”)。這些代理(例如,115)可以執(zhí)行多個任務(wù),所述任務(wù)包括把vm節(jié)點(diǎn)準(zhǔn)備好以生成集群范圍檢查點(diǎn)。
例如,指示生成模塊105可以生成被發(fā)送到虛擬機(jī)集群116的一個或多個節(jié)點(diǎn)的指示112。在圖1中,指示112被發(fā)送到vm節(jié)點(diǎn)113a,所述vm節(jié)點(diǎn)113a是在vm節(jié)點(diǎn)113a與113b之間被共享的共享存儲資源117的擁有者。該指示可以向擁有vm節(jié)點(diǎn)指示將在集群的vm節(jié)點(diǎn)上和在共享存儲裝置117上使應(yīng)用(例如,114)停頓。如本文中使用的術(shù)語“停頓”指把應(yīng)用安置好或者把應(yīng)用準(zhǔn)備好以使得可以針對應(yīng)用創(chuàng)建一致的、穩(wěn)定的檢查點(diǎn)。因此,停頓可以包括向共享存儲裝置寫數(shù)據(jù)、將數(shù)據(jù)從臨時(shí)存儲器清除(flush)、完成事務(wù)或者采取為獲得針對該應(yīng)用或者應(yīng)用集合的穩(wěn)定狀態(tài)而需要的任何其它步驟。一旦在共享存儲裝置上使應(yīng)用停頓,則可以生成適用于vm集群內(nèi)的多個vm節(jié)點(diǎn)以及潛在地適用于vm集群內(nèi)的多個共享存儲資源的穩(wěn)定的、一致的檢查點(diǎn)。
經(jīng)常使用在客人操作系統(tǒng)內(nèi)運(yùn)行的高可用性軟件使虛擬機(jī)形成集群。這些客人操作系統(tǒng)可以使用包括共享虛擬硬盤的各種形式的共享存儲裝置。傳統(tǒng)的虛擬機(jī)備份一次僅對單個vm起作用,而不提供用于以一致的方式備份整個vm集群的裝置。因此,一次備份單個vm不提供整體集群的一致圖像。此外,單獨(dú)地備份每個虛擬機(jī)可以導(dǎo)致共享存儲裝置的多個副本被備份,導(dǎo)致產(chǎn)生被浪費(fèi)的存儲資源。
vm集群(在本文中也被稱為客人集群)116可以包括跨多個物理服務(wù)器散布的多個vm節(jié)點(diǎn),所述多個物理服務(wù)器自身可以是主機(jī)集群的部分。如上面提到的,可以在每個vm中實(shí)例化虛擬化代理。虛擬化代理可以包括被安裝在虛擬機(jī)內(nèi)的集成組件。虛擬化代理可以查詢客人操作系統(tǒng)中的集群化框架,以確定共享存儲資源和共享存儲資源的擁有節(jié)點(diǎn)。通常,在vm集群中,共享磁盤或者其它的共享存儲資源被一個vm節(jié)點(diǎn)(例如,圖1中的節(jié)點(diǎn)113a)專有地?fù)碛?。在一些?shí)施例中,這可以通過使用小型計(jì)算機(jī)系統(tǒng)接口(scsi)預(yù)留來達(dá)到。只有擁有節(jié)點(diǎn)可以對共享磁盤執(zhí)行i/o。假設(shè)出現(xiàn)故障轉(zhuǎn)移,則所有權(quán)移到另一個vm節(jié)點(diǎn)(如圖4中一般地所示)。
在主機(jī)集群范圍,可以作為整體在vm集群上發(fā)起快照操作。在主機(jī)集群層,將查詢共享存儲信息的消息發(fā)送給vm(其是vm集群的成員)內(nèi)的虛擬化代理。每個vm的虛擬化代理查詢客人中的集群化框架(例如,高可用性軟件)以獲得集群中的共享磁盤資源的列表和它們中的每個共享磁盤資源的擁有節(jié)點(diǎn)。然后將該信息發(fā)送回主機(jī)集群。與虛擬化代理的通信可以通過安全的、私有的客人-主機(jī)通信信道(例如,通過vm總線)或者通過其它的通信裝置發(fā)生。
主機(jī)集群可以使用從虛擬化代理獲得的信息來確保僅共享磁盤的擁有vm負(fù)責(zé)獲取該共享虛擬磁盤(例如,117)的快照。主機(jī)集群發(fā)起針對客人集群中的每個vm的vm快照操作。額外地,主機(jī)集群為每個vm提供它負(fù)責(zé)進(jìn)行快照的共享虛擬磁盤的列表。至少在一些實(shí)施例中,擁有vm還負(fù)責(zé)在執(zhí)行對存儲裝置的快照之前使在共享虛擬磁盤上運(yùn)行的應(yīng)用到達(dá)一致的狀態(tài)(即,使應(yīng)用停頓)。每個vm還可以負(fù)責(zé)獲取它的私有/非共享的存儲裝置的快照。結(jié)果是產(chǎn)生包括每個vm的快照的整個客人/vm集群的快照,但是快照中存在每個共享虛擬磁盤的單個實(shí)例(如在圖5中一般地示出的)。
相應(yīng)地,本文中描述的實(shí)施例包括在每個vm中實(shí)例化提供關(guān)于共享存儲資源的信息的代理。此外,實(shí)施例在主機(jī)集群范圍分析關(guān)于共享存儲資源的該信息,以跨不同的vm分布對共享存儲設(shè)備進(jìn)行快照的責(zé)任。將在下面分別關(guān)于圖2和3的方法200和300進(jìn)一步解釋這些概念。
鑒于上面描述的系統(tǒng)和架構(gòu),參考圖2和3的流程圖將更好地認(rèn)識可以根據(jù)所公開的主題被實(shí)現(xiàn)的方法。出于簡化解釋的目的,所述方法被顯示和描述為一系列方框。然而,應(yīng)當(dāng)理解和認(rèn)識到,所要求保護(hù)的主題不受方框的次序的限制,因?yàn)橐恍┓娇蚩梢园凑张c本文中所描繪和描述的次序不同的次序和/或與其它方框并發(fā)地發(fā)生。此外,并非全部所圖示的方框可以是實(shí)現(xiàn)下文中描述的方法所必需的。
圖2圖示了用于備份虛擬機(jī)集群的方法200的流程圖?,F(xiàn)在將頻繁參考環(huán)境100的部件和數(shù)據(jù)描述方法200。
方法200包括確定哪些虛擬機(jī)節(jié)點(diǎn)是虛擬機(jī)集群的部分(210)。例如,計(jì)算機(jī)系統(tǒng)101的確定模塊110可以確定虛擬機(jī)節(jié)點(diǎn)113a和113b是vm集群116的部分。確定模塊110還可以確定哪些共享存儲資源是虛擬機(jī)集群的部分(220)和哪些虛擬機(jī)節(jié)點(diǎn)擁有共享存儲資源(230)。因此,在圖1中,確定模塊可以查詢vm節(jié)點(diǎn)或者在那些節(jié)點(diǎn)上被實(shí)例化的代理,以確定共享存儲資源117是vm集群116的部分,以及進(jìn)一步確定vm節(jié)點(diǎn)113a是共享存儲資源117的擁有者。因此,vm節(jié)點(diǎn)113a在vm節(jié)點(diǎn)中具有寫入共享存儲資源117的專有能力。通過僅允許集群中的一個vm節(jié)點(diǎn)是擁有者,可以在正在訪問共享存儲資源的多個不同的vm節(jié)點(diǎn)之間確保數(shù)據(jù)一致性。在一些情況下,多個vm節(jié)點(diǎn)可以同時(shí)從共享存儲資源讀數(shù)據(jù),而在其它情況下,一次僅一個節(jié)點(diǎn)可以讀共享存儲資源或者寫入共享存儲資源。仍然進(jìn)一步地,應(yīng)用可以在每個共享存儲資源上運(yùn)行以及在資源擁有者節(jié)點(diǎn)上運(yùn)行。
方法200進(jìn)一步包括:向作為存儲設(shè)備擁有者的一個或多個虛擬機(jī)節(jié)點(diǎn)指示將在虛擬機(jī)集群的節(jié)點(diǎn)上使至少一個指定的應(yīng)用停頓,以使得可以創(chuàng)建一致的集群范圍檢查點(diǎn)(240)。例如,指示生成模塊105可以生成指示112,以及通信模塊104可以將指示傳送給作為各種vm集群的存儲設(shè)備擁有者的vm節(jié)點(diǎn)。在計(jì)算機(jī)系統(tǒng)101是一個或多個vm節(jié)點(diǎn)的主機(jī)機(jī)器的情況下,通信可以通過vm總線、通過模擬的本地網(wǎng)絡(luò)連接或者經(jīng)由其它的通信裝置發(fā)生。如果vm節(jié)點(diǎn)被托管在與計(jì)算機(jī)系統(tǒng)101不同的物理計(jì)算系統(tǒng)上,則可以經(jīng)由任何有線或者無線通信裝置發(fā)射指示消息112。所述指示指示了:將對于操作系統(tǒng)、對于應(yīng)用、對于服務(wù)或者對于其某種組合的數(shù)據(jù)停頓。
例如,如果將針對正在vm節(jié)點(diǎn)113a和113b兩者上運(yùn)行的應(yīng)用114創(chuàng)建集群范圍檢查點(diǎn),則指示112將指示用于應(yīng)用114的數(shù)據(jù)要被停頓,以使得可以針對該應(yīng)用生成一致的、穩(wěn)定的檢查點(diǎn)。應(yīng)當(dāng)指出,在另一個實(shí)施例中,檢查點(diǎn)生成模塊106可以發(fā)出如下這樣的指示,即:用于應(yīng)用114的數(shù)據(jù)要被停頓。檢查點(diǎn)生成模塊106可以要求每個vm節(jié)點(diǎn)停頓和生成檢查點(diǎn)。響應(yīng)于該消息/指示,每個vm節(jié)點(diǎn)使應(yīng)用停頓,并且創(chuàng)建存儲裝置(包括它擁有的共享存儲裝置)的檢查點(diǎn)。產(chǎn)生的集群范圍檢查點(diǎn)107將包括針對vm節(jié)點(diǎn)113a的檢查點(diǎn)108和針對vm節(jié)點(diǎn)113b的檢查點(diǎn)109。
一旦對于應(yīng)用的數(shù)據(jù)已停頓,則檢查點(diǎn)生成模塊106可以生成包括針對虛擬機(jī)集群中的每個虛擬機(jī)的檢查點(diǎn)的集群范圍檢查點(diǎn)(250)。集群范圍檢查點(diǎn)107因此可以包括虛擬機(jī)集群中的每個共享存儲資源的單個實(shí)例。相應(yīng)地,如果虛擬機(jī)集群包括多個不同的共享存儲資源,則集群范圍檢查點(diǎn)將包括針對該集群中的每個共享存儲資源的檢查點(diǎn)。
例如,如圖5中所圖示的,虛擬機(jī)集群501包括兩個虛擬機(jī)節(jié)點(diǎn)502和503和三個共享存儲資源(例如,虛擬或者物理硬盤或者其它類型的存儲介質(zhì))505、506和507。在檢查點(diǎn)生成模塊106生成針對vm集群501的集群范圍檢查點(diǎn)時(shí),集群范圍檢查點(diǎn)508包括針對每個共享資源的單獨(dú)的檢查點(diǎn),其包括針對資源505的檢查點(diǎn)、針對資源506的檢查點(diǎn)和針對資源507的檢查點(diǎn)。vm節(jié)點(diǎn)502可以是共享存儲資源505、506和507中的一個、兩個或者全部三個共享存儲資源的擁有者。因此,vm節(jié)點(diǎn)502可以負(fù)責(zé)在生成集群范圍檢查點(diǎn)508之前在共享存儲資源上使數(shù)據(jù)停頓??梢栽趘m節(jié)點(diǎn)上實(shí)現(xiàn)虛擬化代理,以幫助促進(jìn)對一致的、穩(wěn)定的集群范圍檢查點(diǎn)的創(chuàng)建。
每個vm節(jié)點(diǎn)可以具有在其上被實(shí)例化的虛擬化代理504a/504b,其執(zhí)行各種功能。例如,虛擬化代理可以被配置為確定虛擬機(jī)集群內(nèi)的共享存儲資源的當(dāng)前的所有權(quán)。圖1的虛擬化代理115可以采取步驟以確定它當(dāng)前在其中被實(shí)例化的節(jié)點(diǎn)是否是擁有者,并且如果是,那么它“擁有”哪些共享存儲資源。虛擬化代理115還可以與集群116中的其它vm節(jié)點(diǎn)通信以確定它們是否是擁有者以及它們擁有哪些共享存儲資源。替換地,代理可以被用于向集群中的其它vm節(jié)點(diǎn)廣播消息,該消息向那些節(jié)點(diǎn)通知集群內(nèi)的每個節(jié)點(diǎn)的當(dāng)前的所有權(quán)狀態(tài)。在其它實(shí)施例中,推送和拉取技術(shù)的組合可以被用于確定vm集群內(nèi)的共享存儲裝置所有權(quán)。
在一些實(shí)施例中,虛擬化代理115可以與主機(jī)操作系統(tǒng)通信以作出包括vm集群成員關(guān)系和集群內(nèi)的所有權(quán)的各種確定。可以使用安全的、私有的客人-主機(jī)通信信道作出這樣的通信。在一些情況下,主機(jī)可以向代理指示將創(chuàng)建檢查點(diǎn),并且可以指定針對該檢查點(diǎn)的參數(shù)或者設(shè)置。例如,主機(jī)可以指示將立即停止運(yùn)轉(zhuǎn)(spindown)正在運(yùn)行的進(jìn)程,以及將立即使全部數(shù)據(jù)停頓以便盡可能早地獲取快照。替換地,主機(jī)可以指示將緩慢地并且隨著進(jìn)程自然地結(jié)束逐漸地停止運(yùn)轉(zhuǎn)正在運(yùn)行的進(jìn)程,以及將在應(yīng)用和關(guān)聯(lián)的進(jìn)程完全關(guān)閉時(shí)使數(shù)據(jù)停頓。相應(yīng)地,管理員或者其他用戶可以控制如何生成檢查點(diǎn)。
在具有多個vm節(jié)點(diǎn)和多個共享存儲資源的vm集群(例如,圖5)中,每個擁有vm節(jié)點(diǎn)可以創(chuàng)建針對它擁有的共享存儲資源的檢查點(diǎn)。因此,如果vm節(jié)點(diǎn)502擁有共享資源505和506,則它可以發(fā)起針對那些資源的檢查點(diǎn),而如果vm節(jié)點(diǎn)503擁有共享資源507,則它可以發(fā)起針對該資源的檢查點(diǎn)。集群范圍檢查點(diǎn)508在那種情況下將包括針對每個共享資源(505、506和507)的單獨(dú)的檢查點(diǎn),其中,每個共享存儲資源的檢查點(diǎn)由該資源的擁有者發(fā)起。這可以在允許擁有節(jié)點(diǎn)使在那些節(jié)點(diǎn)上的應(yīng)用停頓的主動-被動集群上發(fā)生。
為維持跨應(yīng)用和/或vm節(jié)點(diǎn)的一致的狀態(tài),共享存儲資源擁有者可以實(shí)現(xiàn)硬盤預(yù)留以維持共享硬盤上的一致的狀態(tài)。例如,共享存儲資源擁有者可以實(shí)現(xiàn)scsi控制器預(yù)留以維持共享scsi磁盤上的一致的狀態(tài)。如果不擁有指定的共享存儲資源的非擁有虛擬機(jī)節(jié)點(diǎn)希望使對于給定應(yīng)用的數(shù)據(jù)停頓,則該非擁有vm節(jié)點(diǎn)(例如,圖1的vm節(jié)點(diǎn)113b)可以與共享存儲資源的擁有者(vm節(jié)點(diǎn)113a)通信以使給定的應(yīng)用停頓。擁有節(jié)點(diǎn)可以在完成時(shí)再與非擁有節(jié)點(diǎn)通信,以指示已使應(yīng)用的數(shù)據(jù)停頓。在一些情況下,虛擬機(jī)節(jié)點(diǎn)的客人操作系統(tǒng)可以是發(fā)起對針對該虛擬機(jī)節(jié)點(diǎn)的檢查點(diǎn)的創(chuàng)建的實(shí)體。在這些情況下,客人os可以與vm節(jié)點(diǎn)上的代理通信以發(fā)起對檢查點(diǎn)的創(chuàng)建。
在一些情況下,虛擬機(jī)節(jié)點(diǎn)可以具有其自己的私有的、非共享的存儲資源。在這樣的情況下,具有其自己的私有的、非共享的存儲資源的虛擬機(jī)節(jié)點(diǎn)可以創(chuàng)建針對其私有的、非共享的存儲裝置的檢查點(diǎn)。該私有的檢查點(diǎn)可以隨集群范圍檢查點(diǎn)508的其它共享資源檢查點(diǎn)一起被存儲,或者可以被單獨(dú)地存儲。
代理可以進(jìn)一步被用于分析虛擬機(jī)集群中的其它虛擬機(jī)節(jié)點(diǎn)以確定那些虛擬機(jī)節(jié)點(diǎn)是否已經(jīng)歷故障。以及,在確定虛擬機(jī)節(jié)點(diǎn)已出故障時(shí),代理可以發(fā)起分析,以確定該虛擬機(jī)節(jié)點(diǎn)的故障是否已影響虛擬機(jī)集群內(nèi)的共享存儲節(jié)點(diǎn)所有權(quán)。例如,如圖4中所示,虛擬機(jī)集群401可以包括四個虛擬機(jī)節(jié)點(diǎn):402、403、404和405。每個vm節(jié)點(diǎn)可以分別包括其自己的代理:407a、407b、407c和407d。集群401的vm節(jié)點(diǎn)中的每個vm節(jié)點(diǎn)可以訪問單個共享存儲資源406。如果如圖4中所示,vm節(jié)點(diǎn)402是共享存儲資源406的擁有者,并且如果該節(jié)點(diǎn)由于某個原因(例如,由于硬件或者軟件故障)而故障,則所有權(quán)可以被移動到虛擬機(jī)集群401內(nèi)的另一個虛擬機(jī)節(jié)點(diǎn)。新的擁有者可以是集群中的任何其它的vm節(jié)點(diǎn),并且可以基于策略或者簡單地基于“下一個可用的”方法被確定。通過假設(shè)擁有者角色,vm403現(xiàn)在是共享存儲資源406的擁有者,并且是寫入該存儲資源的數(shù)據(jù)的唯一控制者。
現(xiàn)在轉(zhuǎn)向圖3,圖示出了用于在備份虛擬機(jī)集群之前確定虛擬機(jī)節(jié)點(diǎn)所有權(quán)的方法300的流程圖?,F(xiàn)在將頻繁參考圖1的環(huán)境100的部件和數(shù)據(jù)描述方法300。
方法300包括確定對于虛擬機(jī)集群內(nèi)的至少一個共享存儲資源而言所有權(quán)已變更(310)。例如,如上面關(guān)于圖4提到的,共享存儲資源的所有權(quán)可以隨時(shí)間變更。例如,擁有特定資源的vm節(jié)點(diǎn)可能由于硬件或者軟件故障、由于例程維護(hù)、由于惡意攻擊或者因?yàn)槟硞€其它的原因而故障。然而,在一些情況下,所有權(quán)可以基于策略或者基于由用戶作出的手動變更而不由于vm節(jié)點(diǎn)上的任何類型的故障而變更。例如,管理員或者其他用戶可能希望在圖4中將所有權(quán)從vm節(jié)點(diǎn)402變更到vm節(jié)點(diǎn)403。管理員可能具有這樣做的各種原因。實(shí)際上,管理員可能知道給定的節(jié)點(diǎn)將被停機(jī)以用于在接下來的二十四小時(shí)內(nèi)進(jìn)行維護(hù)。因此,管理員可以將所有權(quán)轉(zhuǎn)移到集群內(nèi)的另一個vm節(jié)點(diǎn)。
在一些情況下,故障轉(zhuǎn)移策略可以在集群中的vm節(jié)點(diǎn)之間就位。例如,圖4的vm集群401可以具有已設(shè)立的故障轉(zhuǎn)移策略,該故障轉(zhuǎn)移策略指示,在給定的節(jié)點(diǎn)出故障時(shí),所有權(quán)角色以及可能一些應(yīng)用的應(yīng)用處理可以自動地故障轉(zhuǎn)移到指定的vm節(jié)點(diǎn)。因此,在vm集群401中,故障轉(zhuǎn)移策略可以指示,如果vm節(jié)點(diǎn)402停機(jī),則擁有者角色將被轉(zhuǎn)移到vm節(jié)點(diǎn)403。故障轉(zhuǎn)移策略可以進(jìn)一步指示,如果vm節(jié)點(diǎn)403停機(jī),則擁有者角色將被轉(zhuǎn)移到vm節(jié)點(diǎn)404,等等。
方法300接下來包括標(biāo)識共享存儲資源的至少一個潛在的新?lián)碛姓撸?20)。圖1的計(jì)算機(jī)系統(tǒng)101的標(biāo)識模塊111可以標(biāo)識共享存儲資源的潛在的新?lián)碛姓?。在根?jù)故障轉(zhuǎn)移策略轉(zhuǎn)移所有權(quán)角色的上面的示例中,標(biāo)識模塊111或者被安裝在vm節(jié)點(diǎn)上的虛擬化代理中的任一個虛擬化代理可以確定哪些vm節(jié)點(diǎn)可以是給定的共享存儲資源的潛在的新?lián)碛姓?。由于vm集群內(nèi)可以存在許多共享存儲資源,所以可以存在許多擁有者和許多潛在的擁有者。例如,策略可以指示,如果節(jié)點(diǎn)由于某個原因而出故障時(shí)隨后的擁有者將是誰。因此,代理可以與彼此通信以維護(hù)對于每個存儲資源的所有權(quán)的當(dāng)前狀態(tài),所述當(dāng)前狀態(tài)標(biāo)識當(dāng)前擁有者是誰以及基于策略標(biāo)識潛在的新?lián)碛姓摺?/p>
方法300進(jìn)一步包括確定哪一個或多個虛擬機(jī)節(jié)點(diǎn)擁有共享存儲資源(330)。例如,確定模塊110可以確定圖1的vm節(jié)點(diǎn)113a當(dāng)前擁有共享存儲資源117。指示生成模塊105然后可以生成指示112,指示112向作為共享存儲資源的擁有者的一個或多個虛擬機(jī)節(jié)點(diǎn)指示將在虛擬機(jī)集群的節(jié)點(diǎn)上使至少一個指定的應(yīng)用停頓,以使得可以創(chuàng)建一致的集群范圍檢查點(diǎn)(340)。集群范圍檢查點(diǎn)生成模塊106然后可以生成集群范圍虛擬機(jī)檢查點(diǎn)107(350),集群范圍虛擬機(jī)檢查點(diǎn)107包括針對虛擬機(jī)集群中的每個共享存儲設(shè)備的檢查點(diǎn)(包括針對vm節(jié)點(diǎn)113a(檢查點(diǎn)108)和針對vm節(jié)點(diǎn)113b(檢查點(diǎn)109)的檢查點(diǎn))。集群范圍檢查點(diǎn)生成模塊106可以至少在一些實(shí)施例中生成在單個步驟中使指定的應(yīng)用停頓并且創(chuàng)建檢查點(diǎn)的指示112。
如上面提到的,所有權(quán)的變更可以導(dǎo)致產(chǎn)生許多不同的場景,所述場景包括從出故障的vm節(jié)點(diǎn)進(jìn)行的故障轉(zhuǎn)移或者由管理員作出的對所有權(quán)的手動變更。因?yàn)閾碛姓呓巧_保僅一個vm節(jié)點(diǎn)可以寫入共享存儲設(shè)備,所以如果該擁有者角色出故障并且不進(jìn)行故障轉(zhuǎn)移,則沒有vm節(jié)點(diǎn)將能夠?qū)懺摴蚕泶鎯υO(shè)備。因此,所有權(quán)角色根據(jù)需要從節(jié)點(diǎn)轉(zhuǎn)移到節(jié)點(diǎn)以確保每個共享存儲資源具有擁有者。共享存儲資源擁有者具有對共享存儲資源的專有的寫訪問,或者可以具有對共享存儲資源的共享的寫訪問,其中,根據(jù)訪問策略對訪問進(jìn)行調(diào)控。例如,如果兩個不同的vm節(jié)點(diǎn)正在寫入共享數(shù)據(jù)存儲庫上的不同的文件,則這兩者節(jié)點(diǎn)可以具有所有權(quán)并且同時(shí)寫入共享存儲設(shè)備。
在一些實(shí)施例中,共享存儲資源是主機(jī)計(jì)算節(jié)點(diǎn)(諸如是圖1的計(jì)算機(jī)系統(tǒng)101)的部分,或者可以通過主機(jī)計(jì)算節(jié)點(diǎn)來訪問??梢允褂帽话惭b在vm節(jié)點(diǎn)上的虛擬化代理訪問共享存儲資源??梢栽诿總€虛擬機(jī)節(jié)點(diǎn)上實(shí)例化虛擬化代理,并且虛擬化代理可以被配置為,確定共享存儲資源所有權(quán),以及確保檢查點(diǎn)之間的一致性??梢酝ㄟ^在創(chuàng)建檢查點(diǎn)之前使對于磁盤的應(yīng)用數(shù)據(jù)停頓來確保一致性。作為擁有者的vm節(jié)點(diǎn)可以在被指令時(shí)或者在被需要時(shí)自動地使應(yīng)用數(shù)據(jù)停頓。額外地,非擁有虛擬機(jī)節(jié)點(diǎn)可以確定給定的共享存儲資源的當(dāng)前擁有者,并且允許當(dāng)前擁有者使在非擁有虛擬機(jī)節(jié)點(diǎn)上運(yùn)行的應(yīng)用停頓。
權(quán)利要求支持:一種包括執(zhí)行用于備份虛擬機(jī)集群的計(jì)算機(jī)實(shí)現(xiàn)的方法的至少一個處理器的計(jì)算機(jī)系統(tǒng),所述方法包括:確定哪些虛擬機(jī)節(jié)點(diǎn)113a是虛擬機(jī)集群116的部分,確定哪些共享存儲資源117是虛擬機(jī)集群的部分,確定哪一個或多個虛擬機(jī)節(jié)點(diǎn)擁有共享存儲資源,向一個或多個虛擬機(jī)節(jié)點(diǎn)擁有者113a指示將在虛擬機(jī)集群的節(jié)點(diǎn)上使至少一個指定的應(yīng)用114停頓,以使得可以創(chuàng)建一致的集群范圍檢查點(diǎn)107,以及創(chuàng)建包括針對虛擬機(jī)集群中的每個虛擬機(jī)的檢查點(diǎn)的集群范圍檢查點(diǎn)107。
在一些實(shí)施例中,集群范圍檢查點(diǎn)包括虛擬機(jī)集群中的每個共享存儲資源的單個實(shí)例。在每個虛擬機(jī)上實(shí)例化虛擬化代理,并且虛擬化代理確定虛擬機(jī)集群內(nèi)的共享存儲資源的當(dāng)前,所有權(quán)。虛擬化代理還使用安全的、私有的客人-主機(jī)通信信道與主機(jī)操作系統(tǒng)通信。
提供了一種包括至少一個處理器的計(jì)算機(jī)系統(tǒng)。所述計(jì)算機(jī)系統(tǒng)執(zhí)行用于在備份虛擬機(jī)集群之前確定虛擬機(jī)節(jié)點(diǎn)所有權(quán)的計(jì)算機(jī)實(shí)現(xiàn)的方法,所述方法包括:確定對于虛擬機(jī)集群401內(nèi)的至少一個共享存儲資源406而言所有權(quán)已變更,標(biāo)識共享存儲資源的至少一個潛在的新?lián)碛姓?03,確定哪一個或多個虛擬機(jī)節(jié)點(diǎn)403擁有共享存儲資源,向一個或多個虛擬機(jī)節(jié)點(diǎn)擁有者指示將在虛擬機(jī)集群401的節(jié)點(diǎn)上使至少一個指定的應(yīng)用114停頓,以使得可以創(chuàng)建一致的集群范圍檢查點(diǎn)107,以及創(chuàng)建包括針對虛擬機(jī)集群中的每個共享存儲設(shè)備406的檢查點(diǎn)的集群范圍虛擬機(jī)檢查點(diǎn)107。
在一些實(shí)施例中,共享存儲資源擁有者具有對共享存儲資源的專有的訪問,或者具有對共享存儲資源的共享的訪問,其中,根據(jù)訪問策略對訪問進(jìn)行調(diào)控。在一些情況下,在每個虛擬機(jī)上實(shí)例化虛擬化代理,其中,虛擬化代理被配置為,確定共享存儲資源所有權(quán),以及確保檢查點(diǎn)之間的一致性。非擁有虛擬機(jī)節(jié)點(diǎn)確定給定的共享存儲資源的當(dāng)前擁有者,并且允許當(dāng)前擁有者使在非擁有虛擬機(jī)節(jié)點(diǎn)上運(yùn)行的一個或多個應(yīng)用停頓。
提供了一種包括以下項(xiàng)的計(jì)算機(jī)系統(tǒng):一個或多個處理器;確定模塊110,其用于確定哪些虛擬機(jī)節(jié)點(diǎn)113a是虛擬機(jī)集群116的部分,確定哪些共享存儲資源是虛擬機(jī)集群的部分,以及確定哪一個或多個虛擬機(jī)節(jié)點(diǎn)擁有共享存儲資源;指示模塊105,其用于向一個或多個虛擬機(jī)節(jié)點(diǎn)擁有者指示將在虛擬機(jī)集群116的節(jié)點(diǎn)上使至少一個指定的應(yīng)用114停頓,以使得可以創(chuàng)建一致的集群范圍檢查點(diǎn)107;以及集群范圍檢查點(diǎn)創(chuàng)建模塊106,其用于創(chuàng)建包括針對虛擬機(jī)集群116中的每個虛擬機(jī)的檢查點(diǎn)的集群范圍檢查點(diǎn)107。
所述計(jì)算機(jī)系統(tǒng)進(jìn)一步包括:分析模塊,其用于分析虛擬機(jī)集群中的一個或多個虛擬機(jī)節(jié)點(diǎn)以確定虛擬機(jī)節(jié)點(diǎn)是否已經(jīng)歷故障,以及在確定至少一個虛擬機(jī)節(jié)點(diǎn)已出故障時(shí),發(fā)起用于確定虛擬機(jī)節(jié)點(diǎn)的故障是否已影響虛擬機(jī)集群內(nèi)的共享存儲節(jié)點(diǎn)所有權(quán)的分析。在由于節(jié)點(diǎn)故障而進(jìn)行的故障轉(zhuǎn)移時(shí),將共享存儲資源的所有權(quán)移動到虛擬機(jī)集群內(nèi)的另一個虛擬機(jī)節(jié)點(diǎn)。共享存儲資源的擁有虛擬機(jī)節(jié)點(diǎn)使在共享存儲資源上運(yùn)行的一個或多個應(yīng)用停頓,并且創(chuàng)建針對該共享存儲資源的檢查點(diǎn)。
在一些實(shí)施例中,擁有虛擬機(jī)節(jié)點(diǎn)擁有多個共享存儲資源,并且創(chuàng)建針對它擁有的多個共享存儲資源中的每個共享存儲資源的檢查點(diǎn)。在一些情況下,虛擬機(jī)節(jié)點(diǎn)中的至少一個虛擬機(jī)節(jié)點(diǎn)具有其自己的私有的、非共享的存儲資源,并且進(jìn)一步地,具有其自己的私有的、非共享的存儲資源的至少一個虛擬機(jī)節(jié)點(diǎn)創(chuàng)建針對其私有的、非共享的存儲裝置的檢查點(diǎn)。不擁有指定的共享存儲資源的非擁有虛擬機(jī)節(jié)點(diǎn)與共享存儲資源的擁有者通信,以使給定的應(yīng)用停頓。
相應(yīng)地,提供了備份虛擬機(jī)集群的方法、系統(tǒng)和計(jì)算機(jī)程序產(chǎn)品。此外,提供了在備份虛擬機(jī)集群之前確定虛擬機(jī)節(jié)點(diǎn)所有權(quán)的方法、系統(tǒng)和計(jì)算機(jī)程序產(chǎn)品。
本文中描述的概念和特征可以以其它具體的形式被體現(xiàn),而不脫離它們的精神或者描述性特性。所描述的實(shí)施例將在所有方面都被看作僅說明性的而非限制性的。因此,本公開內(nèi)容的范圍由所附權(quán)利要求而非由前述說明指示。落在權(quán)利要求的等價(jià)項(xiàng)的意義和范圍內(nèi)的全部變更將被包括在它們的范圍內(nèi)。