Skip to main content
ONTAP SAN Host Utilities
日本語は機械翻訳による参考訳です。内容に矛盾や不一致があった場合には、英語の内容が優先されます。

ONTAPストレージで NVMe-oF 用に RHEL 9.1 を構成する

共同作成者 netapp-sarajane

Red Hat Enterpirse Linux (RHEL) ホストは、非対称名前空間アクセス (ANA) を備えた NVMe over Fibre Channel (NVMe/FC) および NVMe over TCP (NVMe/TCP) プロトコルをサポートします。 ANA は、iSCSI および FCP 環境における非対称論理ユニット アクセス (ALUA) と同等のマルチパス機能を提供します。

RHEL 9.1 用の NVMe over Fabrics (NVMe-oF) ホストを構成する方法を学習します。サポートと機能に関する詳しい情報については、"NVME-oFの概要"

RHEL 9.1 の NVMe-oF には、次の既知の制限があります。

  • NVMe-oF プロトコルを使用した SAN ブートは現在サポートされていません。

手順1:必要に応じてSANブートを有効にします。

SAN ブートを使用するようにホストを構成すると、展開が簡素化され、スケーラビリティが向上します。使用"Interoperability Matrix Tool"Linux OS、ホスト バス アダプタ (HBA)、HBA ファームウェア、HBA ブート BIOS、およびONTAPバージョンが SAN ブートをサポートしていることを確認します。

手順
  1. "NVMe名前空間を作成し、ホストにマッピングする"

  2. SAN ブート名前空間がマップされているポートに対して、サーバー BIOS で SAN ブートを有効にします。

    HBA BIOS を有効にする方法については、ベンダー固有のマニュアルを参照してください。

  3. ホストを再起動し、OS が起動して実行されていることを確認します。

ステップ2: ソフトウェアバージョンとNVMe構成を確認する

システムがソフトウェア要件を満たしていることを確認し、NVMe パッケージのインストールとホスト構成を確認します。

手順
  1. サーバーに RHEL 9.1 をインストールします。インストールが完了したら、必要な RHEL 9.1 カーネルが実行されていることを確認します。

    uname -r

    RHEL カーネルバージョンの例:

    5.14.0-162.6.1.el9_1.x86_64
  2. 「 nvme-cli 」パッケージをインストールします。

    rpm -qa|grep nvme-cli

    次の例は、nvme-cli パッケージのバージョンを示しています。

    nvme-cli-2.0-4.el9.x86_64
  3. をインストールします libnvme パッケージ:

    rpm -qa|grep libnvme

    次の例は、libnvme パッケージのバージョンを示しています。

    libnvme-1.0-3.el9.x86_64
  4. RHEL 9.1ホストで、 hostnqn`文字列 `/etc/nvme/hostnqn:

    cat /etc/nvme/hostnqn

    次の例は、 `hostnqn`バージョン:

    nqn.2014-08.org.nvmexpress:uuid:325e7554-1f9b-11ec-8489-3a68dd61a4df
  5. 確認するには `hostnqn`文字列が一致する `hostnqn`ONTAPストレージ システム上の対応するサブシステムの文字列:

    ::> vserver nvme subsystem host show -vserver vs_nvme207
    例を示します
    Vserver     Subsystem          Host NQN
    ----------- --------------- ----------------------------------------------------------
    vs_nvme207   rhel_207_LPe32002    nqn.2014-08.org.nvmexpress:uuid:325e7554-1f9b-11ec-8489-3a68dd61a4df
    メモ もし `hostnqn`文字列が一致しない場合は、 `vserver modify`更新するコマンド `hostnqn`対応するONTAPストレージシステムサブシステムの文字列を `hostnqn`文字列から `/etc/nvme/hostnqn`ホスト上。

ステップ3: NVMe/FCとNVMe/TCPを構成する

Broadcom/Emulex または Marvell/QLogic アダプタを使用して NVMe/FC を構成するか、手動の検出および接続操作を使用して NVMe/TCP を構成します。

FC - ブロードコム/エミュレックス

Broadcom/Emulexアダプタ用にNVMe/FCを設定します。

