close

由於 ESX snapshot 的方便性,許多人習慣將它用於 VM 的備份用途,可以任意回到想要的時間點,但其實這並非正確的做法。ESX 快照的用途很廣泛,事實上 VMware 許多技術是以 snapshot 為基礎來達成的 (例如 VCB、VDR、Storage vMotion、Lab Manager),並且許多第三方的軟體也需要透過 VMware API 來呼叫 snapshot 的功能來達成任務。

當我們要針對 VM 作重大變更,擔心出問題時,當然可以藉由快照的幫助,讓自己後悔時可以回復當時狀況。但如果你是將 snapshot 當作每日,或是照三餐備份,三不五時就來快照一下的話,那麼就要小心了。你可能會遇到當要刪除快照時,出現錯誤訊息,沒辦法刪除,或者告訴你空間不夠。但是去檢視 Datastore,明明還有 10%,20%,30% 的空間呀? 為何還是無法刪除快照?

那是因為你不了解 ESX 刪除快照的原理及作法。在以前,ESX 要刪除某一快照採用的是先與前面的一份快照合併,回到上一動再刪除目前的 delta.vmdk,意思就是說,如果一個 VM 有多份快照,當你要刪掉所有的快照,表示 VM 確認是要保持現在狀態無誤,不需要有以前的狀態了。那麼,你的原始 VMDK 就必須將這些快照檔案,從後至前一個一個合併進來,才能刪除這些快照檔案,因為當我們在 snap 的時候,原始 VMDK 會保持當時的狀態,後續的讀寫動作,全部在快照檔案變動,原始檔案不會有任何異動。

所以要刪除一個快照,那麼就需要至少與現任快照的磁碟空間,才能將現任快照與前任去合併。當你一次想刪除所有快照,假設有 10 份 snapshot,那就意味著要經歷 9 次的倒推、累加整併,才能寫回原始的 VMDK。而你的 Datastore 空間,有沒有這 9 次整併所需的暫存空間呢? 要記得,此時快照檔案是還不能刪除,不能釋放出空間的。這就是在刪除快照時,常會發生空間不足的原因。

在 ESX 4.0 update 2 以後,VMware 改變了 snapshot 整併的方式,採用正向合併、立即移除的方式,總算不再需要大量的暫存空間,也增加了效能。詳情如下:

http://blogs.vmware.com/kb/2010/12/changes-to-snapshot-consolidation.html?utm_source=feedburner&utm_medium=feed&utm_campaign=Feed%3A+VmwareKnowledgebaseBlog+%28Support+Insider%29

 

不過在此還是建議大家,別把 snapshot 當作 VM 日常備份來使用,儘量尋求正確的 VM 備份解決方案。

 

 

arrow
arrow
    全站熱搜
    創作者介紹
    創作者 Johnny 的頭像
    Johnny

    天空之城 - my Cloud DataCenter

    Johnny 發表在 痞客邦 留言(1) 人氣()