修復 VMware 錯誤:虛擬機器磁碟需要整合
"VMware 虛擬機器磁碟需要整合"的錯誤通常發生在快照無法正確與主虛擬磁碟合併時。此問題常發生於備份未完成、取消刪除快照,或儲存空間不足的情況下。若未加以解決,可能會導致虛擬機器運作變慢,甚至有資料損毀的風險。閱讀這篇部落格文章,了解為何會出現"虛擬機器需要整合"的狀態,以及如何安全地解決此問題。
什麼是 VMware 磁碟整合?
虛擬磁碟整合是指將備份後所建立的虛擬磁碟檔案合併的過程 虛擬機器快照. 您可以視需要啟動磁碟整合,以避免效能下降及其他問題。當您建立快照時,系統會建立增量磁碟,並將變更寫入對應的增量磁碟(預設為最新的增量磁碟,直到選取其中一個先前快照來還原虛擬機器為止)。因此,虛擬機器的儲存空間中會存在冗餘資料,因為每個增量磁碟都包含相較於前一個增量磁碟狀態的所有變更,而原始磁碟則保持不變。
當快照鏈及相關虛擬磁碟檔案的規模過大時,系統效能便會下降。執行 VMware 磁碟整合時,增量磁碟中的資料會合併至單一磁碟中,且該虛擬機器檔案位置的資料存放區中將不會殘留任何重複資料。整合虛擬機器磁碟檔案後,儲存空間便會被清理。請注意,VMware 建議每台虛擬機器的快照數量不應超過 32 個。
VMware 磁碟整合錯誤的可能原因
該 需要整合 VMware 虛擬機器磁碟 虛擬機器中顯示錯誤訊息 摘要 的""分頁 VMware vSphere Client (如下圖所示)。出現此錯誤訊息的常見原因之一,是錯誤地刪除了虛擬機器快照,這可能會導致與快照相關的 VMDK 檔案及日誌檔案殘留在資料存放區中(例如,在您執行 Delete All 或 Delete (VM 快照的操作)。

最常見的原因是 需要進行虛擬機器整合 狀態:
- VMFS 資料存放區的磁碟空間不足,無法整合虛擬機器快照及虛擬磁碟檔案。若資料存放區的可用空間少於 1 GB,可能會發生此錯誤。
- 虛擬機器所運行之 ESXi 主機所連接的儲存系統效能不佳。若快照大小過大或發生超時,快照整合可能會失敗。
- ESXi 主機與 vCenter 之間的連線問題。
- 快照檔案被第三方應用程式(例如備份應用程式)鎖定。若備份應用程式未完成備份工作便鎖定了快照,便可能發生此情況(備份應用程式在執行備份時,可能會為虛擬機器建立臨時快照)。若不使用快照技術來建立正在運行的虛擬機器的一致性備份,備份應用程式將無法使磁碟進入靜止狀態。
基本上,您應該恢復虛擬機器磁碟檔案的一致性。
如何解決 VMware 磁碟整合錯誤?
為解決該 需要進行虛擬機器整合 狀態,請在 VMware vSphere Client 中右鍵點擊虛擬機器名稱,然後在彈出的選單中點擊 Snapshots > Consolidate.

系統會顯示一則確認訊息:
此操作將彙整您虛擬機器上的所有冗餘重做日誌。您確定要繼續嗎?
點擊 Yes 以確認並整合虛擬機器磁碟檔案。
Note: 若擔心在 VMware 磁碟整合過程中可能會遺失部分資料,請建立一個 VMware 虛擬機器備份 將所有虛擬機器檔案複製到資料存放區上的另一個資料夾,然後執行 VMware 磁碟整合。
請等待 VMware 磁碟整合完成且日誌清除後再進行操作。您可以在 VMware vSphere Client 介面底部的任務面板中查看任務進度。若虛擬機器正在運行,此操作期間虛擬機器的效能可能會下降。完成此操作所需的時間取決於虛擬機器的大小、快照數量以及虛擬機器的負載。
完成 VMware 磁碟整合任務後,該警告應會消失。
可能發生的其他錯誤
有時,在執行 VMware 磁碟整合時可能會發生另一種錯誤,並顯示以下錯誤訊息:
無法存取檔案,因為該檔案已被鎖定。在整合磁碟時發生錯誤:無法鎖定檔案。磁碟節點 ‘scsi0:0’ 的整合失敗.
當備份應用程式使用"熱添加磁碟"選項進行快照備份時,也會建立鎖定。虛擬機器檔案鎖定的目的,是為了避免多個 ESXi 主機同時對該檔案進行寫入操作。
請嘗試執行以下操作以解決此錯誤:
- 在虛擬機器所在的 ESXi 伺服器上重新啟動管理代理程式。開啟 ESXi 命令列介面 或透過 SSH 連線至 ESXi 主機,並以 root 身分執行該指令:
services.sh restart或
/etc/init.d/hostd restart/etc/init.d/vpxa restart您也可以開啟 ESXi 直接主控台,前往
Troubleshooting Options並選擇Restart Management Agents(按Enter請啟用所需的選項,然後按下F11(以確認)。 - 請使用以下指令檢查被鎖定的檔案:
vmfsfilelockinfo -p /vmfs/volumes/vm_datastore/vm_name/vm_name.vmx - 若需確認虛擬機器檔案在資料存放區中的位置,請檢查 hostd 日誌檔案。
cat /var/log/hostd.log |grep -i vm_name - 當您知道虛擬機器檔案的位置時,請前往資料存放區中的虛擬機器目錄:
cd /vmfs/volumes/datastore_name/vm_name - 執行以下指令以列出正在鎖定虛擬機器檔案的 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 - 重新啟動 ESXi 管理代理程式,包括
hostd以及vpxa如上所述,或在鎖定虛擬機器檔案的 ESXi 主機上執行以下指令:/etc/init.d/hostd restart/etc/init.d/vpxa restart
解鎖 VM 檔案的另一種方法
此外,您也可以嘗試以下步驟來解決問題 整合磁碟時發生錯誤:無法鎖定檔案。
- 關閉虛擬機器。
- 為虛擬機器磁碟建立新的快照。
- 刪除所有現有的虛擬機器快照。在 vSphere Client 中右鍵點擊虛擬機器名稱,然後選擇
Snapshots然後點擊Delete All Snapshots.
- 複製虛擬機器或將其遷移至另一台 ESXi 主機,方法是 vMotion 如果錯誤尚未修復。
- 請按照上述說明,再次嘗試整合快照。
如果這些操作沒有幫助,請嘗試關閉虛擬機器,然後開啟 VM settings,選擇 VM options 選單頁籤,然後展開 Advanced 該區段並點擊 Edit Configuration. 在 設定參數 視窗,點擊 Add Configuration Params. 加入 asyncConsolidate.forceSync 參數,並將此參數設定為 TRUE.
有時候 需要進行虛擬機器整合 此狀態可能是由於不一致所導致的 -ctk.vmdk 為…所建立的檔案 變更區塊追蹤 (可能是由虛擬機器備份軟體所造成)。請嘗試刪除 CTK 檔案,因為這些檔案在快照整合過程中並不需要。刪除 CTK 檔案前,請務必先備份虛擬機器檔案。接著,請再次嘗試整合虛擬機器磁碟檔案。

"合併"選項目前處於停用狀態
如果 VMware 合併快照 若選項呈灰色(不可用),表示虛擬機器上可能正在執行某個活動中的任務。若您看到 偵測到快照設定無效 發生錯誤,部分快照可能已損壞,或快照鏈可能已分裂。若發生此情況,請嘗試執行以下操作:
- 透過 SSH 連線至 ESXi 伺服器,並前往資料存放區中存放虛擬機器檔案的位置。
cd vmfs/volumes/DatastoreName/VMFolderName您可以在 VMware vSphere Client 中查看虛擬機器檔案的位置,並透過檢視虛擬機器的設定來找出虛擬磁碟的位置。
- 確認目前指向哪些磁碟快照:
cat VM-name.vmx | grep scsi*請參閱輸出內容以檢查虛擬磁碟檔案,包括虛擬磁碟快照檔案。例如,該行會顯示虛擬磁碟檔案的名稱。這不是快照:
scsi 0:0.fileName = “VM-Name.vmdk”
輸出列中會顯示虛擬磁碟快照檔案的名稱,且您正指向該快照:
scsi 0:0.fileName = “VM-Name-000002.vmdk”
在此範例中,虛擬機器配置中使用了 SCSI 虛擬磁碟控制器。
- 以下指令可檢查每個快照所指向的對象。請使用此指令來偵測快照鏈中,哪個快照指向下列磁碟檔案(快照 vmdk 檔案或基礎磁碟 vmdk 檔案)。
cat VM-Name-000002.vmdk | grep parentFileNameHint您可能需要針對其他 VMDK 檔案再次執行此指令(例如 VM-Name-000001.vmdk (在此範例中)直到找到所需的基礎磁碟。此方法有助於您找出不一致之處。
- 如果您發現了不一致之處,例如, VM-Name-000002.vmdk 指向 VM-Name-000001.vmdk, 該檔案又指向 VM-Name.vmdk,請執行
vmkfstools位於磁碟快照鏈的最高點(VM-Name-000002.vmdk (在此情況下):vmkfstools -q -v10 VM-Name-000002.vmdk此指令會嘗試開啟並關閉鏈中所有 VMDK 檔案,並在發生錯誤時通知您。
使用 PowerCLI
除了在 VMware vSphere Client 圖形使用者介面中執行 VMware 磁碟整合外,您也可以使用 vSphere PowerCLI 透過命令列介面。
- 連線至管理該 ESXi 主機的 vCenter Server,該主機上運行著含有 需要進行虛擬機器整合 狀態。系統提示時請輸入憑證。
Connect-VIServer vcenter01.test.com - 取得具有該 需要進行虛擬機器整合 狀態:
Get-VM | Where-Object {$ _. Extensiondata.Runtime.ConsolidationNeeded} - 執行 VMware 磁碟整合。
Get-VM | Where-Object {$ . Extensiondata.Runtime.ConsolidationNeeded} | foreach {$ . ExtensionData.ConsolidateVMDisks_Task ()}
其他建議
在 VMware vSphere 7.0 中,當主機重新啟動時,使用者可能會遇到 CBT 服務無法啟動的問題。每次可能都需要手動啟動該服務。不過,此問題已在 vSphere 7 U3 中修復。如果您使用的是 vSphere 7.0,可以嘗試以下解決方案:
- 請確認 CBT 模組是否已啟用:
esxcli system module list --enabled=true | grep cbt - 請確認 CBT 模組是否已載入至 ESXi 主機:
esxcli system module list --loaded=true | grep cbt - 手動載入 CBT 模組:
vmkload_mod cbt
如果備份應用程式鎖定了虛擬機器檔案,您可以重新啟動該 vpx 請在 ESXi 主機上執行此程序以協助解除鎖定。同時請嘗試從虛擬機器備份應用程式中移除虛擬磁碟。
與其進行虛擬機器遷移,您也可以關閉虛擬機器並重新啟動 ESXi 主機。接著,將主機從維護模式中移出以解除鎖定,並解決問題。
結論
該 需要進行虛擬機器整合 在 VMware 環境中,"狀態"問題雖常見但尚可妥善處理。透過了解錯誤成因,並採用正確的快照與備份做法,您便能維持健康且高效的虛擬基礎架構。請務必確認快照已刪除,並監控可用儲存空間,以防止問題再次發生。定期維護與主動監控有助於確保虛擬機器效能順暢,並提供可靠的数据保護。