1. 程式人生 > >淺談Hyper-V的幾種備份方式

淺談Hyper-V的幾種備份方式

淺談Hyper-V的幾種備份方式()

----snapshot虛擬機器快照

淺談Hyper-V的幾種備份方式(一)----snapshot虛擬機器快照

時至今日,相信大家對微軟的伺服器虛擬化技術已經比較瞭解和熟悉了,您要是常逛我們51cto論壇,不難發現罈子的首頁最上面基本上總是掛著Microsoft虛擬化的宣傳片,而且還建立了專門的虛擬化版塊,所以我對Hyper-V是怎麼樣的一款產品它有什麼特點就不做過多的介紹了.直入主題,我們來談一下實施部署了Hyper-V虛擬技術以後如何有效備份的問題.

我們可以先回顧一下前幾年玩vmware workstation或者VPC等產品的時候是個什麼樣的情景.配置好了虛擬機器各項引數,搭好了實驗環境,就要開始做測試了,打住,我們還要做什麼? snapshot!OK,看來您是真玩過虛擬機器,呵呵...沒錯,虛擬機器快照可以完整地儲存當前虛擬機器上執行的系統,應用程式甚至記憶體使用的狀態.當虛擬機發生系統故障等問題時我們只要選擇還原到合適的時間點上的正常的狀態就又可以使用了.很方便很強大.

我們來簡單地看一下如何在Hyper-V上為虛擬機器抓取一次快照:

這裡我新建了一臺虛擬機器Client2-WIN2003,

可以看到當前的快照欄位寫明"選定的虛擬機器沒有快照".

同時我們到此虛擬機器安裝目錄下的snapshots資料夾中一覽:

也是空空如也.

OK,我們來為Client2-WIN2003捕捉一個快照,很簡單,Hyper-V管理器中選中名稱,右鍵,快照

因為新建的虛擬機器,裡面沒有什麼亂七八糟的東西,這個快照的獲取在幾秒之內就完成了.

完成後我們可以看到快照欄位已經有一個顯示,上面還表明了此快照的建立時間

我們再到此臺虛擬機器安裝目錄下的snapshots資料夾中一覽:

這回就不是空的了,

多了三個東西,一個XML文件,兩個資料夾,名字都很長.其實這個是為標示不同快照的GUID號碼,這裡就不多做介紹了.點開看看:

注意到,這裡有個格式為.AVHD的檔案,大小已經有85M多了,並且修改日期是1:09分了(我建立快照的時候可是0:56分).

其實這個AVHD檔案就是一個把建立快照之後虛擬機器上產生的新的資料新的變化寫入到的一個獨立的磁碟增量檔案.(0:56分我漏了這個檔案的截圖,那時候才有30多M大小).

也就是說當我們對某個虛擬機器做了snapshot,以後再對該虛擬機器所做修改都將存到相應的GUID.AVHD檔案中,所以這個檔案會隨著時間越來越大.

根據這點,也很好理解,這臺虛擬機器的原始.VHD檔案就會處於只讀狀態而不會變化.

我要是過了一陣子又建立了快照呢?

又會有新的基準和增量檔案的產生了.

我們再做快照,還會出現新的檔案......

這裡有很值得大家注意的一點,我來演示一下:

我已經確認前面做的快照不需要了,所以右鍵刪除:

刪除成功,我們還去此臺虛擬機器安裝目錄下的snapshots資料夾中一覽

你會發現:咦,你不是把快照都刪除了嗎,怎麼這幾個.AVHD檔案還在?

這個就是值得我們注意的地方:

在Hyper-V上面刪除了一個或多個快照以後,快照的檔案(.AVHD)並不會馬上被刪除.而是會在相應的虛擬機器關機的時候才整合到這臺虛擬機器的原始虛擬磁碟(.VHD)中.

我們來看看是不是 這麼回事:

注意到"正在進行合併"...

檔案目錄還在, .AVHD檔案消失了.

相信看了上面這麼多,大家對Hyper-V的snapshot功能已經有了更多的認識.

