您好,登錄后才能下訂單哦!
這篇文章給大家介紹如何進行VMware的虛擬機快照深入解析,內容非常詳細,感興趣的小伙伴們可以參考借鑒,希望對大家能有所幫助。
一、什么是快照?
快照可保存虛擬機在特定時刻的狀態(tài)和數據。
? 狀態(tài)包括虛擬機的電源狀態(tài)(例如,打開電源、關閉電源、掛起)。
? 數據包括組成虛擬機的所有文件。這包括磁盤、內存和其他設備(例如虛擬網絡接口卡)。
虛擬機提供了多個用于創(chuàng)建和管理快照及快照鏈的操作。通過這些操作,我們可以創(chuàng)建快照、還原到鏈中的任意快照以及移除快照。
二、快照文件
快照由存儲在受支持的存儲設備上的文件組成?!皥?zhí)行快照”操作會創(chuàng)建 .vmdk、-delta.vmdk、.vmsd 和 .vmsn 文件。默認情況下,第一個以及所有增量磁盤與基本 .vmdk 文件存儲在一起。.vmsd 和 .vmsn 文件存儲在虛擬機目錄中。
增量磁盤文件:客戶機操作系統可以寫入的 .vmdk 文件。增量磁盤表示虛擬磁盤的當前狀況和上次執(zhí)行快照時存在的狀況之間的差異。執(zhí)行快照時,將保留虛擬磁盤的狀況,從而阻止客戶機操作系統寫入,并會創(chuàng)建增量磁盤或子磁盤。
增量磁盤具有兩個文件,即包含虛擬磁盤相關信息(例如幾何結構和父子關系信息)的較小的描述符文件和包含原始數據的對應文件。
注:如果要在 vSphere Client 中使用數據存儲瀏覽器查看數據存儲,則僅會看到一個條目用于表示這兩個文件。
構成增量磁盤的文件稱為子磁盤或重做日志。子磁盤為稀疏磁盤。稀疏磁盤使用寫入時復制機制,其中虛擬磁盤不包含任何數據,直到通過寫入操作將數據復制到磁盤。此優(yōu)化可節(jié)省存儲空間。粒度是稀疏磁盤使用寫入時復制機制的度量單位。每個粒度均是一個包含虛擬磁盤數據的扇區(qū)塊。默認大小為 128 個扇區(qū)或 64 KB。
平面文件
-flat.vmdk 文件,組成基本磁盤的兩個文件之一。平面磁盤包含基本磁盤的原始數據。該文件在數據存儲瀏覽器中不顯示為單個文件。
數據庫文件
.vmsd 文件,包含虛擬機的快照信息,并且是快照管理器的主要信息源。該文件包含行條目,這些條目定義了快照之間以及每個快照的子磁盤之間的關系。
內存文件
.vmsn 文件,包含虛擬機的活動狀況。通過捕獲虛擬機的內存狀況,可恢復到已打開虛擬機狀況。使用非內存快照,僅能恢復到已關閉虛擬機狀況。創(chuàng)建內存快照需要的時間比創(chuàng)建非內存快照需要的時間長。ESX 主機將內存寫入磁盤所需的時間與配置虛擬機使用的內存量有關。
三、快照原理
快照采用的是“寫時復制(Copy On Write)”的技術,實現原理比較簡單,快照時復制一份原磁盤的索引,指向的實際數據均為原始磁盤的數據,只有當原鏡像的的數據發(fā)生變化時,才將變化區(qū)域的在變化之前的數據復制一份給快照對應位置。所以打快照的時候數據比較小,后面會越來越大。
虛擬機磁盤采用的是vmdk格式的文件,虛擬機擁有幾個磁盤對虛機做快照就會有幾個vmdk文件,虛擬機快照產生的數據是與虛擬機磁盤數據存放在同一個存儲空間中的,所以存儲位置就是虛擬機本身的存儲位置,即如果虛擬機所在存儲訪問不了,其快照也就無法恢復了。
當我們?yōu)樘摂M機創(chuàng)建快照時,當前可寫的VMDK文件變成為只讀狀態(tài),并且創(chuàng)建一個新文件(稱之為快照文件)來保存變化的內容(使用in-file delta technology)。
快照鏈:就是多個快照組成的關系鏈,這些快照按照創(chuàng)建時間排列成鏈
在初始狀態(tài)下,快照文件的大小為16MB,并隨著虛擬機對磁盤文件的寫操作而增長??煺瘴募凑?6MB的大小進行增長以減少SCSI reservation沖突。當虛擬機需要修改原來的磁盤文件的數據塊時,這些修改會被保存到快照文件中。當在快照文件中的已經修改過的數據塊需要被再次修改時,這些修改將覆蓋快照文件中的數據塊,此時,快照文件大小不會改變。因此,快照文件的大小永遠不會超過原來的VMDK文件的大小。
快照文件的變化頻率取決于虛擬機應用的寫的繁忙程度,例如對于Exchange和SQL、ORACLE等應用,快照文件變化比較快。多個快照的情況下,在創(chuàng)建新的快照時,之前的快照文件變成只讀的狀態(tài)。
四、虛擬機快照
VMware的虛擬機“快照”功能是對虛擬機磁盤文件VMDK的某個狀態(tài)創(chuàng)建副本,當系統出現異常,可以通過恢復快照來保證系統的正常。VMwware的虛擬機快照技術是非常有用的,但是也有需要注意的局限性。
1、快照并不是非常適合用于數據保護
無論是基于SAN的快照技術,還是建立在文件系統或操作系統中的,快照技術能夠在錯誤出現時讓損失降到最低。但并不是所有的快照技術并非都是面向意外的數據丟失,比如VMware ESX服務器及虛擬化平臺上的快照技術、數據庫的快照。
從根本上來說,VMware的快照比較適合兩種情況:1、將一個虛擬機的磁盤隔離,不再寫入數據,這樣可以進行備份 2、在打補丁和軟件升級時提供一個短期的自動恢復功能。在開發(fā)環(huán)境中,可能經常會見到利用快照來保存一些實時狀態(tài)的鏡像,但是這樣的方式在一個性能敏感的生產環(huán)境中是不可取的。
在這個圖中,虛機可方便的恢復到每次補丁前的狀態(tài)
在一個典型的環(huán)境中,一個虛擬機的磁盤資源是由位于VMware獨有的VMFS文件系統或NFS存儲上的VMDK文件(virtual machine disk的縮寫)組成,它的大小幾乎等同于虛擬機的磁盤資源。所以如果你的Windows 2000 professional有15GB的系統硬盤,那么在VMFS卷上會出現一個15GB的VMDK文件。
如果使用hypervisor對虛擬機進行快照,系統會創(chuàng)建第二個VMDK文件(有時叫做redo log),這個文件存儲著進行快照后虛擬機所有寫入的東西,這樣的功能具有幾個明顯的優(yōu)勢:
首先,由于快照VMDK文件存儲著對基礎VMDK的寫入操作,實際上基礎VMDK不會被更改。這意味著在快照建立之后如果出現一些錯誤,可以很容易的將這些錯誤“扔掉”,恢復到進行快照之前的基礎磁盤狀態(tài)。同樣,由于當快照存在時基礎VMDK并不會被寫入,這樣就可以安全的對基礎VMDK創(chuàng)建副本來進行備份。
2、快照容易消耗大量的存儲空間
當快照創(chuàng)建后虛擬機執(zhí)行一個讀操作,hypervisor會檢查快照VMDK,查看是否有被讀取的區(qū)塊存在。如果有,則從快照中為虛擬機提供這個區(qū)塊,如果沒有,虛擬機還需要去讀取基礎VMDK。如果只有一個快照,這并不是什么問題,只不過是重復來讀取VMDK。但是如果有大量快照存在,比如在兩周內每天建立一個,那么hypervisor需要在14個快照文件中查找這個區(qū)塊,這就會消耗大量的讀I/O。
更糟糕的是,沒有完善的機制來阻止這些快照的增長,如果你每天為一個Windows 2000虛擬機進行快照,大概每天需要消耗2GB的存儲空間,這對大多數虛擬機來說還是非常保守的數字。大體上來說,你需要為虛擬機配置雙倍的空間來存儲這些更改。
換個角度來看,實際幾乎所有的快照技術,包括SAN快照,都會消耗很大的存儲空間。但有所不同的是VMware快照沒有自動保護機制,防止VMFS卷被不斷增長的快照填滿。而大部分SAN當分配的快照空間被填滿時會自動刪除最早的快照。一旦VMSF卷被填滿,當前的快照文件就不能再寫入,而虛擬機也可能會崩潰。如果有很多虛擬機,并且快照都存在相同的VMFS卷上,這些虛擬機都可能會崩潰,這是災難性的。
還有一個潛在的陷阱,hypervisor會通過磁盤停頓進程(disk quiescing)試圖確認快照的應用程序持續(xù)狀態(tài),盡管可以在不停頓硬盤的情況下創(chuàng)建快照,但是這時候只能建立crash-consistent快照,如果在crash-consistent快照建立后恢復基礎磁盤,操作系統和應用程序會出現貌似非正常關機時的狀態(tài)。磁盤停頓功能讓操作系統和應用程序可以找到合適的停頓點,比如完成寫入,防止數據被損壞。
根據操作系統在虛擬機中的運行狀況,可以通過不同的方式實現磁盤停頓。這些都需要應用安裝在虛擬機操作系統中的VMware工具包。如果你運行的是一個新近版本的Windows系統,VMware工具將使用微軟的卷影副本服務(VSS)在虛擬機I/O中創(chuàng)建一個臨時的停頓,讓VMware軟件來創(chuàng)建更底層的磁盤快照。
然而,在進行大量磁盤I/O傳輸的虛擬機中,如微軟SQL數據庫平臺或Exchange,卷影副本服務(VSS)可能會需要大量的調試才能工作正常。VSS工作并不是那么穩(wěn)定,有時候,這次正常,而下次就可能出現故障。這是惱人的,特別是在希望通過停頓快照來對虛擬機進行更好的備份的時候。
3、快照與磁盤空間利用率
? 如果虛擬機正在運行快照,則其正在對子磁盤或稀疏磁盤進行更改。對該磁盤執(zhí)行的寫入操作越多,該磁盤就會變得越大,直至達到上限(基礎磁盤大小與少量開銷之和)。
? 在子磁盤的空間要求中,除了其所依賴的父磁盤的空間要求之外還有附加要求。如果虛擬機具有一個帶子磁盤的 10 GB 磁盤,則使用的空間為 10 GB + 快照的大小 + .vmsn 文件大小 + 開銷。
? 子磁盤會增長得很大,乃至填滿整個數據存儲,但這是因為包含數據存儲的 LUN 不夠大,無法容納基礎磁盤、已創(chuàng)建的快照數量、相關開銷和已創(chuàng)建的 .vmsn 文件。
? 子磁盤的增長速度直接取決于對磁盤執(zhí)行的 I/O 量。
? 子磁盤的大小對刪除與子磁盤關聯的快照所用的時間有直接影響。
4、快照整合
快照整合命令將在不違反數據依賴關系的情況下搜索要進行組合的層次結構或增量磁盤。整合后,將移除冗余磁盤,這樣便可提高虛擬機性能并保存存儲空間??煺照希喊阉械目煺照蠟橐粋€快照,整合以后將移除冗余磁盤,可以提高虛擬機性能.
在只有一個快照時,在刪除快照時不需要額外的空間。因為要么直接刪除快照文件,要么把快照文件和VMDK磁盤文件相合并。(如果一個虛機掛載有多個盤,則對虛機快照則在多個盤上都有快照文件,整合時需要預估每個盤的剩余空間(空間不夠需要單另掛一個大的盤把數據量包?。?,而且整合時的操作是串行的。)
但是在有多個快照的情況時,效果就不一樣了。
假設要刪除一個虛擬機的所有快照,該虛擬機有三個快照,snap1、snap2和snap3。首先,snap3的快照文件要被合并到snap2的快照文件 中,導致snap2占用空間增加。然后,snap2被合并到snap1中,導致snap1占用的空間增加。最后,snap1合并到VMDK文件中,此時不會增加空間開銷。在合并完成后,快照才會被刪除。
一種替代的方式是依次刪除快照,這樣就不會增加所需要的空間,只是稍微繁瑣一些。
刪除快照所需要的時間
通 過VI客戶端刪除快照時,VI的狀態(tài)欄中顯示的信息可能會產生誤導。通常,狀態(tài)欄會很快到達95%完成的狀態(tài),但是會在95%的狀態(tài)等待較長的時間一直到 合并完成。VirtualCenter對所有的任務都有15分鐘的超時值,即使后臺還在合并,但是過了15分鐘后,VirtualCenter會報告該操作超時。
一種查看該任務是否完成的方式是通過VI客戶端來瀏覽該虛擬機的datastore。如果該快照對應的delta文件不存在了,則說明該快照被刪除了。
如果快照存在的時間比較長,那么快照文件就會變得比較大,因此在刪除快照時就需要比較長的時間進行合并。合并的時間取決于虛擬機的繁忙程度,在關機的狀態(tài)下合并的速度較快。而ESX服務器后端的磁盤子系統的繁忙程度也會影響合并的時間。
一 個100GB的快照文件可能需要3-6個小時來合并到原來的VMDK文件中。而從ESX3.5開始,由于VMware修改了合并的算法,可能需要更長的時 間來合并(參見VMware文檔Consolidation of large or deeply nested snapshots)。這會影響虛擬機和ESX服務器的性能。因此,建議限制快照的保留時間,當不需要時即刻刪除快照。
快照和metadata鎖對ESX性能的影響
快 照對ESX服務器以及虛擬機的性能影響體現在幾個方面。但創(chuàng)建快照時,虛擬機的活動會暫時停頓一下,此時如果通過ping命令去檢查虛擬機的狀態(tài),可以看 到一些timeout的response。此外,創(chuàng)建快照會導致metadata的更新,為了避免SCSI Reservations沖突會短時間內對LUN加鎖,從而導致在短暫的時間內,這個LUN將只能由一個ESX服務器進行排他性訪問。
如 果為虛擬機創(chuàng)建了快照,虛擬機在運行的狀態(tài)中,該快照是活躍的。只要快照是活躍的,那么虛擬機的性能就會下降。因為ESX服務器對delta文件的寫入方 式不同于VMDK文件,而且效率相對較低。delta文件每次以16MB的大小來增長,它會導致另一種metadata鎖。
最后,刪除或者回滾快照都會創(chuàng)建一個metadata鎖。此外,刪除快照時可能會導致性能比較大的下降,虛擬機越忙越明顯。為了避免這個問題,快照的刪除最好在非高峰時期。
5、快照的限制
快照可能會影響虛擬機性能,且不支持某些磁盤類型或使用總線共享配置的虛擬機??煺兆鳛槎唐诮鉀Q方案用于捕獲時間點虛擬機狀況很有用,但不適用于長期虛擬機備份。另外要避免多個快照,快照不要保留太長時間。
■VMware 不支持對裸磁盤、RDM 物理模式磁盤或在客戶機中使用 iSCSI 啟動器的客戶機操作系統的快照。
■在執(zhí)行快照之前必須關閉具有獨立磁盤的虛擬機的電源。不支持具有獨立磁盤的已打開電源或已掛起的虛擬機的快照。
■PCI vSphere Direct Path I/O 設備不支持快照。
■VMware 不支持為總線共享配置的虛擬機的快照。如果需要使用總線共享,則作為備用解決方案,請考慮在客戶機操作系統中運行備份軟件。如果虛擬機當前具有快照,并阻止您配置總線共享,請刪除(整合)這些快照。
■快照提供備份解決方案可以使用的磁盤的時間點映像,但快照不是備份和恢復的可靠方法。如果包含虛擬機的文件丟失,則其快照文件也丟失。另外,大量快照將難于管理,占用大量磁盤空間,并且在出現硬件故障時不受保護。
備份解決方案(如 VMware Data Recovery)使用快照機制來凍結虛擬機的狀況。Data Recovery 備份方法具有可降低快照限制的其他功能。
■快照可能會對虛擬機的性能產生負面影響。性能降低基于快照或快照樹保持原位的時間、樹的深度以及執(zhí)行快照后虛擬機及其客戶機操作系統發(fā)生更改的程度。另外,還可能會看到打開虛擬機電源所花費的時間變長。不要永久從快照運行生產虛擬機。
盡管有很多不足,但如果使用正確,VMware的快照可以說是一個優(yōu)秀的工具,無論是在主要的升級或打補丁前為虛擬創(chuàng)建短期的實時副本,還是允許第三方備份軟件對虛擬機執(zhí)行direct-from-SAN的備份。然而,能有效使用快照功能的前提是理解它們是如何工作的,可能偶爾需要進行一些調試。
另外需要注意的是,如果要在運行關鍵任務的虛擬機應用VMware快照功能,要更加小心謹慎,最好先進行測試。
注:VMWARE推薦單個快照實例的保存時間最長為72小時。
備份和快照的情況是不一樣的。
? 虛擬機從備份還原的時候必需在還原后才可以開機
? 虛擬機從快照恢復時,可以保持開機狀態(tài)
關于如何進行VMware的虛擬機快照深入解析就分享到這里了,希望以上內容可以對大家有一定的幫助,可以學到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。
免責聲明:本站發(fā)布的內容(圖片、視頻和文字)以原創(chuàng)、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。