傳遞裝置可提供有效使用資源的方式並提高環境效能。

在 vSphere 8.0 及更早版本中,僅當虛擬機器已關閉電源時才會新增或移除傳遞裝置。目前版本的 vSphere 提供了針對 VMDirectPathI/O 裝置的熱新增和熱移除支援。熱新增是指在虛擬機器已開啟電源時新增傳遞裝置的程序。

針對 VMDirectPathI/O 裝置的熱新增和熱移除支援,可用功能如下。
  • 透過 vSphere API 將啟用了傳遞的裝置熱新增至虛擬機器。您可以使用下列其中一種方式執行該作業:
    1. 您可以為 ESXi 開機時探索到的現有裝置啟用傳遞,並將該裝置熱新增至虛擬機器。
    2. 或者,也可以透過將新裝置實際熱新增至主機的空白 PCIe 熱插拔插槽,為新增的裝置啟用傳遞,然後將該裝置熱新增至虛擬機器。
      備註: 此功能需要對伺服器進行 PCIe 本機熱插拔認證。
  • 透過 vSphere API 從虛擬機器熱移除傳遞裝置。
  • 可透過從主機中實際拔出虛擬機器正在使用的傳遞裝置,從而意外熱移除該裝置。
    備註: 此功能需要對伺服器進行 PCIe 本機意外熱插拔認證。
    備註: 僅 NVMe 裝置支援熱新增和熱移除 VMDirectPath I/O。在 vSphere Client 中不支援熱新增和熱移除 VMdirectPathI/O。
啟用了傳遞熱插拔的虛擬機器不支援下列功能
  • 向客體作業系統公開輸入–輸出記憶體管理單元 (IOMMU)。
  • CPU 熱插拔。
  • 記憶體熱插拔。
  • 動態 Direct path I/O。
  • 支援 vCPU 數目大於 128 的虛擬機器。
  • 對於啟用了傳遞熱插拔的虛擬機器,可能會停用虛擬中斷 (也稱為中斷發佈)。
  • 不支援從主機正常實體熱移除傳遞裝置。
  • UI 對熱新增和熱移除的支援。
  • 虛擬機器 Direct Path I/O 不可用的所有功能。

平台、裝置和客體作業系統的需求

伺服器和裝置需求

  • 確保伺服器原始設備製造商 (OEM) 支援熱新增和熱移除 VMDirectPath I/O 裝置功能。
  • 伺服器平台韌體必須是整合可延伸韌體介面 (UEFI)。
  • 確保伺服器平台和裝置符合 KB 2142307 中提及的需求。
  • 伺服器應通過虛擬機器 Direct Path I/O 的認證。
  • 如果從虛擬機器中意外熱移除傳遞裝置,則伺服器型號應通過 PCIe 原生意外熱插拔認證。
備註: 如需有關伺服器認證的詳細資訊,請參閱 VMware 相容性指南

客體作業系統需求

  • 確保客體作業系統支援 NVMe 熱插拔和 NVMe 意外熱移除。
  • 使用最新且穩定的 GOS 發行版,其中包含 NVMe 驅動程式 I/O 堆疊的所有修正。

vCenter 和 ESXi 需求

ESXi 和 vCenter 版本必須為 8.0 update 1 或更新版本。

限制

  • 在單一 ReconfigureVM API 呼叫中最多可以熱新增 1 個傳遞裝置。
  • 在單一 ReconfigureVM API 呼叫中最多可以熱移除 1 個傳遞裝置。
  • 請求熱新增或熱移除傳遞裝置時,無法在同一 ReconfigureVM API 呼叫中請求其他虛擬機器重新設定變更。
  • 一個虛擬機器最多支援 32 個 NVMe 傳遞裝置。

啟用 VMDirectPath I/O 裝置的熱新增和熱移除

可以透過準備 vCenter 和 ESXi 主機來啟用 VMDirectPath I/O 裝置的熱新增和熱移除。

必要條件

準備 vCenter 和 ESXi 主機。
  • 使用組建版本組合部署 vCenter 和可設定狀態的安裝 ESXi
  • 設定 VMKernel 開機參數。
    set -s maxIntrCookies -v 4096
  • 重新啟動 ESXi 主機。
  • 部署資料中心並新增主機。

