ESXi での RoCEv2 を使用した NVMeoF の構成

ESXi 上で RoCE v2 を使用するファブリック(NVMeoF)を介して NVMe を使用する際のガイドライン

一般的なガイドラインと制限事項

  • Cisco では、UCS ハードウェアとソフトウェアの互換性をチェックして、NVMeoF のサポートを判断することを推奨します。NVMeoF は、Cisco UCS B シリーズ、C シリーズ、および X シリーズのサーバでサポートされています。

  • RoCE v2 を使用した Nonvolatile Memory Express(NVMe)over RDMA は、現在、Cisco VIC 15000 シリーズ アダプタでのみサポートされています。

  • RoCE v2 インターフェイスを作成する場合は、シスコが推奨するキュー ペア、メモリ リージョン、リソースグループ、およびサービス クラスの設定を使用してください。キュー ペア、メモリ領域、リソース グループ、およびサービス クラスの設定が異なると、NVMeoF の機能が保証されない可能性があります。

  • RoCE v2 は、アダプタごとに最大 2 つの RoCE v2 対応インターフェイスをサポートします。

  • NVMeoF ネームスペースからのブートはサポートされていません。

  • レイヤ 3 ルーティングはサポートされていません。

  • システム クラッシュ時に crashdump を NVMeoF ネームスペースに保存することはサポートされていません。

  • NVMeoF は、usNIC、VxLAN、VMQ、VMMQ、NVGRE、GENEVE オフロード、ENS、および DPDK 機能とともに使用することはできません。

  • Cisco Intersight は、RoCE v2 対応の vNIC に対してファブリック フェールオーバーをサポートしません。

  • Quality of Service(QoS)no drop クラス構成は、Cisco Nexus 9000 シリーズ スイッチなどのアップストリーム スイッチで適切に構成する必要があります。QoS の設定は、異なるアップストリーム スイッチ間で異なります。

  • スパニング ツリー プロトコル(STP)を使用している場合、フェールオーバまたはフェールバック イベントが発生したときに、ネットワーク接続が一時的に失われる可能性があります。この接続性の問題が発生しないようにするには、アップリンク スイッチで STP を無効にします。

ダウングレードのガイドライン: 最初に RoCEv2 構成を削除してから、Cisco UCS Manager リリース 4.2(3b) バージョンよりも前のリリースバージョンにダウングレードします。

ESXi の要件

ESXiでの RoCE v2 の構成と使用には、次のものが必要です。

  • VMWare ESXi バージョン 7.0 Update 3。

  • Cisco UCS Manager リリース バージョン 4.2(3b) 以降。

  • VIC ファームウェア 5.2(3x) 以降のバージョン。

  • ドライバ バージョン、nenic-2.0.4.0-1OEM.700.1.0.15843807.x86_64.vib は、Cisco UCS Manager 4.2(3b) リリース パッケージで、標準 eNIC と RDMA の両方のサポートを提供します。

  • NVMeoF 接続をサポートするストレージ アレイ。

Cisco Intersight での RoCE v2 for NVMeoF の構成

Cisco Intersight で RoCE v2 インターフェイスを構成するには、次の手順に従います。

RDMA パケット ドロップの可能性を回避するには、ネットワーク全体で同じ非ドロップ COS が構成されていることを確認してください。次の手順に従えば、システム QoS ポリシーで非ドロップ クラスを構成して、RDMA でサポートされているインターフェイス用に使用できます。

手順


ステップ 1

[構成(CONFIGURE)] > [ポリシー(Policies)] に移動します。[ポリシーの作成(Create Policy)] をクリックし、[UCS ドメイン(UCS Domain)] プラットフォーム タイプを選択し、[システム QoS(System QoS)] を検索または選択して、[Start(開始)] をクリックします。

ステップ 2

[全般(General)] ページでポリシー名を入力し、[次へ(Next)] をクリックします。 次に、[ポリシーの詳細(Policy Details)] ページで、次のようにシステム QoS ポリシーのプロパティ設定を構成します。

  • [優先順位(Priority)] で、[プラチナ(Platinum)] を選択します。

  • [パケットドロップを許可(Allow Packet Drops)] チェックボックスをオフにします。

  • [MTU] については、値を 9216 に設定します。

ステップ 3

[作成(Create)] をクリックします。

ステップ 4

システム QoS ポリシーをドメイン プロファイルに関連付けます。

(注)  

 