其實嚴格地從技術上講,虛擬機器快照應該不算是備份,並且它有很多侷限性以至於並不一定很適用於生產環境中.原因如下:

1.不能進行檔案粒度的恢復.當虛擬機器中我們存放的某個重要檔案丟失的時候,如果使用快照恢復,我們無法像用ntbackup工具一樣能指定要還原出那個檔案來,而必須要還原全部的快照內容.

2.如前面我們所知道的,快照檔案其實就是一個把發生快照之後虛擬機器上產生的新的資料新的變化寫入到一個獨立的磁碟增量檔案.隨著我們做了越來越多的快照,實體伺服器上的儲存空間也會被佔用的越來越多,所以我們不得不先去確認過期和不需要的快照並且將其刪除以防止儲存空間不足,這給我們日常管理和維護增加了不少難度.

3.當建立了很多快照以後,Hypervisor引擎就得檢查很多硬碟檔案以找到最新資料,就像我們上面看到的那樣,一層上有一層再有一層的感覺,這樣會增加很多物理I/O負載.尤其是物理伺服器上運行了若干臺儲存有大量快照的虛擬伺服器的時候.要解決此問題方法同2.

那麼,Hyper-V中還有哪些備份方式可以供我們選擇呢?又有什麼優勢呢?

淺談Hyper-V的幾種備份方式()

----Windows Server Backup & VSS

的幾種備份方式(一)----Snapshot虛擬機器快照>中,

我們一起加深了對Hyper-V的快照功能的理解,同時也看到了Snapshot這種技術作為備份方案的不足之處.

那麼我們今天來體驗一下使用Windows Server 2008中全新改版的備份工具Windows Server Backup進行對Hyper-V的備份還原吧.

在此之前,很有必要先對比一下Windows Server Backup(簡稱WSB)與前面版本作業系統中的ntbackup工具有什麼差異和進步.

1. WSB的備份還原操作更簡單,以磁碟卷為單位進行備份,同時只能備份本地磁碟上NTFS格式的卷

2. 更快速的備份技術,這是因為WSB使用了VSS卷影複製技術,VSS後面我們要重點介紹

3. 恢復應用程式的功能,這點和Hyper-V有很大聯絡,後面的演示部分大家會看到

4. 改進的備份計劃功能

5. 新增的WbAdmin命令列工具管理

6. 支援儲存裝置為可移動介質和光學介質驅動器等

還有其他一些優點就不一一提及了.

詳見http://technet.microsoft.com/zh-cn/library/cc754572(WS.10).aspx

我們還是邊看演示邊學習吧

Windows Server Backup的安裝

WSB在Windows Server 2008預設是沒有安裝的一個功能元件,所以我們需要先安裝它,安裝過程十分簡單.

Note:因為我是在生產環境中截的圖,所以這裡WSB功能已經安裝

調出WSB控制檯介面如下

我們可以操作的部分就是右邊綠色高亮圈出的.

我來為大家邊演示邊說明吧.

備份排程:即是備份計劃任務,因為此種備份需要一個單獨的磁碟作為儲存裝置,我的這臺伺服器硬體條件不滿足,所以就不多做介紹了.

來看看單次備份

這裡會提示是要對伺服器進行完整備份還是自定義備份,如果選擇完整備份的話WSB會對伺服器硬碟上的所有資料,包括應用程式及系統狀態等做備份.為了方便演示,我們自定義選擇只備份D盤.這臺伺服器D盤上可是放著幾臺虛擬機器的VHD磁碟檔案和配置檔案的哦.

說明一點,預設情況下”啟用系統修復”這個是勾選上的,所以在上面的磁碟卷的選擇上系統盤C盤也是被打上勾要備份的,目的很明確,就是像ntbackup中備份系統狀態一樣,如果你不想備份系統狀態,就需要把”啟用系統修復”勾選掉然後才能將系統卷排除在備份目標之外.

然後我們勾選要備份的D分割槽,下一步

我們需要選擇將生成的備份檔案存放於本地磁碟還是遠端資料夾內

