博客專欄

EEPW首頁 > 博客 > VMware的快照原理

VMware的快照原理

發(fā)布人:天翼云開發(fā)者 時間:2025-01-10 來源:工程師 發(fā)布文章

本文分享自天翼云開發(fā)者社區(qū)《VMware的快照原理》,作者:m****n

VMware的快照是基于數(shù)據(jù)塊的快照。快照也是以一個文件方式存在的,缺省位置和虛擬機在同一目錄下,它是一個Delta文件。每一次的快照就會產(chǎn)生一個新的Delta文件,而以前的Delta文件就進入一個只讀狀態(tài)。并且它是以16MB的大小來進行增長的。

快照文件的最大大小是不可能超過原磁盤文件的大小。

快照的不同類型:

1. *-delta.vmdk文件:這是當你對一個VM做一個快照時產(chǎn)生的差異文件,也就是一個redo-log文件。Delta文件是一個針對初始VMDK而產(chǎn)生變化的一個Bitmap。

2. *.vmsd文件:這個一個是用來存放關(guān)于快照的metadata和相關(guān)信息的文件。它是一個文本文件,存放一些諸如快照名,UID,磁盤文件名等等。它起始大小是0字節(jié),直到做了第一個快照時才會改變大小。

3. *.vmsn文件:這是一個快照狀態(tài)文件,它存放的是當你做快照時虛擬機的真實運行狀態(tài)。它的大小據(jù)于你是否選擇保留VM的內(nèi)存作為快照的一部分相關(guān)。

命令行創(chuàng)建快照 

vmware-cmd myvm1.vmx createsnapshot snap1 'before upgrade' 1 1".

The options for quiesce and memory are either 1 for yes or 0 for no.

快照的刪除或恢復(fù)

當你刪除一個VM的所有快照時,所有在快照時創(chuàng)建出來的Delta文件被融合回原來的VMDK文件,然后刪除這些Delta文件。但當你只刪除一個快照時,那么只有這個快照會融合回它的上一級快照。

當你恢復(fù)一個快照時,現(xiàn)有的磁盤和內(nèi)存狀態(tài)被丟棄,然后VM被帶回到那個時間點的狀態(tài),而這個快照成為新的父級快照。父級快照不一定就是最新做的快照,它在快照管理器中被標注為“you are here”。

當你用vmware-cmd來做時,vmware-cmd removesnapshots會刪除所有的快照,vmware-cmd revertsnapshot會復(fù)原到最近的快照。若你要刪除或復(fù)原到某一個快照時,你不能用命令行而需要用VIC。

若你復(fù)原一個不包含內(nèi)存狀態(tài)的快照,當你將VM啟動時,它將會應(yīng)用前一個快照。 

如何找到那些有快照的VM呢?

到/vmfs/volumes目錄下: 運行 find –iname “*-delta.vmdk” –mtime +7 –ls 可以找到在7天內(nèi)沒有改變的快照。運行 find –iname “*-delta.vmdk可以找到所有的快照文件。

如何改變快照文件的缺省位置

在VM的配置文件VMX中加一句: workingDir=”/vmfs/volumes/Snapvolume/snapshots/”。

在做Vomtion時,若你的快照文件不在共享存儲位置或新ESX主機不能訪問快照文件時,當遷移做完時,VM會崩潰掉。所以,建議在做Vmotion時,最好先把快照commit掉。

快照與磁盤空間的關(guān)系: 

當一個VM只有一個快照時,當你刪除或commit快照時,你不需要額外的空間。但當一個VM有多個快照時,當你刪除所有快照時,你需要額外的空間。

假設(shè)你要刪除一個VM的所有快照(snap1,snap2,snap3),首先,snap3將融合進snap2,這將導(dǎo)致snap2增長,接下來,snap2將融合進snap1,這會導(dǎo)致snap1增長。最后,snap1將融合進原來的VMDK,這不需要額外的空間。只有當VMDK文件融合操作完成時,快照才會被刪除,所以當一個有20G大小快照的VM在做commit時潛在地需要額外的20G。

*博客內(nèi)容為網(wǎng)友個人發(fā)布,僅代表博主個人觀點,如有侵權(quán)請聯(lián)系工作人員刪除。



關(guān)鍵詞: 云計算 快照 VMware

相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