vSphere 6.5 及更新版本支援在具有半虛擬化 RDMA(PVRDMA) 網路介面卡的虛擬機器之間進行遠端直接記憶體存取 (RDMA)。

RDMA 概觀

RDMA 允許從一台電腦的記憶體到另一台電腦的記憶體進行直接記憶體存取,而不涉及作業系統或 CPU。記憶體的傳輸將卸載至具備 RDMA 功能的主機通道介面卡 (HCA)。PVRDMA 網路介面卡在虛擬環境中提供遠端直接記憶體存取。

在 vSphere 中使用 RDMA

在 vSphere 中,虛擬機器可以使用 PVRDMA 網路介面卡與具有 PVRDMA 裝置的其他虛擬機器通訊。虛擬機器必須連線至相同的 vSphere Distributed Switch。

PVRDMA 裝置會自動選取虛擬機器之間的通訊方式。對於在相同ESXi主機上執行並且有或沒有實體 RDMA 裝置的虛擬機器,兩台虛擬機器之間的資料傳輸是透過記憶體複製完成的。在此情況下,未使用實體 RDMA 硬體。

對於位於不同ESXi主機並且具有實體 RDMA 連線的虛擬機器,實體 RDMA 裝置必須為 Distributed Switch 的上行。在此情況下,虛擬機器之間透過 PVRDMA 的通訊會使用基礎實體 RDMA 裝置。

對於在不同 ESXi主機上執行的兩台虛擬機器,當至少一台主機沒有實體 RDMA 裝置時,通訊會回復到以 TCP 為基礎的通道,並且效能會降低。

將 PVRDMA 介面卡指派至虛擬機器

若要啟用虛擬機器以透過使用 RDMA 交換資料,則必須將虛擬機器與 PVRDMA 網路介面卡建立關聯。

使用 vSphere 7.0.2 及更新版本時,最多可以將十個 PVRDMA 網路介面卡新增至虛擬機器。

必要條件

  • 確認執行虛擬機器所在的主機已針對 RDMA 進行設定。請參閱針對 PVRDMA 設定 ESXi 主機
  • 確認主機已連線至 vSphere Distributed Switch。
  • 確認虛擬機器使用的是虛擬硬體版本 13 及更高版本。
  • 確認客體作業系統是 Linux 64 位元散發。

程序

  1. vSphere Client中找到虛擬機器。
    1. 選取資料中心、資料夾、叢集、資源集區或主機,然後按一下虛擬機器索引標籤。
    2. 按一下虛擬機器,然後按一下清單中的虛擬機器。
  2. 關閉虛擬機器電源。
  3. 從 [動作] 功能表中,選取 [編輯設定]。
  4. 在顯示此設定的對話方塊中選取虛擬硬體索引標籤。
  5. 新增裝置下拉式功能表中,選取網路介面卡
    [新增網路] 區段將會新增至 虛擬硬體索引標籤中的清單。
  6. 展開 [新增網路] 區段並將虛擬機器連線到分散式連接埠群組。
  7. 介面卡類型下拉式功能表,選取 [PVRDMA]。
  8. 展開記憶體區段,選取保留所有客體記憶體 (全部鎖定),然後按一下確定
  9. 開啟虛擬機器電源。

設定虛擬機器以使用 PVRDMA 原生端點

PVRDMA 原生端點可用作進階虛擬機器組態。

從 vSphere 7.0 Update 1 及更新版本開始,虛擬機器硬體版本 18 及更新版本支援 PVRDMA 原生端點。若要使用 PVRDMA 原生端點,您必須啟用 PVRDMA 命名空間。若要瞭解如何在環境的特定硬體上啟用 PVRDMA 命名空間,請參閱廠商說明文件。

您可以使用 vSphere Client 設定原生端點或編輯虛擬機器的 VMX 檔案。如果直接編輯 VMX 檔案,則新增參數 vrdmax.nativeEndpointSupport = "TRUE",其中 x 為 PVRDMA 介面卡的索引。下列程序使用 vSphere Client 設定原生端點。

必要條件

確認您的環境支援 PVRDMA。請參閱PVRDMA 支援