手順
  1. サポートされているアダプタモデルを使用していることを確認します。

    1. モデル名を表示します。

      cat /sys/class/scsi_host/host*/modelname

      次の出力が表示されます。

      LPe32002-M2
      LPe32002-M2
    2. モデルの説明を表示します。

      cat /sys/class/scsi_host/host*/modeldesc

      次の例のような出力が表示されます。

    Emulex LightPulse LPe32002-M2 2-Port 32Gb Fibre Channel Adapter
    Emulex LightPulse LPe32002-M2 2-Port 32Gb Fibre Channel Adapter
  2. 推奨されるBroadcomを使用していることを確認します lpfc ファームウェアおよび受信トレイドライバ:

    1. ファームウェアのバージョンを表示します。

      cat /sys/class/scsi_host/host*/fwrev

      このコマンドはファームウェアのバージョンを返します。

      14.0.505.11, sli-4:2:c
      14.0.505.11, sli-4:2:c
    2. 受信トレイのドライバーのバージョンを表示します。

      cat /sys/module/lpfc/version

      次の例は、ドライバーのバージョンを示しています。

    0:14.2.0.5

    +
    サポートされているアダプタドライバおよびファームウェアバージョンの最新リストについては、を参照してください"Interoperability Matrix Tool"

  3. 確認します lpfc_enable_fc4_type がに設定されます 3

    cat /sys/module/lpfc/parameters/lpfc_enable_fc4_type
  4. イニシエータポートを表示できることを確認します。

    cat /sys/class/fc_host/host*/port_name

    次のような出力が表示されます。

    0x100000109b1b95ef
    0x100000109b1b95f0
  5. イニシエータポートがオンラインであることを確認します。

    cat /sys/class/fc_host/host*/port_state

    次の出力が表示されます。

    Online
    Online
  6. NVMe/FCイニシエータポートが有効になっており、ターゲットポートが認識されることを確認します。

    cat /sys/class/scsi_host/host*/nvme_info
    例を示します
    NVME Initiator Enabled
    XRI Dist lpfc0 Total 6144 IO 5894 ELS 250
    NVME LPORT lpfc0 WWPN x100000109b1b95ef WWNN x200000109b1b95ef DID x061700 ONLINE
    NVME RPORT       WWPN x2035d039ea1308e5 WWNN x2082d039ea1308e5 DID x062f05 TARGET DISCSRVC ONLINE
    NVME RPORT       WWPN x2083d039ea1308e5 WWNN x2082d039ea1308e5 DID x062407 TARGET DISCSRVC ONLINE
    
    NVME Statistics
    LS: Xmt 000000000e Cmpl 000000000e Abort 00000000
    LS XMIT: Err 00000000  CMPL: xb 00000000 Err 00000000
    Total FCP Cmpl 000000000001df6c Issue 000000000001df6e OutIO 0000000000000002
      abort 00000000 noxri 00000000 nondlp 00000000 qdepth 00000000 wqerr 00000000 err 00000000
    FCP CMPL: xb 00000000 Err 00000004
    
    NVME Initiator Enabled
    XRI Dist lpfc1 Total 6144 IO 5894 ELS 250
    NVME LPORT lpfc1 WWPN x100000109b1b95f0 WWNN x200000109b1b95f0 DID x061400 ONLINE
    NVME RPORT       WWPN x2036d039ea1308e5 WWNN x2082d039ea1308e5 DID x061605 TARGET DISCSRVC ONLINE
    NVME RPORT       WWPN x2037d039ea1308e5 WWNN x2082d039ea1308e5 DID x062007 TARGET DISCSRVC ONLINE
    
    NVME Statistics
    LS: Xmt 000000000e Cmpl 000000000e Abort 00000000
    LS XMIT: Err 00000000  CMPL: xb 00000000 Err 00000000
    Total FCP Cmpl 000000000001dd28 Issue 000000000001dd29 OutIO 0000000000000001
      abort 00000000 noxri 00000000 nondlp 00000000 qdepth 00000000 wqerr 00000000 err 00000000
    FCP CMPL: xb 00000000 Err 00000004
FC - マーベル/QLogic

Marvell/QLogicアダプタ用にNVMe/FCを設定します。

手順
  1. サポートされているアダプタ ドライバーとファームウェア バージョンを使用していることを確認します。

    cat /sys/class/fc_host/host*/symbolic_name

    次の例は、ドライバーとファームウェアのバージョンを示しています。

    QLE2772 FW:v9.08.02 DVR:v10.02.07.400-k-debug
    QLE2772 FW:v9.08.02 DVR:v10.02.07.400-k-debug
  2. 確認します ql2xnvmeenable が設定されます。これにより、MarvellアダプタをNVMe/FCイニシエータとして機能させることができます。

    cat /sys/module/qla2xxx/parameters/ql2xnvmeenable

    想定される出力は1です。

