VMware快照工作原理與類型
快照指的是虛擬磁盤(VMDK)在某一特定時間點的副本。通過快照可以在系統發生問題后恢復到快照的時間點,從而有效保護磁盤上的文件系統和虛擬機的內存數據。尤其對升級應用和服務器及打補丁的時候,快照可以發揮救世主的作用。本文將涉及VMware環境中使用快照需要了解的各種內容,包括其所在位置、工作原理和高級功能。
快照磁盤空間的使用和增長率
如果您對虛擬機創建了多個快照,就擁有了多個可以恢復的時間點狀態。在快照創建時,原本可讀寫的數據調整為只讀狀態。借助in-file delta校驗技術,生成新的文件用于保留所有相對于原磁盤文件發生了改變的數據塊部分。
生成的快照文件一定不會超出原始數據磁盤的大小。只要磁盤上的數據塊發生了變化,就會在delta文件中進行記錄并根據改變進行升級。假設在快照創建后,所有的原數據塊都發生過改變,快照文件的大小就增長到和原磁盤一樣大。另外會有一些額外的磁盤空間開銷用于存放快照的管理信息。開銷的***值根據VMFS數據塊大小的不同存在差異。
當某個VMFS卷上虛擬磁盤的大小接近于VMDK的***值時,由于這部分開銷的存在可能導致虛擬機快照創建過程失敗。例如,假設2MB數據塊大小的VMFS卷上,虛擬磁盤大小為512GB。快照可能會占用的***空間就是516GB(512GB+4GB),這超出該VMFS卷可支持的***VMDK值(512GB),從而引發快照創建的失敗。
所以,如果考慮使用快照,在創建虛擬機的虛擬磁盤時,要把***可能開銷一并計算在內,使其略小于***VMDK值(例如:512GB-4GB=508GB)。快照文件最初并不大(16MB),隨著對磁盤寫入數據的增加而增長。
快照以16MB為單位增長以降低SCSI預留沖突。當收到需要對原始磁盤做更改的需求時,就自動改為在delta文件中進行操作。如果是對delta文件中的數據進行二次更改,不會增加它的大小,只是簡單更新相對應的數據塊內容。
快照的增長率取決于服務器磁盤寫入動作發生的頻率。例如SQL和Exchange這種磁盤寫入密集型應用的話,快照文件增長迅速。而如果是Web和應用服務器的話,內容基本是靜態的寫入動作很少,相應的快照增長也很慢。當用戶創建多個快照時,新delta文件生成,同時把前一個delta文件狀態更改為只讀。在有多個快照的系統中,每個delta文件的大小都有可能增長到和原磁盤空間一樣大。
快照文件的類型
*--delta.vmdk文件:這是虛擬機快照創建后用于保存差異數據的文件,也被稱作redo-log文件。該delta文件是跟VMDK相對應的位圖文件,因此它不會超過基本VMDK空間的大小(不考慮快照開銷在內)。Delta文件在對虛擬機做快照時生成。同時生成的還有一個delta helper文件,用于保存快照進行刪除或回滾操作時磁盤上發生的改變。在快照管理器中對快照做刪除或回滾操作后,這些文件被自動刪除。
*.vmsd文件:該文件用于存放快照元數據和相關信息。它是文本格式的,包含了快照名、UID、磁盤文件名等內容。初始大小為0 字節,直到虛擬機的***快照創建后,文件內開始寫入相關信息并在每個新快照創建時進行更新。
即使快照被取消,該文件也不會完全清零。如果刪除了快照,該文件依然會記錄它在***時刻的UID,用于下一個快照參考。
*.vmsn文件:這是快照狀態文件,保存在該快照創建時間點上虛擬機完整的運行狀態。該文件的大小要取決于用戶是否選擇保留虛擬機的內存數據作為快照的一部分。如果選擇了保留內存,文件大小會比分配給虛擬機的***內存數大出幾個MB。
該文件類似于.vmss文件。.vmsn文件針對虛擬機上的每個快照創建,而在快照刪除后也自動被清除。
下文將介紹創建VMware快照的步驟及其使用方法。
【編輯推薦】