詳細については、「ドメイン ポリシーの構成」の「システム QoS ポリシーの作成」および「ドメイン プロファイルの構成」を参照してください。


システム QoS ポリシーが正常に作成され、ドメイン プロファイルに展開されます。

次のタスク

LAN 接続ポリシーで RoCE v2 vNIC 設定を使用してサーバ プロファイルを構成します。

LAN 接続ポリシーで RoCE 設定を有効化する

RoCE v2 vNIC を構成するには、次の手順に従います。Cisco Intersight LAN 接続ポリシーでは、次のように Linux 構成向けのイーサネット アダプタ ポリシーの RoCE 設定を有効にできます。

手順


ステップ 1

[構成(CONFIGURE)] > [ポリシー(Policies)] に移動します。[ポリシーの作成(Create Policy)] をクリックし、[UCS サーバ(UCS Server)] プラットフォーム タイプを選択し、[LAN 接続ポリシー(LAN Connectivity policy)] を検索または選択して、[Start(開始)] をクリックします。

ステップ 2

ポリシーの [全般(General)] ページで、ポリシー名を入力し、[ターゲット プラットフォーム(Target Platform)] として [UCS サーバ(スタンドアロン)(UCS Server(Standalone))] または [UCS サーバ(FI アタッチ)(UCS Server(FI-Attached)))] を選択し、[次へ(Next)] をクリックします。

ステップ 3

[ポリシーの詳細(Policy Details)] ページで、[vNIC の追加(Add vNIC)] をクリックして新しい vNIC を作成します。

ステップ 4

[vNIC の追加(Add vNIC)] ページで、構成パラメータに従って RoCE v2 vNIC を有効にします。

  1. [全般(General)] セクションで、仮想イーサネット インターフェイスの名前を入力します。

  2. スタンドアロン サーバの場合は、[Consistent Device Naming(CDN)] をクリックするか、FI アタッチ サーバの [フェールオーバー(Failover)] をクリックして、次の手順を実行します。

    • [イーサネット アダプタ(Ethernet Adapter)] の下で、[ポリシーの選択(Select Policy)] をクリックします。

    • [ポリシーの選択(Select Policy)]ウィンドウで、[新規作成(Create New)] をクリックして、イーサネット アダプタ ポリシーを作成します。

    • イーサネット アダプタ ポリシーの [全般(General)] ページで、ポリシーの名前を入力し、[次へ(Next)] をクリックします。

    • イーサネットアダプタ ポリシーの [ポリシーの詳細(Policy Details)] ページで、次のプロパティ設定を変更します。

      • [RoCE の設定(RoCE Settings)]

        • [コンパージド イーサネット上の RDMA を有効にする(Enable RDMA over Converged Ethernet)] をスライドして有効にし、この仮想インターフェイスの RoCE を設定します。

        • [キュー ペア (Queue Pairs)] で、1024 を選択するか、入力します。

        • [メモリー リージョン(Memory Regions)]で、131072 を選択するか、入力します。

        • [リソース グループ(Resource Groups)] で、8 を選択するか、入力します。

        • [バージョン(Version)] で、[バージョン 2(Version 2)] を選択します。

        • [サービスクラス(Class of Service)] で、5 を選択します。

      • [割り込み設定(Interrupt Settings)]

        • [割り込み(Interrupts)] で、256 を選択するか、入力します。

        • [割り込みモード(Interrupt mode)] で、[MSIx] を選択します。

        • [割り込みタイマー(Interrupt Timer)] で、125 を選択します。

        • [割り込み調停タイプ(Interrupt Coalescing Type)] で、[最小(Min)] を選択します。

      • [受信(Receive)] の設定

        • [受信キュー数(Receive Queue Count)] で、1 を選択するか、入力します。

        • [受信リングサイズ(Receiving Ring Size)] で、512 を選択するか、入力します。

      • [送信(Transmit)]の設定

        • [送信キュー数(Transmit Queue Count)] で、1 を選択するか、入力します。

        • [送信リングサイズ(Transmit Ring Size)] で、256 を選択するか、入力します。

      • [完了(Completion)] の設定

        • [完了キュー カウント(Completion Queue Count)] で、2 を選択するか、入力します。

        • [完了リング サイズ(Completion Ring Size)] で、1 を選択するか、入力します。

        • [アップリンク フェールバック タイムアウト(秒)(Uplink Failback Timeout)] で、5 を選択するか、入力します。

    • [作成(Create)] をクリックして、上記で定義した設定でイーサネット アダプタ ポリシーを作成します。

    • [追加 (Add)] をクリックして設定を保存し、新しい vNIC を追加します。

      (注)  

       

      * が付いているすべてのフィールドは必須です。適切なポリシーに従って入力または選択されていることを確認してください。

