VMware的快照原理
本文分享自天翼云開發(fā)者社區(qū)《VMware的快照原理》,作者:m****n
VMware的快照是基于數(shù)據(jù)塊的快照??煺找彩且砸粋€(gè)文件方式存在的,缺省位置和虛擬機(jī)在同一目錄下,它是一個(gè)Delta文件。每一次的快照就會(huì)產(chǎn)生一個(gè)新的Delta文件,而以前的Delta文件就進(jìn)入一個(gè)只讀狀態(tài)。并且它是以16MB的大小來進(jìn)行增長的。
快照文件的最大大小是不可能超過原磁盤文件的大小。
快照的不同類型:
1. *-delta.vmdk文件:這是當(dāng)你對(duì)一個(gè)VM做一個(gè)快照時(shí)產(chǎn)生的差異文件,也就是一個(gè)redo-log文件。Delta文件是一個(gè)針對(duì)初始VMDK而產(chǎn)生變化的一個(gè)Bitmap。
2. *.vmsd文件:這個(gè)一個(gè)是用來存放關(guān)于快照的metadata和相關(guān)信息的文件。它是一個(gè)文本文件,存放一些諸如快照名,UID,磁盤文件名等等。它起始大小是0字節(jié),直到做了第一個(gè)快照時(shí)才會(huì)改變大小。
3. *.vmsn文件:這是一個(gè)快照狀態(tài)文件,它存放的是當(dāng)你做快照時(shí)虛擬機(jī)的真實(shí)運(yùn)行狀態(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ù):
當(dāng)你刪除一個(gè)VM的所有快照時(shí),所有在快照時(shí)創(chuàng)建出來的Delta文件被融合回原來的VMDK文件,然后刪除這些Delta文件。但當(dāng)你只刪除一個(gè)快照時(shí),那么只有這個(gè)快照會(huì)融合回它的上一級(jí)快照。
當(dāng)你恢復(fù)一個(gè)快照時(shí),現(xiàn)有的磁盤和內(nèi)存狀態(tài)被丟棄,然后VM被帶回到那個(gè)時(shí)間點(diǎn)的狀態(tài),而這個(gè)快照成為新的父級(jí)快照。父級(jí)快照不一定就是最新做的快照,它在快照管理器中被標(biāo)注為“you are here”。
當(dāng)你用vmware-cmd來做時(shí),vmware-cmd removesnapshots會(huì)刪除所有的快照,vmware-cmd revertsnapshot會(huì)復(fù)原到最近的快照。若你要?jiǎng)h除或復(fù)原到某一個(gè)快照時(shí),你不能用命令行而需要用VIC。
若你復(fù)原一個(gè)不包含內(nèi)存狀態(tài)的快照,當(dāng)你將VM啟動(dòng)時(shí),它將會(huì)應(yīng)用前一個(gè)快照。
如何找到那些有快照的VM呢?
到/vmfs/volumes目錄下: 運(yùn)行 find –iname “*-delta.vmdk” –mtime +7 –ls 可以找到在7天內(nèi)沒有改變的快照。運(yùn)行 find –iname “*-delta.vmdk可以找到所有的快照文件。
如何改變快照文件的缺省位置:
在VM的配置文件VMX中加一句: workingDir=”/vmfs/volumes/Snapvolume/snapshots/”。
在做Vomtion時(shí),若你的快照文件不在共享存儲(chǔ)位置或新ESX主機(jī)不能訪問快照文件時(shí),當(dāng)遷移做完時(shí),VM會(huì)崩潰掉。所以,建議在做Vmotion時(shí),最好先把快照commit掉。
快照與磁盤空間的關(guān)系:
當(dāng)一個(gè)VM只有一個(gè)快照時(shí),當(dāng)你刪除或commit快照時(shí),你不需要額外的空間。但當(dāng)一個(gè)VM有多個(gè)快照時(shí),當(dāng)你刪除所有快照時(shí),你需要額外的空間。
假設(shè)你要?jiǎng)h除一個(gè)VM的所有快照(snap1,snap2,snap3),首先,snap3將融合進(jìn)snap2,這將導(dǎo)致snap2增長,接下來,snap2將融合進(jìn)snap1,這會(huì)導(dǎo)致snap1增長。最后,snap1將融合進(jìn)原來的VMDK,這不需要額外的空間。只有當(dāng)VMDK文件融合操作完成時(shí),快照才會(huì)被刪除,所以當(dāng)一個(gè)有20G大小快照的VM在做commit時(shí)潛在地需要額外的20G。
*博客內(nèi)容為網(wǎng)友個(gè)人發(fā)布,僅代表博主個(gè)人觀點(diǎn),如有侵權(quán)請(qǐng)聯(lián)系工作人員刪除。