VMware快照功能如何工作
VMware快照功能是虛擬機磁盤文件(VMDK)在某個點及時的復本。萬一某些東西出錯了,你可以通過使用恢復到快照來保持磁盤文件系統和系統存儲。當升級應用和服務器及給它們打補丁的時候,快照是救世主。在這一系列文章中,TechTarget中國的特約虛擬化專家Eric Siebert將介紹VMware的快照功能,包括快照是什么、怎么工作以及一些先進的技術。
VMware快照功能之快照磁盤空間使用及增長率
如果你創建了多于一個的虛擬機快照,那么,你將有多個還原點可以用于恢復。當你創建了一個快照,那些現在可寫的在那個點上就變成了只讀的。使用in-file delta技術就能創建新文件記錄所有的關于原始磁盤文件的變更(delta)。
快照文件的大小不能超過原始磁盤文件的大小。任何時候,一個磁盤塊改變了,就將在delta文件里創建快照并能隨著改變而更新。如果進行一次快照后,你改變了每個單獨的磁盤存儲塊,這個快照將仍然象原始磁盤文件那么大??煺瘴募畛鹾苄。?6MB),不過,隨著對虛擬磁盤文件的寫入將增大。
16MB的快照空間用于降低SCSI預留沖突。當收到改變原始磁盤上存儲塊的請求,它代替在delta文件里的改變。如果先前在delta文件里更改了的磁盤存儲塊再次被更改,由于它簡單地更新在delta文件里現有的存儲塊,不會增加delta文件的大小。
快照的增長率由服務器上磁盤寫入活動發生次數決定。擁有磁盤寫入增強應用的服務器,諸如SQL和Exchange服務器,它們的快照文件增長很快。另一方面,擁有大部分靜態內容和少量磁盤寫入的服務器,諸如Web和應用服務器,它們的快照文件增長率很低。當你創建許多快照時,新delta文件被創建并且原先的delta文件變成只讀的了。每個擁有大量快照的delta文件可能變得和原始磁盤文件一樣大。
VMware快照功能之快照的類型
*–delta.vmdk file——當你創建一個虛擬機快照時,這是一個特定的文件。它也是redo-log日志。delta文件是在基礎VMDK(虛擬機磁盤)上的變更位圖,因此,它不能增長到比VMDK還大。為虛擬機創建每一個快照時,都會創建一個delta文件。當快照被刪除或在快照管理里被恢復時,這些文件將自動刪除。
*.vmsd file——這些文件用于存儲關于快照的元數據和信息。這個文件是本文格式的,里面包括諸如快照顯示名稱、UID(編號)和磁盤文件名等信息。在你沒創建虛擬機快照之前,這個文件的初始大小為0字節。這樣說來,只要進行快照,這個文件就會增大和持續更新。
在快照被移開后,這個文件不能被完全清除。一旦你刪除了個快照,它將仍然在文件里為每個快照遺留位置,不過僅增加編號并在“Consolidate Helper”里放置名稱,這可能是用來整合備份的。
*.vmsn file——這是快照狀態文件,里面存儲的是使用快照時,一臺虛擬機精確的運行狀態。這個文件大還是小取決于你選擇保留這臺虛擬機的存儲作為快照的一部分。如果你選擇保留虛擬機的存儲,那么,這個文件將比較大,然后分配給虛擬機***化的RAM。
這個文件類似于VMware暫停狀態文件.vmss。虛擬機每個快照都將創建一個.vmss文件;當移動快照時,這些文件自動刪除。
VMware快照功能之創建快照
你可以通過VMware Infrastructure Client(VI Client)里的Snapshot Manager或直接使用ESX Service控制臺上的指令行工具創建快照。使用指令可以啟動或關閉一臺虛擬機。當創建快照時也可以暫停虛擬機。如果虛擬機切斷了電源,你將不能選擇對虛擬機存儲進行快照。
通過使用直接連接到一臺ESX服務器或連接到VirtualCenter的VI Client來管理快照。如果你選擇使用命令行界面來代替,創建快照的語法是“vmware-cmd createsnapshot”,例如“vmware-cmd myvm1.vmx createsnapshot snap1 ’before upgrade’ 1 1”。停頓與存儲的選擇是1或0。選擇1將在進行快照前停止文件系統寫入。選擇1將快照虛擬機存儲狀態進行存儲。如果創建多個快照,一旦新的快照被創建,先前的快照變成只讀的。
VMware快照功能之刪除或恢復快照
當你為一臺虛擬機刪除所有快照時,所有創建的delta文件被合并到虛擬機原先的VMDK磁盤文件,然后被刪除。如果你選擇只刪除一個單獨的快照,這個快照合并到它的父級快照。如果你選擇恢復一個快照,當前的磁盤和存儲狀態被丟棄,虛擬機恢復到快照時的狀態。無論你恢復哪個快照, 這個快照就成為新的父級快照。然而,這個父級快照通常不是最近的快照。如果你恢復到一個舊的快照,它就變成虛擬機目前狀態的父級快照。在Snapshot Manager里可以看見這個父級快照,在它下面有一個標簽“You are here”。
你能使用VI Client或vmware-cmd命令行工具刪除或恢復快照。VI Client里的Snapshot Manager提供更高的靈活性,也比CLI(命令行界面)更容易使用。VI Client里的“Revert to Snapshot”選項與Snapshot Manager之間的一個重要差別是,恢復選項簡單地恢復到***一次快照,而Snapshot Manager能靈活地選擇恢復到某一特定的快照。這叫做“Go To in Snapshot Manager”。
如果你使用vmware-cmd,語法是“vmware-cmd removesnapshots”,這能移除所有快照,而“vmware-cmd revertsnapshot”能恢復到***一個快照。如果你需要移除或恢復特定的快照,你必須使用VI Client。
如果你恢復一個不包括存儲狀態的快照時,服務器將斷電,一旦重新啟動,將會使用先前的快照。如果快照包括存儲狀態,虛擬機將暫停,然后回到先前快照的磁盤和存儲狀態。
【編輯推薦】