ステップ 5

[作成(Create)] をクリックし、RoCE v2 設定によって LAN 接続ポリシーを完成させます。

ステップ 6

LAN 接続ポリシーをサーバ プロファイルに関連付けます。

(注)  

 

詳細については、「UCS サーバ ポリシーの構成」の「LAN 接続ポリシーの作成」および「イーサネット アダプタ ポリシーの作成」および「UCS サーバ プロファイルの構成」を参照してください。


イーサネット アダプタ ポリシーの vNIC 設定を含む LAN 接続ポリシーが正常に作成および展開され、RoCE v2 設定が有効になります。

次のタスク

RoCE v2 のポリシー構成が完了したら、ホスト システムで NVMeoF の RoCE v2 を構成します。

NENIC ドライバのインストール

始める前に

イーサネット ネットワーク インターフェイス カード(eNIC)のリモート ダイレクト メモリ アクセス(RDMA)ドライバには、nenic ドライバが必要です。

手順


ステップ 1

eNIC vSphere インストール バンドル(VIB)またはオフライン バンドルを ESXi サーバにコピーします。

ステップ 2

次のコマンドを使用して、nenic ドライバをインストールします。

esxcli software vib install -v {VIBFILE}
or
esxcli software vib install -d {OFFLINE_BUNDLE}

例:

esxcli software vib install -v /tmp/nenic-2.0.4.0-1OEM.700.1.0.15843807.x86_64.vib

(注)  

 
VIB の署名に使用されている証明書によっては、ホスト許容レベルの変更が必要になる場合があります。これを行うには、次のコマンドを使用します。
esxcli software acceptance set --level=<level>

インストールされている VIB のタイプによっては、ESX をメンテナンス モードにする必要があります。これは、クライアントを介して実行するか、上記の esxcli--maintenance-mode オプションを追加することで実行できます。


次のタスク

ESXi NVMe RDMA のホスト側を構成します。

ESXi NVMe RDMA のホスト側の構成

NENIC RDMA の機能

Linux と ESXi の RDMA の主な違いの 1 つを以下に示します。

  • ESXi では、物理インターフェイス(vmnic)の MAC は RoCEv2 トラフィックに使用されません。代わりに、VMkernelポート(vmk)の MACが使用されます。

    発信 RoCE パケットはイーサネット送信元 MAC フィールドの vmrk MAC を使用します。着信 RoCE パケットは、イーサネット接続先 mac フィールドの vmk MAC を使用します。vmk MAC アドレスは、作成時に vmk インターフェイスに割り当てられるVMware MAC アドレスです。

  • Linux では、物理インターフェイス MAC が ROCE パケットの送信元 MAC アドレス フィールドで使用されます。この Linux MACは通常、UCS Manager を使用して VNIC に構成された Cisco MAC アドレスです。

ホストに ssh で接続し、esxcli network ip interface list コマンドを使用すると、 MAC アドレスを確認できます。

ホスト、仮想マシンにネットワーク接続を提供し、VMkernelトラフィックを処理するには、 vSphere 標準スイッチを作成する必要があります。作成する接続タイプに応じて、VMkernel アダプタを使用して新しい vSphere 標準スイッチを作成するか、物理ネットワーク アダプタのみを新しいスイッチに接続するか、または仮想マシン ポート グループを使用してスイッチを作成することができます。

ネットワーク接続スイッチの作成

次の手順に従って、ホスト、仮想マシンにネットワーク接続を提供し、VMkernel トラフィックを処理するための vSphere 標準スイッチを作成します。

始める前に

nenic ドライバがあることを確認します。以下の手順に進む前に、nenic ドライバをダウンロードしてインストールします。

手順


ステップ 1

vSphere Web Client で、ホストに移動します。

ステップ 2

[構成(Configure)] タブで、[ネットワーキング(Networking)] を展開し、[仮想スイッチ(Virtual Switches)] を選択します。

ステップ 3

[ネットワーキングの追加(Add Networking)] をクリックします。