這裡我選擇儲存在本地磁碟E

這裡我們需要選擇是使用VSS複製備份還是完整備份,如何選擇介面上說的很明白,如果還要用其他備份產品來備份應用程式,就要選擇複製備份,如果沒有用其他備份產品來備份應用程式的規劃,則選擇完整備份,其實這裡就是看你是否需要保留應用程式的日誌檔案.

我沒有打算使用其他備份產品,所以選擇完整備份,下一步

開始備份

資料比較多,讓他慢慢備著,趁這個時間我們來一起深入瞭解一下VSS卷影複製技術.

其實從Windows Server 2003開始,VSS技術已經被我們廣泛使用,應該有IT Pro朋友這樣做過: 通過使用VSS,在特定的捲上建立資料拷貝時間點;並在將來的某一時刻把資料恢復到任何一個你曾建立的時間點的狀態.

VSS卷影複製技術的概念:

什麼是VSS卷影複製?

VSS 是一套COM API,它部署了這樣的架構,讓卷備份能夠被執行同時系統上的應用程式繼續寫入卷。請求者、編寫器和提供程式它們在VSS架構中通訊來建立和恢復卷影副本。一個卷的影子副本及時地複製了載入在捲上處於正常狀態的所有的資料。

備份的過程包含下面這些步驟:

1. 請求者發起備份。接著請求者通知編寫器準備一個數據集便於備份。

2. 編寫器為備份準備資料。應用程式部署根據應用程式的特定要求準備資料的編寫器。在資料集準備好之後,編寫器用訊號通知請求者來備份資料集。

3. 提供程式與磁碟系統互動,並管理影子副本。當被請求者指示的時候,提供程式建立影子副本。

4. 請求者發訊號將備份成功或失敗的訊號傳送給編寫器,接著完成整個備份過程。

5. 通過分開請求者、編寫器和提供程式的功能,VSS 架構使得每個元件獨立於其他元件。一個請求者能夠與不同的提供程式或多個編寫器互動。

憑藉 VSS 服務、提供程式和編寫器的幫助,備份應用程式可以快速生成時間點的卷副本,應用程式可以知曉該副本並給予正確處理。

可能有的朋友覺得,對於運行於Hyper-V環境中的虛擬機器,我們只需要備份他的.VHD檔案,配置檔案甚至.AVHD檔案即可,但現實中並不是這麼簡單的.因為這些活動的虛擬機器系統是由記憶體資料,磁碟資料,系統配置和開啟檔案組成的計算機,所以我們還要考慮如何確保所有這些變化部件的資料一致性?

VSS技術及使用它的備份軟體的應用,就是為了滿足上面的要求.

注意:我們這裡討論的是在虛擬機器處於執行狀態時候的備份活動,而不是停機的,如果你的單位和使用者可以忍受關閉虛擬機器再進行磁碟檔案及系統配置檔案的備份,那麼就沒有必要使用VSS了…因為你關閉了虛擬機器再備份就不存在一邊要備份一邊還有資料不停更變的衝突.

說回Hyper-V

對於Hyper-V應用的常規備份,成熟的方案包括基於主機(host OS)的備份和基於來賓(guest OS)的備份.基於主機的備份就是上面提到的如果在保證資料一致性的前提下備份虛擬機器的VHD及配置檔案等等,基於來賓的備份則是考慮如何備份虛擬機器內中執行著的系統狀態,檔案或者應用程式.(說到此,想起來某位兄弟曾抱怨過虛擬機器也要裝防毒打補丁搞備份真麻煩!呵呵).

辦事周到的微軟為Hyper-V 設計提供了自身的 VSS 編寫器,它允許軟體製作者創建極具吸引力的備份解決方案。編寫器使備份應用程式能夠獲得執行中的虛擬機器的基於主機 VSS 備份。如果虛擬機器中執行的作業系統已安裝 Hyper-V 整合元件和 VSS 服務(Windows XP SP1 和 Windows Server 2003 及更高版本中提供),則基於主機的備份將以類似於在來賓內執行的方式進行,備份將在虛擬機器執行時執行且保持資料的一致性

