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