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 に設定できます。
  1. PFC と DSCP トラスト モードを有効にします。
    #esxcli system module parameters set -m nmlx5_core -p "pfctx=0x08 pfcrx=0x08 trust_state=2"
    
  2. DSCP 値を 26 に設定します。
    #esxcli system module parameters set -m nmlx5_rdma -p "dscp_force=26"
  3. パラメータを確認し、設定が正しいかどうかを確認します。
    esxcli system module parameters list -m nmlx5_core | grep 'trust_state\|pfcrx\|pfctx'
  4. ホストを再起動します。