說回Windows Server Backup, 因為它完全支援 VSS,所以它可以針對正在執行著的虛擬機器執行基於主機的備份,很好很強大。但是有一點, 虛擬機器中執行的作業系統需要安裝 Hyper-V 整合元件和 VSS 服務.如果來賓作業系統不支援“整合元件”或 VSS,那麼備份程序需要將來賓機器置於已儲存狀態,並且為虛擬機器資料檔案生成基於主機的 VSS 快照,以供時間點恢復使用。處於儲存狀態的 VSS 快照將導致 虛擬機器暫時停機(通常為 5-10 分鐘),以便將 VSS 資料副本完整備份;或者也可以將虛擬機器當作物理伺服器一樣在其內部執行ntbackup or WSB進行備份.

(以上部分內容參考微軟Technet網站文章)

可能是因為考慮到WindowsServer 2008分為with Hyper-V 及without Hyper-V,所以WSB中預設沒有提供對Hyper-V的支援,我們需要到登錄檔中手動修改一些鍵值從而註冊其 VSS 編寫器.

先新增

HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT \CurrentVersion\WindowsServerBackup\Application Support\{66841CD4-6DED-4F4B-8F17-FD23F8DDC3DE}
建立以上鍵值後,還要建立一個字串值(String Value)
Name: Application Identifier
Type: REG_SZ
Value: Hyper-V

要是你嫌麻煩,也可以在命令列提示符下執行:

reg add "HKLM\Software\Microsoft\windows nt\

currentversion\WindowsServerBackup\Application

Support\{66841CD4-6DED-4F4B-8F17-FD23F8DDC3DE}"

reg add "HKLM\Software\Microsoft\windows nt\

currentversion\WindowsServerBackup\Application

Support\{66841CD4-6DED-4F4B-8F17-FD23F8DDC3DE}" /v

"Application Identifier" /t REG_SZ /d Hyper-v

效果一樣的.

關於使用WSB & VSS備份Hyper-V的理論知識想必大家已經比較清楚了,這個時候伺服器上面也終於備份完了.

做好了備份,當然要測試一下能否還原,也就是測試備份的有效性

這裡是可以根據日期選擇還原點的,比以前的還原操作方便了很多,即使你做的是完整備份+增量備份,也不用像以前一樣先還原完備,再一個一個順序地還原增量備份,這裡直接選擇日期就搞定了.

下一步

這裡看好咯,我可以選擇中間的這一項”應用程式”,可能很多朋友看到網上別的教程或演示,到這裡的時候這一項是不可選的.

我來說明一下,這就是因為我已經按照前面的做法為Hyper-V在登錄檔中註冊了VSS編寫器(修改登錄檔後不用重啟物理機器的).

至於其他兩個選項我相信不用做過多的解釋了,一個是從備份中選定要還原的檔案資料等,一個是將整個卷都還原出來.

下一步

可以看到”Hyper-V

下一步

這裡我們要選擇還原到什麼位置

確認

還原進行中…

還原完成…

看看都還原出了什麼

系統盤(C:)儲存的Hyper-V的資訊和儲存虛擬機器的磁碟(D:)都有還原出來.

點開C_

點開D_

虛擬機器的磁碟檔案,配置檔案,乃至快照,都有完美地被還原出來哦.

演示就到這裡.

總結一下,

對於Hyper-V的高可用,如果你的企業中還沒有采取群集,遷移等方案,還是需要先穩妥地做好備份的.

而通過前面的演示,大家可以看到WSB&VSS對Hyper-V的線上備份已經支援的相當的好了,若是配合使用WSB的命令列工具WBAdmin,則可以定製出更多更靈活的備份策略.大家有興趣可以多深入學習一下.

有朋友想問,那麼還有沒有比Windows Server Backup更強大的備份方式呢,這個,還真有!我下篇會為大家介紹真正的企業級的資料保護解決方案產品---Data Protection Manager 2007 with SP1.敬請期待…