務(wù)器正常運(yùn)行的情況下對虛擬機(jī)的虛擬磁盤文件進(jìn)行備份。
[0064]在一個(gè)實(shí)施例中,將第一服務(wù)器上運(yùn)行的虛擬機(jī)的虛擬磁盤文件備份至集群中其他服務(wù)器的步驟包括:獲取虛擬磁盤文件;在指定時(shí)間將虛擬磁盤文件備份至已建立備份關(guān)系的其他服務(wù)器。
[0065]本實(shí)施例中,在建立備份關(guān)系之后,在指定時(shí)間將虛擬機(jī)的虛擬磁盤文件備份至已建立備份關(guān)系的其他服務(wù)器。若存在多臺虛擬機(jī)需要備份,則對多臺虛擬機(jī)分別定時(shí)或不定時(shí)的分別將虛擬磁盤文件對應(yīng)的備份至已建立備份關(guān)系的其他服務(wù)器。在其中一個(gè)實(shí)施例中,在獲取所述虛擬磁盤文件的步驟之后,還包括:對虛擬磁盤文件創(chuàng)建對應(yīng)的索引表,索引表記錄了虛擬磁盤文件中的簇的編號;對索引表創(chuàng)建第一快照;將第一快照寫入虛擬磁盤文件中。將虛擬磁盤文件以簇為單位進(jìn)行存儲(chǔ),每個(gè)簇的容量大小相同,并且對每個(gè)簇設(shè)定相應(yīng)的編號。對虛擬磁盤文件創(chuàng)建對應(yīng)的索引表,索引表中記錄了簇的編號以及簇對應(yīng)的存儲(chǔ)地址。在對虛擬機(jī)的虛擬磁盤文件進(jìn)行首次備份時(shí),對索引表創(chuàng)建第一快照,并將第一快照寫入虛擬磁盤文件中,將包含第一快照的虛擬磁盤文件在指定時(shí)間定時(shí)或不定時(shí)的備份至已建立備份關(guān)系的其他服務(wù)器。
[0066]在一個(gè)實(shí)施例中,在指定時(shí)間將虛擬磁盤文件備份至已建立備份關(guān)系的其他服務(wù)器的步驟之后,還包括:獲取在虛擬機(jī)上再次寫入數(shù)據(jù)后的虛擬磁盤文件;將再次寫入數(shù)據(jù)后的虛擬磁盤文件對應(yīng)的簇的編號記錄至索引表中;對再次記錄編號的索引表創(chuàng)建第二快照;將第二快照與第一快照進(jìn)行比對后獲取不相同的編號;根據(jù)不相同的編號,將與編號對應(yīng)的簇增量備份至已建立備份關(guān)系的其他服務(wù)器。
[0067]本實(shí)施例中,在第一次完整備份之后,對再次寫入虛擬磁盤文件的數(shù)據(jù)可以進(jìn)行增量備份。在指定時(shí)間獲取虛擬機(jī)再次寫入數(shù)據(jù)后的虛擬磁盤文件。對再次寫入的數(shù)據(jù)以簇為單位進(jìn)行存儲(chǔ),并再次設(shè)定對應(yīng)的編號。并將再次設(shè)定的編號以及對應(yīng)的存儲(chǔ)地址寫入索引表中。對再次記錄編號的索引表創(chuàng)建第二快照。通過對第一快照與第二快照進(jìn)行遍歷,將第二快照與第一快照進(jìn)行比對,即對第二快照中索引表與第一快照中的索引表的相同位置上的簇的編號進(jìn)行比對,獲取不相同的簇的編號。根據(jù)這些不同的簇的編號,將這些編號對應(yīng)的簇增量備份至已建立備份關(guān)系的其他服務(wù)器。由于通過對索引表快照的比對,獲取不同的簇的編號,由此能夠?qū)Σ煌拇剡M(jìn)行增量備份,由此有效提高了備份效率。
[0068]進(jìn)一步的,由于增量備份是通過索引表的快照進(jìn)行遍歷,將第二快照與第一快照進(jìn)行比對。因此,在不定時(shí)備份時(shí),若檢測到承擔(dān)備份任務(wù)的服務(wù)器資源不滿足資源空閑條件,則記錄遍歷當(dāng)前索引表快照的位置,待承擔(dān)備份任務(wù)的服務(wù)器資源滿足資源空閑條件時(shí),從記錄的位置繼續(xù)進(jìn)行遍歷,以比對第一快照和第二快照中的不同簇的編號。由此,采用遍歷索引快照的方式能夠進(jìn)一步實(shí)現(xiàn)虛擬磁盤文件的不定時(shí)備份,從而有效利用了集群中服務(wù)器的資源。
[0069]在一個(gè)實(shí)施例中,如圖3所示,提供了一種集群中虛擬機(jī)的恢復(fù)系統(tǒng),該系統(tǒng)包括:備份模塊302、獲取模塊304和恢復(fù)模塊306,其中:
[0070]備份模塊302,用于將第一服務(wù)器上運(yùn)行的虛擬機(jī)的虛擬磁盤文件備份至集群中其他服務(wù)器。
[0071]獲取模塊304,用于第一服務(wù)器發(fā)生故障時(shí),從其他服務(wù)器獲取已備份的虛擬磁盤文件。
[0072]恢復(fù)模塊306,用于利用已備份的虛擬磁盤文件對虛擬機(jī)進(jìn)行恢復(fù)。
[0073]集群中的每臺服務(wù)器都運(yùn)行了虛擬服務(wù)器,并且承擔(dān)備份其他服務(wù)器上的虛擬機(jī)的虛擬磁盤文件的任務(wù)。每臺服務(wù)器上可以運(yùn)行一臺虛擬機(jī),也可以運(yùn)行多臺虛擬機(jī)。對于一臺服務(wù)器上運(yùn)行的多臺虛擬機(jī),備份模塊302可以將多臺虛擬機(jī)的虛擬磁盤文件備份至集群中其他的同一臺服務(wù)器,也可以將多臺虛擬機(jī)的虛擬磁盤文件分別對應(yīng)虛擬機(jī)與其他服務(wù)器的備份關(guān)系備份至集群中多臺不同的服務(wù)器。在備份模塊302對虛擬磁盤文件進(jìn)行備份的過程中,第一服務(wù)器上的虛擬機(jī)處于正常運(yùn)行狀態(tài)。
[0074]第一服務(wù)器發(fā)生故障時(shí)虛擬機(jī)無法繼續(xù)運(yùn)行,要對虛擬機(jī)進(jìn)行恢復(fù)。獲取模塊304需從其他服務(wù)器即承擔(dān)備份任務(wù)的服務(wù)器上獲取已備份的虛擬磁盤文件。如果發(fā)生故障的第一服務(wù)器上運(yùn)行了多臺虛擬機(jī),則獲取模塊304需要從其他服務(wù)器上分別獲取多份已備份的虛擬磁盤文件。
[0075]恢復(fù)模塊306利用已備份的虛擬磁盤文件對虛擬機(jī)進(jìn)行恢復(fù),從而確保虛擬機(jī)能夠繼續(xù)運(yùn)行?;謴?fù)模塊306可以將虛擬機(jī)在備份磁盤文件的服務(wù)器上進(jìn)行恢復(fù),也可以根據(jù)集群中其他服務(wù)器的資源利用狀況,選擇在資源空閑的服務(wù)器上進(jìn)行恢復(fù)。如果有多臺虛擬機(jī)需要恢復(fù),恢復(fù)模塊306可以將多臺虛擬機(jī)在同一臺服務(wù)器上進(jìn)行恢復(fù),也可以在集群中不同的服務(wù)器上對不同的虛擬機(jī)分別進(jìn)行恢復(fù)。
[0076]本實(shí)施例中,由于將虛擬機(jī)的虛擬磁盤文件備份至集群中其他服務(wù)器,從而無需增加硬件成本投入即可利用集群中的其他服務(wù)器對虛擬機(jī)進(jìn)行備份。在運(yùn)行虛擬機(jī)的第一服務(wù)器發(fā)生故障時(shí),從集群中其他服務(wù)器獲取已備份的虛擬磁盤文件,由此能夠利用已備份的虛擬磁盤文件對虛擬機(jī)進(jìn)行快速恢復(fù)。由此實(shí)現(xiàn)了在不增加硬件成本投入的情況下能夠有效利用集群中的服務(wù)器資源對虛擬機(jī)進(jìn)行快速恢復(fù)。
[0077]如圖4所示,在一個(gè)實(shí)施例中,該系統(tǒng)還包括:備份關(guān)系建立模塊308,用于建立虛擬機(jī)與集群中其他服務(wù)器之間的備份關(guān)系;獲取模塊306還用于獲取對虛擬機(jī)進(jìn)行備份的指定時(shí)間。
[0078]本實(shí)施例中,備份關(guān)系是指將虛擬機(jī)的虛擬磁盤數(shù)據(jù)備份至集群中的哪一臺服務(wù)器。備份關(guān)系可以是預(yù)先人為指定建立的。也可以是根據(jù)集群中各個(gè)服務(wù)器已運(yùn)行的虛擬機(jī)數(shù)量、已備份的虛擬磁盤文件數(shù)量、物理磁盤剩余空間容量、CPU占用率、1占用率等參數(shù)計(jì)算出備份指數(shù),選擇備份指數(shù)最高的服務(wù)器,建立虛擬機(jī)與該服務(wù)器的備份關(guān)系。對虛擬機(jī)進(jìn)行備份的指定時(shí)間可以是定時(shí)的,也可以是不定時(shí)的。定時(shí)進(jìn)行備份時(shí),可以在指定時(shí)間手動(dòng)對虛擬磁盤文件進(jìn)行備份。不定時(shí)備份時(shí),可以在已建立備份關(guān)系的服務(wù)器資源空閑時(shí)對虛擬磁盤文件進(jìn)行備份。由于不定時(shí)備份能夠充分利用集群中服務(wù)器的空閑資源對虛擬機(jī)的虛擬磁盤文件進(jìn)行備份,由此能夠在不影響服務(wù)器正常運(yùn)行的情況下對虛擬機(jī)的虛擬磁盤文件進(jìn)行備份。
[0079]在一個(gè)實(shí)施例中,如圖5所示,備份模塊302包括:文件獲取單元302a和文件備份單元302b,其中:
[0080]文件獲取單元302a,用于獲取虛擬磁盤文件。
[0081]文件備份單元302b,用于在指定時(shí)間將虛擬磁盤文件備份至已建立備份關(guān)系的其他服務(wù)器。
[0082]本實(shí)施例中,在建立備份關(guān)系之后,文件獲取單元302a獲取虛擬磁盤文件,文件備份單元302b在指定時(shí)間將虛擬機(jī)的虛擬磁盤文件備份至已建立備份關(guān)系的其他服務(wù)器。若存在多臺虛擬機(jī)需要備份,貝lJ文件備份單元302b對多臺虛擬機(jī)分別定時(shí)或不定時(shí)的分別將虛擬磁盤文件對應(yīng)的備份至已