ESXi で NVMe over RDMA を使用するには、ロスレス イーサネット ネットワークが効率的に動作する必要があります。

ロスレス ネットワークを確立するには、使用可能な QoS 設定のいずれかを選択します。

Global Pause フロー制御の有効化

このネットワーク構成では、ネットワーク スイッチ ポートで Global Pause フロー制御が有効になっていることを確認します。また、ホストの RDMA 対応 NIC が正しいフロー制御に対して自動的にオート ネゴシエーションを行うことを確認します。

フロー制御を確認するには、次のコマンドを実行します。

#esxcli network nic get -n vmnicX
   Pause RX: true
   Pause TX: true

上記のコマンド オプションが true に設定されていない場合は、次のコマンドを実行します。

#esxcli network nic pauseParams set -r true -t true -n vmnicX

プライオリティ フロー制御の有効化

RoCE トラフィックをロスレスにするには、物理スイッチとホストで PFC 優先順位の値を 3 に設定する必要があります。 ESXi ホストでは、次の 2 つの方法で PFC を構成できます。
  • 自動構成。ESXi 7.0 以降では、RNIC ドライバが DCB と DCBx をサポートしている場合、ホストの RNIC に DCB PFC 構成を自動的に適用できます。

    現在の DCB 設定は、次のコマンドを実行して確認できます。

    #esxcli network nic dcb status get -n vmnicX
  • 手動構成。場合によっては、RNIC ドライバを利用することで、ドライバ固有のパラメータを使用して DCB PFC を手動で構成することができます。この方法を使用するには、ベンダー固有のドライバのドキュメントを参照してください。たとえば、Mellanox ConnectX-4/5 ドライバでは、次のコマンドを実行してホストを再起動することで PFC の優先順位の値を 3 に設定できます。
    #esxcli system module parameters set -m nmlx5_core -p "pfctx=0x08 pfcrx=0x08"

DSCP ベースの PFC の有効化

DSCP ベースの PFC は、ロスレス ネットワークを構成するもう 1 つの方法です。物理スイッチとホストで、DSCP 値を 26 に設定する必要があります。このオプションを使用するには、ベンダー固有のドライバのドキュメントを参照してください。たとえば、Mellanox ConnectX-4/5 ドライバでは、次のコマンドを実行することで DSCP タグの値を 26 に設定できます。
  • PFC と DSCP トラスト モードを有効にします
    #esxcli system module parameters set -m nmlx5_core -p "pfctx=0x08 pfcrx=0x08 trust_state=2"
    
  • DSCP 値を 26 に設定します
    #esxcli system module parameters set -m nmlx5_rdma -p "dscp_force=26"
  • パラメータを確認し、設定が正しいかどうかを確認します。
    esxcli system module parameters list -m nmlx5_core | grep 'trust_state\|pfcrx\|pfctx'
  • ホストを再起動します