程序

  1. vSphere Client 中,瀏覽至虛擬機器。
    1. 若要尋找虛擬機器,請選取資料中心、資料夾、叢集、資源集區或主機。
    2. 按一下虛擬機器索引標籤。
  2. 在虛擬機器上按一下滑鼠右鍵,然後選取編輯設定
  3. 按一下虛擬機器選項
  4. 展開進階
  5. 在 [組態參數] 下,按一下編輯組態按鈕。
  6. 在出現的對話方塊中,按一下新增列,輸入新參數及其值。
  7. 輸入參數 vrdmax.nativeEndpointSupport,其中 x 是 PVRDMA 介面卡的索引,並將值設定為 TRUE
    索引 x 等於 PVRDMA 介面卡的編號減去 1。例如,如果您要用來啟用原生端點的 PVRDMA 介面卡標示為「網路介面卡 2」,則索引為 1。

設定虛擬機器以使用 PVRDMA 非同步模式

瞭解如何將虛擬機器設定為使用 PVRDMA 非同步模式。進階虛擬機器組態中提供此設定。

在 vSphere 8.0 及更新版本上執行的虛擬機器中可以使用 PVRDMA 非同步模式。非同步模式可能會提高虛擬機器中執行的 RDMA 工作負載的輸送量和延遲。啟用非同步模式後,可能會在主機中看到 CPU 使用率增加。使用非同步模式時,建議將虛擬機器設定為高延遲敏感度。

必要條件

確認您的環境支援 PVRDMA。請參閱PVRDMA 支援

程序

  1. vSphere Client中找到虛擬機器。
    1. 選取資料中心、資料夾、叢集、資源集區或主機,然後按一下虛擬機器索引標籤。
    2. 按一下虛擬機器,然後按一下清單中的虛擬機器。
  2. 在虛擬機器上按一下滑鼠右鍵,然後選取編輯設定
  3. 按一下虛擬機器選項
  4. 展開進階
  5. 在 [組態參數] 下,按一下編輯組態按鈕。
  6. 在出現的對話方塊中,按一下新增列,輸入新參數及其值。
  7. 輸入參數 vrdma.asyncMode,並將值設定為 TRUE.

透過聚合式乙太網路的 RDMA 的網路需求

透過聚合式乙太網路的 RDMA 可確保透過乙太網路進行低延遲、輕量型且高輸送量的 RDMA 通訊。RoCE 需要僅在第 2 層或同時在第 2 層和第 3 層針對無失真資訊流量設定的網路。

透過聚合式乙太網路的 RDMA (RoCE) 是一種網路通訊協定,它使用 RDMA 針對很花費網路效能的應用程式進行更快的資料傳輸。RoCE 允許在主機之間進行直接記憶體傳輸,而不涉及主機的 CPU。

有兩個版本的 RoCE 通訊協定。RoCE v1 在連結網路層 (第 2 層) 運作。RoCE v2 在網際網路層 (第 3 層) 運作。RoCE v1 和 RoCE v2 均需要無失真網路組態。RoCE v1 需要無失真第 2 層網路,RoCE v2 需要同時設定第 2 層和第 3 層用於無失真作業。

無失真第 2 層網路

為確保無失真第 2 層環境,您必須可以控制流量流程。透過啟用整個網路的全域暫停或使用依資料中心橋接群組 (DCB) 定義的優先順序流量控制 (PFC) 通訊協定,來實現流程控制。PFC 是第 2 層通訊協定,它使用 802.1Q VLAN 標記的服務類別欄位來設定個別流量優先順序。它會根據個別類別的服務優先順序暫停向接收器傳輸封包。透過這種方式,單一連結承載無失真 RoCE 流量和其他失真、最佳傳輸流量。如果發生流量壅塞,可能會影響重要的失真流量。若要互相隔離不同流程,請在啟用了 PFC 優先順序的 VLAN 中使用 RoCE。

無失真第 3 層網路

RoCE v2 需要在第 3 層路由裝置保留無失真資料傳輸。若要開始透過第 3 層路由器的第 2 層 PFC 無失真優先順序的傳輸,請設定路由器將接收的封包優先順序設定對應至在第 3 層運作的相應差異服務代碼點 (DSCP) QoS 設定。傳輸的 RDMA 封包標記有第 3 層 DSCP、第 2 層優先順序代碼點 (PCP),或兩者均有。若要從封包路由器中擷取優先順序資訊,請使用 DSCP 或 PCP。如果使用 PCP,則必須為封包加上 VLAN 標記,且路由器必須複製標記的 PCP 位元並將其轉寄到下一個網路。如果封包標記有 DSCP,則路由器必須保持 DSCP 位元不變。

與 RoCE v1 相同,RoCE v2 必須在啟用了 PFC 優先順序的 VLAN 中執行。

備註: 如果您打算在這些 NIC 上使用 RDMA,請勿整併 RoCE NIC。

對於廠商專屬的組態資訊,請參閱個別裝置或交換器廠商的正式說明文件。