TCP

NVMe/TCP プロトコルは自動接続操作をサポートしていません。代わりに、NVMe/TCPサブシステムと名前空間をNVMe/TCPコマンドで検出することができます。 `connect`または `connect-all`手動で操作します。

手順
  1. イニシエーター ポートが、サポートされている NVMe/TCP LIF 全体で検出ログ ページ データを取得できることを確認します。

    nvme discover -t tcp -w host-traddr -a traddr
    例を示します
    nvme discover -t tcp -w 192.168.1.8 -a 192.168.1.51
    
    Discovery Log Number of Records 10, Generation counter 119
    =====Discovery Log Entry 0======
    trtype: tcp
    adrfam: ipv4
    subtype: nvme subsystem
    treq: not specified
    trsvcid: 4420
    traddr: 192.168.2.56
    =====Discovery Log Entry 1======
    trtype: tcp
    adrfam: ipv4
    subtype: nvme subsystem
    treq: not specified
    trsvcid: 4420
    traddr: 192.168.1.51
    sectype: none
    =====Discovery Log Entry 2======
    trtype: tcp
    adrfam: ipv4
    subtype: nvme subsystem
    treq: not specified
    trsvcid: 4420
    traddr: 192.168.2.56
  2. 他の NVMe/TCP イニシエーターとターゲット LIF の組み合わせで検出ログ ページ データを正常に取得できることを確認します。

    nvme discover -t tcp -w host-traddr -a traddr
    例を示します
    nvme discover -t tcp -w 192.168.1.8 -a 192.168.1.51
    nvme discover -t tcp -w 192.168.1.8 -a 192.168.1.52
    nvme discover -t tcp -w 192.168.2.9 -a 192.168.2.56
    nvme discover -t tcp -w 192.168.2.9 -a 192.168.2.57
  3. を実行します nvme connect-all ノード全体でサポートされているすべてのNVMe/TCPイニシエータ/ターゲットLIFを対象としたコマンド:

    nvme connect-all -t tcp -w host-traddr -a traddr
    例を示します
    nvme connect-all -t tcp -w 192.168.1.8 -a 192.168.1.51 -l 1800
    nvme connect-all -t tcp -w 192.168.1.8 -a 192.168.1.52 -l 1800
    nvme connect-all -t tcp -w 192.168.2.9 -a 192.168.2.56 -l 1800
    nvme connect-all -t tcp -w 192.168.2.9 -a 192.168.2.57 -l 1800

ステップ4: オプションでNVMe/FCの1MB I/Oを有効にする

ONTAP は、識別コントローラ データで最大データ転送サイズ (MDTS) が 8 であると報告します。つまり、最大 I/O 要求サイズは 1 MB までになります。 Broadcom NVMe/FCホストに1MBのI/Oリクエストを発行するには、 `lpfc`の価値 `lpfc_sg_seg_cnt`パラメータをデフォルト値の 64 から 256 に変更します。

メモ この手順は、Qlogic NVMe/FCホストには適用されません。
手順
  1. `lpfc_sg_seg_cnt`パラメータを256に設定します。

    cat /etc/modprobe.d/lpfc.conf

    次の例のような出力が表示されます。

    options lpfc lpfc_sg_seg_cnt=256
  2. コマンドを実行し dracut -f、ホストをリブートします。

  3. の値が256であることを確認し `lpfc_sg_seg_cnt`ます。

    cat /sys/module/lpfc/parameters/lpfc_sg_seg_cnt

ステップ5: マルチパス構成を確認する

カーネル内のNVMeマルチパスステータス、ANAステータス、およびONTAPネームスペースがNVMe-oF構成に対して正しいことを確認します。

