博客專欄

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

        VMware的快照原理

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

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

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

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

        快照的不同類型:

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

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

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

        命令行創建快照 

        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.

        快照的刪除或恢復

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

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

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

        若你復原一個不包含內存狀態的快照,當你將VM啟動時,它將會應用前一個快照。 

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

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

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

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

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

        快照與磁盤空間的關系: 

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

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

        *博客內容為網友個人發布,僅代表博主個人觀點,如有侵權請聯系工作人員刪除。



        關鍵詞: 云計算 快照 VMware

        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 固安县| 绩溪县| 宜兰县| 衡阳市| 临沂市| 曲阳县| 清镇市| 监利县| 楚雄市| 青岛市| 韶山市| 安龙县| 巴林左旗| 揭东县| 会宁县| 泽州县| 和龙市| 渑池县| 金川县| 花垣县| 武义县| 突泉县| 元阳县| 新宾| 清镇市| 太湖县| 乌苏市| 天等县| 湖州市| 丽水市| 县级市| 咸阳市| 漯河市| 商南县| 平远县| 腾冲县| 龙胜| 静安区| 托克逊县| 合江县| 西畴县|