使用可能なネットワーク アダプタの接続タイプは次のとおりです。

  • Vmkernel ネットワーク アダプタ

    ホスト管理トラフィックを処理する新しい VMkernel アダプタを作成します。

  • 物理ネットワーク アダプタ

    物理ネットワーク アダプタを新しい、または既存の標準スイッチに追加します。

  • 標準スイッチの仮想マシン ポート グループ

    仮想マシン ネットワーキング用の新しいポート グループを作成します。

ステップ 4

接続タイプ [Vmkernel ネットワーク アダプタ(Vmkernel Network Adapter)] を選択します。

ステップ 5

[新しい標準スイッチ(New standard switch)] を選択し、[次へ(Next)] をクリックします。

ステップ 6

物理ネットワーク アダプタを新しい標準スイッチに追加します。

  1. [割り当て済みアダプタ(Assigned Adapters)] で、[新しいアダプタ(New Adapters)] を選択します。

  2. リストから 1 つ以上のアダプタをセレクトし、[OK] をクリックします。スループットの向上を促し、冗長性を得るため、[アクティブ(Active)] リストで少なくとも 2 つの物理ネットワーク アダプタを追加してください。

  3. (オプション)上矢印キーと下矢印キーで、[割り当て済みアダプタ(Assigned Adapters)] リスト内のアダプタの位置を変更します。

  4. [次へ(Next)] をクリックします。

ステップ 7

VMadapter またはポートグループ用に作成した新しい標準スイッチに対し、アダプタまたはポートグループの接続設定を入力します。

  1. VMkernel アダプタのトラフィック タイプを表すラベルを入力します。

  2. ネットワーク トラフィックのルーティングで VMkernel が使用する VLAN を識別するための、VLAN ID を設定します。

  3. [IPv4]、[IPv6]、またはその両方を選択します。

  4. ドロップダウン メニューから MTU サイズを選択します。特定の MTU サイズを入力する場合は、[カスタム(Custom)] を選択します。最大 MTU サイズは 9000 バイトです。

    (注)  

     

    1500 より大きい MTU を設定すれば、ジャンボ フレームを有効にすることができます。

  5. VMkernel アダプタの TCP/IP スタックを設定した後、 TCP/IP スタックを選択します。

    デフォルトの TCP/IP スタックを使用するには、使用可能なサービスから選択します。

    (注)  

     

    VMkernel アダプタの TCP/IP スタックは、後から変更できないことに注意してください。

  6. IPV4 または IPV6 設定、あるいはその両方を構成します。

ステップ 8

[完了の準備] ページで、[完了(Finish)] をクリックします。

ステップ 9

次の結果に示すように、vSphere クライアントで NVMe RDMA を使用して VM アダプタまたはポート グループの VMkernel ポートを確認します。


NVMe RDMA を使用する VM アダプタまたはポート グループの VMkernel ポートは、以下のようになります。

NVMeRDMA がサポートされている vmnic で作成された VRDMA ポート グループは、次のように表示されます。

次のタスク

vmrdma ポートの上に vmhba ポートを作成します。

ESXi での VMVHBA ポートの作成

vmrdma アダプタ ポートの上に vmhba ポートを作成するには、次の手順に従います。

始める前に

ストレージ接続用のアダプタ ポートを作成します。

手順


ステップ 1

ESXi ホストが接続されている vCenter に移動します。

ステップ 2

[ホスト(Host)] > [構成(Configure)] > [ストレージ アダプタ(Storage adapters)] の順にクリックします。

ステップ 3

[+ ソフトウェア アダプタの追加(Add Software Adapter)] をクリックします。次のダイアログ ボックスが表示されます。

ステップ 4

[RDMA アダプタ上にソフトウェア NVMe を追加(Add software NVMe over RDMA adapter)] と、使用する vmrdma ポートを選択します。

ステップ 5

[OK] をクリックします。

RDMA ストレージ アダプタ上の VMware NVMe の vmhba ポートは、次の例のように表示されます。


vmnic および vmrdma インターフェイスの表示

ESXi は、ホストに構成された各 nenic VNIC に対して vmnicインターフェイスを作成します。

始める前に

ネットワーク アダプタと VHBA ポートを作成します。

手順


ステップ 1

ssh を使用してホスト システムにアクセスします。

ステップ 2

esxcfg-nics -l と入力して、 ESXi 上の vmnic を一覧表示します。

esxcli network nic list

ステップ 3