程序

  1. vSphere Client 中瀏覽到主機。
  2. 設定索引標籤上,展開硬體,然後按一下 PCI 裝置
  3. 選取 NVMe PCI 裝置,然後按切換傳遞

下一步

準備並設定虛擬機器。

準備並設定虛擬機器

傳遞裝置可提供有效使用資源的方式並提高環境效能。您可以準備並設定虛擬機器。

部署與設定虛擬機器 (UEFI)

程序

  1. vSphere Client 中,瀏覽至虛擬機器。
    1. 若要尋找虛擬機器,請選取資料中心、資料夾、叢集、資源集區或主機。
    2. 按一下虛擬機器索引標籤。
  2. 在虛擬機器上按一下滑鼠右鍵,然後選取編輯設定
  3. 展開記憶體區段,然後設定保留所有客體記憶體 (全部鎖定)
  4. 按一下儲存
  5. 對於使用 vSphere API ReconfigVM_Task() 的虛擬機器,將 fixedPassthruHotPlugEnabled 設定為 TRUE。如需詳細資訊,請參閱 https://developer.broadcom.com
    備註: 使用 https://developer.broadcom.com 中的搜尋列搜尋 Hotplug 一詞。
    1. 在 vCenter 上,在虛擬機器上按一下滑鼠右鍵→相容性→升級虛擬機器相容性,升級到 vmx-20,然後按一下 [儲存]。
    2. 使用 vSphere API 將 motherboardLayout 設定為 ACPI。如需詳細資訊,請參閱https://developer.broadcom.com
      備註: 使用 https://developer.broadcom.com 中的搜尋列搜尋 Hotplug 一詞。
  6. (可選) 將啟用了傳遞的 PCI 裝置新增到虛擬機器。
  7. 開啟虛擬機器電源。
    備註: 驗證正在進行的熱插拔作業是否成功,然後再繼續執行下一個熱插拔作業。
  8. 使用 vSphere API 執行傳遞裝置的熱新增和熱移除。如需詳細資訊,請參閱https://developer.broadcom.com
    備註: 使用 https://developer.vmware.com/samples 中的搜尋列搜尋 Hotplug 一詞。

下一步

驗證熱插拔作業是否成功。

使用 vSphere Client 驗證熱插拔作業是否成功

若要檢查熱新增、熱移除和意外熱移除作業是否成功,可以使用 vSphere Client 進行驗證。

程序

  1. vSphere Client 中找到虛擬機器。
  2. 選取資料中心、資料夾、叢集、資源集區或主機,然後按一下 [虛擬機器] 索引標籤。
  3. 按一下虛擬機器,然後按一下清單中的虛擬機器。
  4. PCI 裝置資料表中,確認以下內容:
    選項 敘述

    確認使用 vSphere API 將已啟用傳遞的裝置熱新增至虛擬機器已成功。

    此時會顯示熱新增的傳遞裝置。

    確認使用 vSphere API 從虛擬機器熱移除傳遞裝置已成功。

    此時不會顯示熱移除的傳遞裝置。

    確認從 ESXi 主機意外熱移除 (實體熱移除) 虛擬機器的傳遞裝置已成功。

    • 此時不會顯示意外熱移除的裝置。
    • 在 [主機] 視圖中,
      1. vSphere Client 中瀏覽到主機。
      2. 設定索引標籤上,展開硬體,然後按一下 PCI 裝置
      3. 確認未顯示意外熱移除的裝置。

使用虛擬機器驗證熱插拔作業是否成功

若要檢查熱新增、熱移除和意外熱移除作業是否成功,可以使用虛擬機器進行虛擬機器驗證。

程序

  1. 在虛擬機器中,開啟與客體作業系統的 SSH 連線。
  2. 以根使用者身分登入。
  3. 執行 lspci 命令。
  4. 確認結果。
    選項 敘述

    確認使用 vSphere API 將已啟用傳遞的裝置熱新增至虛擬機器已成功。

    此時會顯示熱新增的傳遞裝置。
    備註: 傳遞裝置的 Spotfire 二進位資料檔案 (SBDF) 位址可能與主機上的位址不同。

    確認透過使用 vSphere API 從虛擬機器熱移除傳遞裝置已成功。

    此時不會顯示熱移除的傳遞裝置。

    確認從 ESXi 主機意外熱移除 (實體熱移除) 虛擬機器的傳遞裝置已成功。

    此時不會顯示意外熱移除的裝置。