虛擬機快照技術是VMware乃至任何虛擬化平臺最為重要的組件之一。如果使用得當,其將會是一種理想的即時鏡像工具,可以在系統升級或者變更失敗時回滾到之前的狀態。如果系統遇到其他任何問題,快照還可以避免花費大量時間完成緩慢的系統恢復流程。
盡管在某些情況當中快照能夠起到很大幫助作用,但是系統備份仍然是必不可少的,快照不能取代原有的完全和增量備份機制。如果快照的使用方式或者應用范圍出現問題,同樣可能導致嚴重后果甚至是多臺虛擬機(VM)同時停機。
深入解析虛擬機快照創建過程
在理解快照的重要性之前,需要首先了解我們在創建和使用快照的過程當中究竟發生了哪些事情。
虛擬機快照是虛擬機磁盤或者內存的時間點(PIT)復本。管理員創建delta——也就是差異——文件,其中包含了創建快照后對虛擬機和文件系統所進行的任何更改。原始磁盤被完全凍結,任何寫入操作都將被記錄在delta文件當中,所以查詢請求需要到delta磁盤文件當中尋找已經發生變化的內容。
Delta文件體積不斷增長
需要注意的是delta文件并不會主動限制自己在data store當中所占用的存儲空間。圖1.展示了一種快照文件體積不斷增長的極端情況。這臺虛擬機擁有一個一年之前創建的快照文件,而這個快照文件現在已經消耗了超過20GB的存儲空間,我們可以看到其已經影響到虛擬機的性能表現。
占用超過20GB存儲空間的虛擬機快照將會嚴重影響虛擬機的性能表現
虛擬機文件結構每次發生變化時,delta文件體積也會隨之增長。因此如果快照沒有被及時移除,隨著文件體積的不斷增長,其最終會消耗完data store當中的所有可用空間。這種情況將會導致兩種潛在問題。首先,處于關機狀態的虛擬機將無法正常啟動,因為虛擬機管理器不能為其分配所需的磁盤空間。更為糟糕的是,當前處于運行狀態的虛擬機也將會開始出現各種問題,并且產生磁盤空間不足的報警。在一些情況當中,如果虛擬機嘗試在空間不足的data store當中進行寫入操作,還有可能導致數據丟失。
如果data store出現空間不足的情況,那么安裝精簡配置磁盤的虛擬機將會停機,而安裝了厚置備磁盤的虛擬機能夠提前分配所需的存儲空間,因此能夠繼續正常運行。因此需要嚴格控制虛擬機快照文件大小,VMware推薦單個快照實例的保存時間最長為72小時,以防止其占用過量的存儲空間或者嚴重影響系統的性能表現。
盡量避免多個快照
大多數情況下,應該避免為同一臺虛擬機創建多個快照;每次為系統創建新的快照,其運行速度都會變慢。每個快照都會建立相應的delta磁盤文件,如果虛擬機需要讀取多個delta文件,必然會增加系統的I/O負載。這個過程無疑會延長虛擬機的響應時間,并且產生額外的磁盤操作。
如果你只想保存一系列快照當中的最新版本,可以將它們整合為單一快照。這種方式可以幫助提升系統運行速度和管理效率。選擇目標虛擬機,單擊鼠標右鍵,之后選擇整合。你可以在虛擬機和模板視圖當中查詢虛擬機是否需要整合,并且在列表當中顯示所有需要進行整合的虛擬機。
快照包含的潛在問題
如果你嘗試使用vMotion或者Storage vMotion以外的方式來移動虛擬機,那么快照可能會導致一些問題。盡管你可以使用copy命令來復制任何文件,但是如果在具有快照的虛擬機上使用這種方式將會導致文件損壞等情況發生。
有幾種類型虛擬機不能為其制作快照。其中包括使用共享SCSI總線的虛擬機,比如集群服務器。并且不能為單獨磁盤制作快照。如果已經啟用physical raw device mapping,則不能為其創建快照,因為底層磁盤由虛擬機進行管理。也就是說,如果不是由VMware主機進行管理,便不能為其創建快照。
如果你運行的是ESXi 4或者之前的版本,那么還需要注意一些其他問題。首先,不能使用Storage vMotion技術遷移一臺具有多個快照的虛擬機。最為快速的解決方式是整合所有快照,這意味著不再能夠將虛擬機恢復到多個時間點的狀態。這種限制在vSphere 5當中被移除。另外一種經常發生的問題是當整合大型快照時,會出現主機暫時無響應的情況,但是主機上的虛擬機仍然在正常運行,這種情況持續一段時間之后會自動消失。
管理工具
盡管在使用快照的過程當中VMware Tools并不是必須的,但還是強烈推薦使用這種工具。VMware Tools允許操作系統停止——或者減少——磁盤活動,因此可以更加輕松地制作快照,而不再需要VMware主機創建PIT復本。
可以通過多種方式檢查快照文件大小,最為簡單的方式是使用RVTools或者啟用快照大小特性。
還可以在PowerCLI當中執行以下命令:
get-vm | get-snapshot
這種方式可以列出目標vCenter當中的所有快照。