Windows XP Windows 7 Windows 2003 Windows Vista Windows教程綜合 Linux 系統教程
Windows 10 Windows 8 Windows 2008 Windows NT Windows Server 電腦軟件教程
 Windows教程網 >> 電腦軟件教程 >> 系統工具 >> 解決VMware快照故障的方法

解決VMware快照故障的方法

日期:2017/2/8 9:06:37      編輯:系統工具

虛擬化管理員能在VMware ESX上使用快照回到以前的狀態及找出虛擬機哪裡出錯。在這一系列文章的第一次部分中,我們討論了怎麼使用VMware快照。在第二部分中,解釋了在不浪費磁盤空間的情況下如何刪除快照。不過,當快照出現故障時該如何解決呢?在本文中,TechTarget中國的特約虛擬化專家Eric Siebert將解決在ESX上使用快照時潛在的問題。

定位有快照的虛擬機

嘗試找出哪台虛擬機有快照是個挑戰。在VMware Infrastructure Client或VirtualCenter裡沒有一個集中的辦法找到快照,因此,你應該定期地檢查ESX服務器,找到那些需要刪除的舊快照。下面有一些方法:

方法1——使用服務器控制台的Find命令

1.登錄服務器控制台。

2.更改/vmfs/volumes/目錄。

3.鍵入find -iname "*-delta.vmdk" -mtime +7 -ls找到在7天之內未被修改的快照文件或鍵入find -iname "*-delta.vmdk"找到所有的快照文件。

方法2——使用Dominic Rivera的叫做Snapalert的免費腳本。這個腳本使用VI Perl工具包直接與VirtualCenter對話,並確保不需要在每台主機上安裝任何組件(也適用於ESXi)。也可以選擇讓腳本產生一個Email報告。

方法3——使用來自Xtravirt的叫做Snaphunter的免費工具,它能從多個ESX Servers報告虛擬機的快照狀態,也能發送Email報告。

方法4——查詢VirtualCenter SQL數據庫。VirtualCenter一直在它的VPX_SNAPSHOT表中追蹤每台主機上的所有快照。我曾經寫了一個需要這個表的VBS腳本以顯示運行快照的虛擬機列表。這個方法不錯。不過它依賴數據庫表,這可能在未來的VirtualCenter版本裡有改變。

處理未正確刪除的快照

偶爾,一個快照未被正確刪除,在虛擬機裡仍然是活動的快照。當使用VMware Consolidated Backup或通過Snapshot Manager刪除快照時,這種事情會發生。多數情況下,快照不會出現在Snapshot Manager讓你刪除。快照仍然存在的跡象顯示在虛擬機目錄的delta文件裡。

如果你有一個沒在Snapshot Manager裡的運行著的快照,你可以嘗試用一兩個方法刪除它。第一種方法,使用VI Client創建一個新快照,然後刪除所有來自Snapshot Manager的快照。或者登錄到ESX Service控制台,切換到虛擬機總目錄,鍵入vmware-cmd createsnapshot創建一個新快照。等待創建並鍵入vmware-cmd removesnapshots。完成後,查看delta文件是否已刪除。如果已刪除,那麼就成功完成刪除了。

如果這個delta文件沒被刪除,檢查虛擬機vmx文件,如果這台虛擬機僅配置了一個虛擬磁盤並找到由SCSI開始的行,它通常是scsi0:0。.fileName應該使用的是與虛擬機一起創建的原始磁盤文件名,通常與虛擬機名一樣。如果是這樣,那麼你的虛擬機沒有使用快照文件。如果文件名裡有-00000#表示目前在使用一個快照文件。

下面這個例子能清楚說明這個道理:

VM with no snapshots: scsi0:0.present = "true" scsi0:0.fileName = "myvmname.vmdk" VM with snapshots: scsi0:0.present = "true" scsi0:0.fileName = "myvmname-000001.vmdk" 。

如果上面的操作失敗了,你只能選擇復制虛擬機或復制虛擬機磁盤文件。可以使用VMware Converter創建一個現有虛擬機的副本,當創建完成,關閉並刪除舊虛擬機。

另一個方法是關閉虛擬機,登錄服務器控制台,切換到虛擬機目錄,通過使用vmkfstools和指定快照文件作為資源磁盤來復制虛擬機磁盤文件,例如,"vmkfstools –i myvmname-000001.vmdk myvmnamenew.vmdk" ,一旦完成了這個設定,移除硬盤(不是刪除)、添加新硬盤及浏覽器到最新創建的磁盤文件。啟動虛擬機,在你刪除舊磁盤和delta文件之前,每樣事都在工作。


默認狀態下,快照被寫入每台虛擬機的主目錄裡。有時你需要改變它的位置,不占用屬於虛擬機的卷上的空間。為每台虛擬機上的快照指定一個新的目錄是可能的。當你這麼做後,快照和vswp文件都被寫入到這個目錄裡。

不過要注意,如果你的虛擬機在共享存儲上,你指定本地存儲作為地址將不能使用像VMotion/HA/DRS這樣的功能。更改方法步驟如下:

01.關閉虛擬機,登錄到服務器控制台。

02.使用Nano或Vi編輯虛擬機VMX文件。

3.使用下面的語句新添一行:workingDir = "/vmfs/volumes/SnapVolume/Snapshots/" 。

4.如果你想使vswp文件留在虛擬機目錄裡,添加下面的到VMX文件:sched.swap.dir = "/vmfs/volumes/VM-Volume1/MyVM/"。這步是可選的。此外,你不需要擔心更新現有的“sched.swap.derivedName”參數,因為它由虛擬機生成,每次虛擬機開啟時,就被寫入config文件。

5.啟動虛擬機,vswp、vmsn以及快照(delta-vmdk)文件現在位於這個目錄裡。

和快照一起使用VMotion

如果你要從一台主機移動一台運行快照的虛擬機到另一台主機,你將收到下面的警告:“在目的主機恢復到快照可能產生錯誤(警告)”。如果你更改了虛擬機任何文件的默認位置(像上面提到的快照或vswp文件),就會出現這個警告,當遷移完成時,這台虛擬機將崩潰。如果目的主機不能訪問在資源主機上的文件裡的存儲,這種情況會發生。

因此,如果虛擬機在共享存儲上並被配置,快照文件是在本地存儲上,那麼,如果你移動虛擬機到另一台主機,將會有問題。如果虛擬機所有文件都在共享存儲上,並且在所有ESX主機上可訪問,那麼虛擬機就是正常工作的。VMware建議在移動虛擬機之前,委托(commit)所有的快照。不過如果你不這樣做,也能工作。

Copyright © Windows教程網 All Rights Reserved