NVMe ストレージ用に ESXi 環境を準備する方法について説明します。構成要件は、使用する NVMe 転送のタイプによって異なる場合があります。NVMe over RDMA (RoCE v2) を使用する場合は、一般的な要件に加えて、ロスレス イーサネット ネットワークも構成する必要があります。
NVMe over PCIe の要件
使用する
ESXi ストレージ環境が次のコンポーネントを備えていることが必要です。
- ローカルの NVMe ストレージ デバイス。
- 互換性のある ESXi ホスト。
- ハードウェア NVMe over PCIe アダプタ。アダプタをインストールすると、ESXi ホストがそのアダプタを検出し、PCIe と示されたプロトコルを使用するストレージ アダプタ (vmhba) として vSphere Client に表示されます。アダプタの設定は必要ありません。
NVMe over RDMA (RoCE v2) の要件
- NVMe over RDMA (RoCE v2) 転送のサポートを備えた NVMe ストレージ アレイ。
- 互換性のある ESXi ホスト。
- ロスレス ネットワークをサポートするイーサネット スイッチ。
- RDMA over Converged Ethernet (RoCE v2) をサポートするネットワーク アダプタ。アダプタを設定する方法については、ESXi での NVMe over RDMA (RoCE v2) の構成を参照してください。
- ソフトウェア NVMe over RDMA アダプタ。このソフトウェア コンポーネントは、ESXi ホストで有効にされていること、および適切なネットワーク RDMA アダプタに接続されていることが必要です。詳細については、『ソフトウェア NVMe over RDMA または NVMe over TCP アダプタの追加』を参照してください。
- NVMe コントローラ。ソフトウェア NVMe over RDMA アダプタを設定した後でコントローラを追加する必要があります。NVMe over Fabrics のコントローラの追加を参照してください。
- ロスレス イーサネット。NVMe over RDMA 向けロスレス イーサネットの構成を参照してください。
NVMe over Fibre Channel の要件
- NVMe をサポートするファイバ チャネル ストレージ アレイ。詳細については、『ESXi とファイバ チャネル SAN との併用』を参照してください。
- 互換性のある ESXi ホスト。
- ハードウェア NVMe アダプタ。通常は、NVMe をサポートするファイバ チャネル HBA です。アダプタをインストールすると、ESXi ホストがそのアダプタを検出し、NVMe と示されたストレージ プロトコルを使用するファイバ チャネル アダプタ (vmhba) として vSphere Client に表示されます。ハードウェア NVMe アダプタを使用するために、このアダプタを設定する必要はありません。
- NVMe コントローラ。コントローラの設定は必要ありません。必要なハードウェア NVMe アダプタをインストールすると、その時点で到達可能なすべてのターゲットおよびコントローラに自動的に接続します。後で、コントローラの切断や、ホストの起動時には使用できなかった他のコントローラの接続を行うことができます。NVMe over Fabrics のコントローラの追加を参照してください。
NVMe over TCP の要件
- NVMe over TCP 転送のサポートを備えた NVMe ストレージ アレイ。
- 互換性のある ESXi ホスト。
- イーサネット アダプタ。アダプタを設定する方法については、ESXi での NVMe over TCP の構成を参照してください。
- ソフトウェア NVMe over TCP アダプタ。このソフトウェア コンポーネントは、ESXi ホストで有効にされていること、および適切なネットワーク アダプタに接続されていることが必要です。詳細については、『ソフトウェア NVMe over RDMA または NVMe over TCP アダプタの追加』を参照してください。
- NVMe コントローラ。ソフトウェア NVMe over TCP アダプタを設定した後でコントローラを追加する必要があります。NVMe over Fabrics のコントローラの追加を参照してください。
VMware NVMe over Fabrics 共有ストレージのサポート
ESXi 環境では、NVMe ストレージ デバイスは SCSI ストレージ デバイスと同じように表示され、共有ストレージとして使用できます。NVMe-oF ストレージを使用する場合は、次のルールを守ってください。
- 異なる転送タイプを使用して、同じ名前空間にアクセスしない。
- アクティブなパスがホストに提示されていることを確認する。アクティブなパスが検出されるまで、名前空間は登録できません。
共有ストレージの機能 | SCSI over Fabric ストレージ | NVMe over Fabric ストレージ |
---|---|---|
RDM | サポート | サポート対象外 |
コア ダンプ | サポート | サポート |
SCSI-2 予約 | サポート | サポート対象外 |
クラスタ VMDK | サポート | サポート |
マルチライター フラグを使用した共有 VMDK | サポート | サポート vSphere 7.0 Update 1 以降の場合。 詳細については、ナレッジベースの記事を参照してください。 |
Virtual Volumes | サポート | サポート vSphere 8.0 以降の場合。 詳細については、『vSphere の NVMe と Virtual Volumes』を参照してください。 |
VAAI プラグインによるハードウェア アクセラレーション | サポート | サポート対象外 |
デフォルトの MPP | NMP | HPP(NVMe-oF ターゲットは NMP は要求できない) |
NVMe over RDMA 向けロスレス イーサネットの構成
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 を構成できます。
- 自動構成。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'
- ホストを再起動します。