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'
- ホストを再起動します