VMWare虛擬機快照這個功能很是方便快捷,能夠備份副本和恢復系統。對虛擬機磁盤文件VMDK的某個狀態建立副本,當系統出現問題,能夠恢復快照來確保系統的正常。VMwware虛擬機快照技術很是有用,可是也有美中不足,不是那麼完美。數據庫
快照(Snapshot):虛擬機的救命稻草安全
硬盤快照(Snapshot)是當前數據中心最佳的數據保護機制之一。不管是基於SAN的快照技術,仍是創建在文件系統或操做系統中的,快照技術可以在錯誤出現時讓損失降到最低。但並非全部的快照技術並不是都是面向意外的數據丟失,好比VMware ESX服務器及桌面虛擬化平臺上的快照技術。服務器
與其餘的快照技術不一樣,VMware的快照並非很是適合用於數據保護,但它稱得上是一個很是有用的工具,只要可以用的恰當。ide
從根本上來講,VMware的快照適合兩種狀況:工具
一、將一個虛擬機的磁盤隔離,再也不寫入數據,這樣能夠進行備份;性能
二、在打補丁和軟件升級時提供一個短時間的自動恢復功能。在開發環境中,可能常常會見到利用快照來保存一些實時狀態的鏡像,可是這樣的方式在一個性能敏感的生產環境中是不可取的。測試
虛擬機快照結構,能夠恢復到補丁前的狀態ui
在一個典型的環境中,一個虛擬機的磁盤資源是由位於VMware獨有的VMFS文件系統或NFS存儲上的VMDK文件(virtual machine disk的縮寫)組成,它的大小几乎等同於虛擬機的磁盤資源。因此若是你的Windows 2003 Server有15GB的系統硬盤,那麼在VMFS捲上會出現一個15GB的VMDK文件。操作系統
若是使用hypervisor對虛擬機進行快照,系統會建立第二個VMDK文件(有時叫作redo log),這個文件存儲着進行快照後虛擬機全部寫入的東西,這樣的功能具備幾個明顯的優點:調試
首先,因爲快照VMDK文件存儲着對基礎VMDK的寫入操做,實際上基礎VMDK不會被更改。這意味着在快照創建以後若是出現一些錯誤,能夠很容易的將這些錯誤「扔掉」,恢復到進行快照以前的基礎磁盤狀態。一樣,因爲當快照存在時基礎VMDK並不會被寫入,這樣就能夠安全的對基礎VMDK建立副原本進行備份。
虛擬機快照的不足之處
然而,VMware的快照功能還有一些不足之處,也是應當注意的。
例如,當快照建立時虛擬機執行一個讀操做,hypervisor會檢查快照VMDK,查看是否有被讀取的區塊存在。若是有,則從快照中爲虛擬機提供這個區塊,若是沒有,虛擬機還須要去讀取基礎VMDK。若是隻有一個快照,這並非什麼問題,只不過是重複來讀取VMDK。可是若是有大量快照存在,好比在兩週內天天創建一個,那麼hypervisor須要在14個快照文件中查找這個區塊,這就會消耗大量的讀I/O。
更糟糕的是,沒有完善的機制來阻止這些快照的增加,若是你天天爲一個Windows 2003虛擬機進行快照,大概天天須要消耗2GB的存儲空間,這對大多數虛擬機來講仍是很是保守的數字。大致上來講,你須要爲虛擬機配置雙倍的空間來存儲這些更改。
若是換個角度來看,實際幾乎全部的快照技術,包括SAN快照,都要消耗很大的存儲空間。但有所不一樣的是VMware快照沒有自動保護機制,防止VMFS卷被不斷增加的快照填滿。而大部分SAN當分配的快照空間被填滿時會自動刪除最先的快照。一旦VMSF卷被填滿,當前的快照文件就不能再寫入,而虛擬機也可能會崩潰。若是有不少虛擬機,而且快照都存在相同的VMFS捲上,這些虛擬機均可能會崩潰,這是災難性的。
還有一個潛在的陷阱,hypervisor會經過磁盤停頓進程(disk quiescing)試圖確認快照的應用程序持續狀態,儘管能夠再不停頓硬盤的狀況下建立快照,可是這時候只能創建crash-consistent快照,若是在crash-consistent快照創建後恢復基礎磁盤,操做系統和應用程序會出現貌似非正常關機時的狀態。磁盤停頓功能讓操做系統和應用程序能夠找到合適的停頓點,好比完成寫入,防止數據被損壞。
根據操做系統在虛擬機中的運行情況,能夠經過不一樣的方式實現磁盤停頓。這些都須要應用安裝在虛擬機操做系統中的VMware工具包。若是你運行的是一個新近版本的Windows系統,VMware工具將使用微軟的卷影副本服務(VSS)在虛擬機I/O中建立一個臨時的停頓,讓VMware軟件來建立更底層的磁盤快照。
然而,在進行大量磁盤I/O傳輸的虛擬機中,如微軟SQL數據庫平臺或Exchange,卷影副本服務(VSS)可能會須要大量的調試才能工做正常。VSS工做並非那麼穩定,有時候,此次正常,而下次就可能出現故障。這是惱人的,特別是在但願經過停頓快照來對虛擬機進行更好的備份的時候。
小結:
雖然有些不足之處可是若是使用正確,VMware的快照仍是一個很是優秀的工具,不管是在主要的升級或打補丁前爲虛擬建立短時間的實時副本,仍是容許第三方備份軟件對虛擬機執行direct-from-SAN的備份。能有效使用快照功能的前提是理解它們的工做原理,可能偶爾須要調試一下。若是要在運行關鍵任務的虛擬機上用VMware快照,更要當心謹慎,最好先進行測試。