esxcli rdma device list を使用して、vmrdma デバイスを一覧表示します。enic ドライバが RDMA 対応 VNIC の RDMA デバイスを ESXi に登録すると、 ESXi は vmrdma デバイスを作成し、対応する vmnic にリンクします。

ステップ 4

esxcli rdma device protocol list を使用して、vmrdma インターフェイスでサポートされているプロトコルを確認します。

enic の場合、RoCE v2 がサポートされている唯一のプロトコルであることがリストから分かります。このコマンドの出力は、VNIC の RoCEv2 設定と一致しているはずです。

ステップ 5

esxcli nvme adapter list を使用して、NVMe アダプタと、それが構成されている vmrdma および vmnic インターフェイスを一覧表示します。

ステップ 6

esxcli storage core adapter list を使用して、システム内のすべての vmhbas を一覧表示できます。RDMA を介して構成された vmhba。

(注)  

 
vmhba64 および vmhba65 の場合、ドライバのリンク状態に Online ではなく link-n/a と表示されることがあります。これは、 ESXi 7.0 Update 3 の既知の問題です。詳細については、既知の問題 - ESXi を参照してください。

NVMe ファブリックと名前空間の検出

この手順は、 ESXi コマンド ライン インターフェイスを使用して実行します。

始める前に

アダプタの VMHBA で NVMe を作成して構成します。アダプタの最大数は 2 で、ベスト プラクティスは両方をフォールト トレランス用に構成することです。

手順


ステップ 1

vmrdma デバイスの NVMe をチェックして有効にします。

esxcli nvme fabrics enable -p RDMA -d vmrdma0

NVMe が有効になっているかどうかを示すメッセージが表示されます。

ステップ 2

次のコマンドを入力して、アレイ上の NVMe ファブリックを検出します。

esxcli nvme fabrics discover -a vmhba64 -l transport_address

esxcli nvme fabrics discover -a vmhba64 -l 50.2.84.100 の実行結果を示す図

出力では、トランスポート タイプ、アドレス ファミリ、サブシステム タイプ、コントローラ ID、管理キュー、最大サイズ、トランスポート アドレス、トランスポート サービス ID、およびサブシステム NQN の情報が表示されます。

NVMe コントローラに出力が表示されます。

ステップ 3

NVMe ファブリック インターコネクトを実行します。

esxcli nvme fabrics discover -a vmhba64 -l transport_address p Transport Service ID -s Subsystem NQN

ステップ 4

手順 1 ~ 4 を繰り返して、2 番目のアダプタを構成します。

ステップ 5

設定を確認します。

  1. コントローラ リストを表示して、NVMe コントローラが存在し、動作していることを確認します。

    esxcli nvme controller list RDMA -d vmrdma0

  2. ファブリックがアダプタを介してコントローラで有効になっていることを確認し、コントローラがアダプタのポートを介してアクセス可能であることを確認します。

    [root@ESXiUCSA:~] esxcli nvme fabrics enable -p RDMA -d vmrdma0
    NVMe already enabled on vmrdma0
    [root@ESXiUCSA:~] esxcli nvme fabrics discover -a vmhba64 -l 50.2.84.100
    Transport Type Address Family Subsystem Type Controller ID Admin Queue Max Size Transport Address Transport Service ID Subsystem NQN
    -------------- -------------- -------------- ------------- -------------------- ----------------- -------------------- -------------
    RDMA            IPV4           NVM            65535          31                  50.2.84.100        4420                nq.210-06.com.purestorage:flasharray:2dp1239anjkl484
    [root@ESXiUCSA:~] esxcli nvme fabrics discover -a vmhba64 -l 50.2.84.100 p 4420 -s nq.210-06.com.purestorage:flasharray:2dp1239anjkl484
    Controller already connected

Cisco Intersight を使用した RoCE v2 インターフェイスの削除

RoCE v2 インターフェイスを削除するには、次の手順を実行します。

手順


ステップ 1

[構成(CONFIGURE)] > [ポリシー(Policies)] に移動します。[フィルタの追加(Add Filter)] フィールドで、[タイプ:LAN 接続(Type: LAN Connectivity)] を選択します。

ステップ 2

RoCE V2 構成用に作成された適切な LAN 接続ポリシーを選択し、ポリシー リストの上部または下部にある削除アイコンを使用します。

ステップ 3

ポリシーを削除するには、[削除(Delete)] をクリックします。

ステップ 4

RoCE v2 構成を削除したら、サーバ プロファイルを再展開し、サーバを再起動します。