VMware 需要虛擬機器磁碟整合

VMware 需要虛擬機器磁碟整合

在 VMWare VSphere 中,如果剩餘虛擬磁碟檔案或快照未與基礎虛擬磁碟檔案或 vmdk 檔案合併,則「摘要」部分中會顯示「需要合併虛擬機器磁碟」狀態。留下過多的快照無人看管可能會嚴重影響系統的效能。在這篇文章中我們將討論為什麼VMware需要虛擬機器磁碟整合以及如何解決它。

VMware 需要虛擬機器磁碟整合

VMware 中的虛擬機器磁碟整合是什麼以及為什麼需要它?

當您在 VMWare 中拍攝虛擬機器快照時,會建立多個增量磁碟,以儲存自上次快照以來所做的變更。如果使用者手動選擇不快照,則變更將儲存在最新的磁碟中。因此,虛擬機器因這些冗餘增量磁碟的存在而變得過度擁擠,最終可能導致儲存空間不足。因此,我們有了虛擬機器磁碟整合過程,其目的是將眾多虛擬磁碟檔案合併為一個。磁碟整合過程不會在此虛擬機器檔案所在的資料儲存體上留下冗餘資料。

合併虛擬機器磁碟檔案後,儲存空間會被清理。請記住,VMware 建議每個虛擬機器使用不超過 32 個快照。

因此,我們可以明確地說,需要虛擬機器磁碟整合來清理冗餘快照並在虛擬機器中騰出一些空間。

修復 VMware 中需要合併虛擬機器磁碟的狀態

如果您在 VMware 中收到一條訊息,指出“需要整合虛擬機器磁碟”,那麼您所要做的就是整合。請按照下面提到的步驟執行相同的操作。

  1. 開啟 VMware 控制台並選擇有問題的虛擬機器。
  2. 前往操作 > 快照。
  3. 現在,您需要按一下「合併」按鈕,然後在出現提示時按一下「是」。

然而,在大多數情況下,較早收到警告的用戶在嘗試手動合併時遇到錯誤或失敗。

無法存取文件,因為該文件已在 VMware 中鎖定

如果建立鎖,合併可能會失敗。如果在建立快照時使用熱添加磁碟選項,則有可能建立鎖定以阻止同時寫入檔案。要解決此問題,我們需要重新啟動services.sh腳本,該腳本將重新啟動所有服務。

為此,我們需要重新啟動 ESXi 伺服器上的管理代理程式。因此,開啟ESXi shell或透過 SSH連線到主機,然後以 root 使用者身分執行以下命令。

services.sh restart

或者

/etc/init.d/hostd restart /etc/init.d/vpxa restart

或者,導覽至「故障排除選項」,然後選擇「重新啟動管理代理」。然後按 Enter 啟動該選項,然後按 F11 確認。

重新啟動服務後,我們可以使用下面給出的命令檢查鎖定的檔案。

vmfsfilelockinfo -p /vmfs/volumes/vm_datastore/vm_name/vm_name.vmx

現在,我們需要找到 hostd 日誌檔。運行下面給出的命令來識別 VM 檔案路徑。

cat /var/log/hostd.log |grep -i vm_name

然後,使用 cd 或變更目錄指令導覽至 VM 目錄,最後執行下列指令列出負責鎖定 VM 檔案的所有 ESXi 主機。

for i in `ls`; do vmfsfilelockinfo -p $i ;done|grep 'is locked in\|Host owning the lock\|Total time taken' | sed 's|Host owning the lock on file is||g'|sed 's|Total time|---|g' | awk '{print $1}' |uniq

最後,包含hostdvpxa並執行命令,或轉到每個 ESXi 主機並執行命令。

/etc/init.d/hostd restart /etc/init.d/vpxa restart

希望這能為您完成這項工作。

由於有太多快照,無法合併

有時,VMware 無法合併甚至鎖定文件,因為虛擬機器上同時存在太多快照。為了解決這個問題,我們需要刪除多餘的快照。若要執行相同的操作,請依照下列步驟操作。

  1. 首先,關閉虛擬機器並建立新的虛擬機器磁碟快照。
  2. 在虛擬機器標籤上,您必須右鍵單擊並選擇快照。
  3. 然後,按一下“刪除所有快照”。

有時,不一致的-ctk.vmdk檔案可能會觸發虛擬機器整合所需狀態。因此,您可以嘗試透過刪除CTK檔案來解決該問題。

VMware 整合快照選項為灰色(不活動)

有時,使用者無法手動合併,因為該選項呈灰色且處於非活動狀態。所以基本上發生的事情是一些快照或快照鏈中的一個連結被破壞。為了解決這個問題,我們可以使用帶有命令列介面的PowerCLI。

因此,首先,使用Connect-VIServer vcenter01.test.com連接到有問題虛擬機器的 vCenter Server。

輸入下面給出的命令,列出狀態為「需要虛擬機器整合」的所有虛擬機器。

Get-VM | Where-Object {$ _. Extensiondata.Runtime.ConsolidationNeeded}

最後,使用以下命令進行合併。

Get-VM | Where-Object {$. Extensiondata.Runtime.ConsolidationNeeded} | foreach {$. ExtensionData.ConsolidateVMDisks_Task ()}

就是這樣!

需要虛擬機器磁碟整合是什麼意思?

虛擬機器磁碟整合過程將多個虛擬磁碟檔案合併為一個,刪除冗餘資料並釋放虛擬機器中的空間。當有可用冗餘快照且自動整合過程失敗時,您可能會看到需要虛擬磁碟整合。

如何修復需要虛擬機器磁碟整合的問題?

如果發生錯誤而失敗,請檢查我們前面提到的解決方案來解決問題。

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *