ESXi 主機上,一或多台使用 SR-IOV 網路虛擬功能 (VF) 的虛擬機器電源已關閉。

問題

ESXi 主機上,如果指派的虛擬功能之總數接近《vSphere 組態上限》指南中指定的 VF 數目上限,一或多台使用 SR-IOV 網路虛擬功能 (VF) 的虛擬機器將無法開啟電源。

虛擬機器記錄檔 vmware.log 包含以下有關 VF 的訊息:

PCIPassthruChangeIntrSettings:vf_name failed to register interrupt (error code 195887110)

VMkernel 記錄檔 vmkernel.log 包含以下有關指派到虛擬機器之 VF 的訊息:

VMKPCIPassthru:2565: BDF = vf_name intrType = 4 numVectors: 3
WARNING:IntrVector:233: Out of interrupt vectors

原因

可配置的插斷向量數目會隨 ESXi 主機上的實體 CPU 數目而擴充。包含 32 個 CPU 的 ESXi 主機可以提供總共 4096 個插斷向量。主機開機時,主機上的裝置,如儲存區控制器、實體網路介面卡及 USB 控制器,會耗用 4096 個向量中的一部分。如果這些裝置需要超過 1024 個向量,則會減少可能支援的 VF 之數目上限。

當虛擬機器開啟電源,客體作業系統 VF 驅動程式啟動時,會耗用插斷向量。如果無法提供所需數目的插斷向量,則客體作業系統會意外關閉,而不顯示任何錯誤訊息。

目前還沒有規則可確定主機上耗用的或可用的插斷向量數目。此數目取決於主機的硬體組態。

解決方案

  • 若要開啟虛擬機器電源,請減少指派到主機上虛擬機器的 VF 總數。
    例如,將虛擬機器的 SR-IOV 網路介面卡變更為已連線到 vSphere Standard Switch 或 vSphere Distributed Switch 的介面卡。