手順
  1. カーネル内NVMeマルチパスが有効になっていることを確認します。

    cat /sys/module/nvme_core/parameters/multipath

    次の出力が表示されます。

    Y
  2. 該当するONTAPネームスペースの適切なNVMe-oF設定(modelをNetApp ONTAPコントローラに設定し、load balancing iopolicyをラウンドロビンに設定するなど)がホストに正しく反映されていることを確認します。

    1. サブシステムを表示します。

      cat /sys/class/nvme-subsystem/nvme-subsys*/model

      次の出力が表示されます。

      NetApp ONTAP Controller
      NetApp ONTAP Controller
    2. ポリシーを表示します。

      cat /sys/class/nvme-subsystem/nvme-subsys*/iopolicy

      次の出力が表示されます。

    round-robin
    round-robin
  3. ネームスペースが作成され、ホストで正しく検出されたことを確認します。

    nvme list
    例を示します
    Node         SN                   Model
    ---------------------------------------------------------
    /dev/nvme4n1 81Ix2BVuekWcAAAAAAAB	NetApp ONTAP Controller
    
    
    Namespace Usage    Format             FW             Rev
    -----------------------------------------------------------
    1                 21.47 GB / 21.47 GB	4 KiB + 0 B   FFFFFFFF
  4. 各パスのコントローラの状態がliveであり、正しいANAステータスが設定されていることを確認します。

    NVMe/FC
    nvme list-subsys /dev/nvme0n1
    例を示します
    nvme-subsys10 - NQN=nqn.1992-08.com.netapp:sn.82e7f9edc72311ec8187d039ea14107d:subsystem.rhel_131_QLe2742
    \
     +- nvme2 fc traddr=nn-0x2038d039ea1308e5:pn-0x2039d039ea1308e5,host_traddr=nn-0x20000024ff171d30:pn-0x21000024ff171d30 live non-optimized
     +- nvme3 fc traddr=nn-0x2038d039ea1308e5:pn-0x203cd039ea1308e5,host_traddr=nn-0x20000024ff171d31:pn-0x21000024ff171d31 live optimized
     +- nvme4 fc traddr=nn-0x2038d039ea1308e5:pn-0x203bd039ea1308e5,host_traddr=nn-0x20000024ff171d30:pn-0x21000024ff171d30 live optimized
     +- nvme5 fc traddr=nn-0x2038d039ea1308e5:pn-0x203ad039ea1308e5,host_traddr=nn-0x20000024ff171d31:pn-0x21000024ff171d31 live non-optimized
    NVMe/FC
    nvme list-subsys /dev/nvme0n1
    例を示します
    nvme-subsys1 - NQN=nqn.1992-08.com.netapp:sn.bf0691a7c74411ec8187d039ea14107d:subsystem.rhel_tcp_133
    \
     +- nvme1 tcp traddr=192.168.166.21,trsvcid=4420,host_traddr=192.168.166.5 live non-optimized
     +- nvme2 tcp traddr=192.168.166.20,trsvcid=4420,host_traddr=192.168.166.5 live optimized
     +- nvme3 tcp traddr=192.168.167.21,trsvcid=4420,host_traddr=192.168.167.5 live non-optimized
     +- nvme4 tcp traddr=192.168.167.20,trsvcid=4420,host_traddr=192.168.167.5 live optimized
  5. ネットアッププラグインで、ONTAP ネームスペースデバイスごとに正しい値が表示されていることを確認します。

    列( Column )
    nvme netapp ontapdevices -o column
    例を示します
    Device       Vserver          Namespace Path
    ---------    -------          --------------------------------------------------
    /dev/nvme0n1 vs_tcp79     /vol/vol1/ns1 
    
    NSID  UUID                                   Size
    ----  ------------------------------         ------
    1     79c2c569-b7fa-42d5-b870-d9d6d7e5fa84  21.47GB
    JSON
    nvme netapp ontapdevices -o json
    例を示します
    {
    
      "ONTAPdevices" : [
      {
    
          "Device" : "/dev/nvme0n1",
          "Vserver" : "vs_tcp79",
          "Namespace_Path" : "/vol/vol1/ns1",
          "NSID" : 1,
          "UUID" : "79c2c569-b7fa-42d5-b870-d9d6d7e5fa84",
          "Size" : "21.47GB",
          "LBA_Data_Size" : 4096,
          "Namespace_Size" : 5242880
        },
    
    ]
    
    }

手順6:既知の問題を確認する

既知の問題は次のとおりです:

NetApp バグ ID タイトル 説明

1503468

nvme list-subsys コマンドは、指定したサブシステムに対して繰り返し実行されているNVMeコントローラのリストを返します

その `nvme list-subsys`コマンドは、指定されたサブシステムの NVMe コントローラーのリストを返します。 RHEL 9.1 では、このコマンドは、サブシステム内のすべての名前空間のコントローラーとその ANA 状態を表示します。 ANA の状態は名前空間ごとの属性であるため、コマンドは各名前空間のパスの状態を持つ一意のコントローラー エントリを表示する必要があります。