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

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

共同作成者 netapp-sarajane

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

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

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

  • NVMe-oF の DM マルチパス サポートはサポートされていません。

  • 発行を避ける nvme disconnect-all NVMe-TCP または NVMe-FC 名前空間を介して 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 10.0 をインストールします。インストールが完了したら、必要な RHEL 10.0 カーネルが実行されていることを確認します。

    uname -r

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

    6.12.0-55.9.1.el10_0.x86_64
  2. 「 nvme-cli 」パッケージをインストールします。

    rpm -qa|grep nvme-cli

    次の例は、 `nvme-cli`パッケージバージョン:

    nvme-cli-2.11-5.el10.x86_64
  3. をインストールします libnvme パッケージ:

    rpm -qa|grep libnvme

    次の例は、 `libnvme`パッケージバージョン:

    libnvme-1.11.1-1.el10.x86_64
  4. ホスト上で、hostnqn文字列を確認します。 /etc/nvme/hostnqn

    cat /etc/nvme/hostnqn

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

    nqn.2014-08.org.nvmexpress:uuid:4c4c4544-0056-5410-8048-b9c04f425633
  5. を確認します hostnqn 文字列はに一致します hostnqn ONTAP アレイ上の対応するサブシステムの文字列。

    ::> vserver nvme subsystem host show -vserver vs_nvme_194_rhel10
    例を示します
    Vserver Subsystem Priority  Host NQN
    ------- --------- --------  ------------------------------------------------
    vs_ nvme_194_rhel10
            nvme4
                      regular   nqn.2014-08.org.nvmexpress:uuid:4c4c4544-0056-5410-8048- c7c04f425633
            nvme_1
                      regular   nqn.2014-08.org.nvmexpress:uuid:4c4c4544-0056-5410-8048- c7c04f425633
            nvme_2
                      regular   nqn.2014-08.org.nvmexpress:uuid:4c4c4544-0056-5410-8048- c7c04f425633
            nvme_3
                      regular   nqn.2014-08.org.nvmexpress:uuid:4c4c4544-0056-5410-8048- c7c04f425633
    4 entries were displayed.
メモ もし `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

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

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

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

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

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

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

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

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

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

      cat /sys/module/lpfc/version

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

      0:14.4.0.6

    サポートされているアダプタドライバおよびファームウェアバージョンの最新リストについては、を参照してください"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

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

    0x100000109b1c1205
  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 lpfc2 Total 6144 IO 5894 ELS 250
    NVME LPORT lpfc2 WWPN x100000109bf044b1 WWNN x200000109bf044b1 DID x022a00 ONLINE
    NVME RPORT       WWPN x202fd039eaa7dfc8 WWNN x202cd039eaa7dfc8 DID x021310 TARGET DISCSRVC ONLINE
    NVME RPORT       WWPN x202dd039eaa7dfc8 WWNN x202cd039eaa7dfc8 DID x020b10 TARGET DISCSRVC ONLINE
    
    NVME Statistics
    LS: Xmt 0000000810 Cmpl 0000000810 Abort 00000000
    LS XMIT: Err 00000000  CMPL: xb 00000000 Err 00000000
    Total FCP Cmpl 000000007b098f07 Issue 000000007aee27c4 OutIO ffffffffffe498bd
            abort 000013b4 noxri 00000000 nondlp 00000058 qdepth 00000000 wqerr 00000000 err 00000000
    FCP CMPL: xb 000013b4 Err 00021443
    
    NVME Initiator Enabled
    XRI Dist lpfc3 Total 6144 IO 5894 ELS 250
    NVME LPORT lpfc3 WWPN x100000109bf044b2 WWNN x200000109bf044b2 DID x021b00 ONLINE
    NVME RPORT       WWPN x2033d039eaa7dfc8 WWNN x202cd039eaa7dfc8 DID x020110 TARGET DISCSRVC ONLINE
    NVME RPORT       WWPN x2032d039eaa7dfc8 WWNN x202cd039eaa7dfc8 DID x022910 TARGET DISCSRVC ONLINE
    
    NVME Statistics
    LS: Xmt 0000000840 Cmpl 0000000840 Abort 00000000
    LS XMIT: Err 00000000  CMPL: xb 00000000 Err 00000000
    Total FCP Cmpl 000000007afd4434 Issue 000000007ae31b83 OutIO ffffffffffe5d74f
            abort 000014a5 noxri 00000000 nondlp 0000006a qdepth 00000000 wqerr 00000000 err 00000000
    FCP CMPL: xb 000014a5 Err 0002149a
FC - マーベル/QLogic

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

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

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

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

    QLE2872 FW:v9.15.00 DVR:v10.02.09.300-k
    QLE2872 FW:v9.15.00 DVR:v10.02.09.300-k
  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.20.1 -a 192.168.20.20
    
    Discovery Log Number of Records 8, Generation counter 18
    =====Discovery Log Entry 0======
    trtype:  tcp
    adrfam:  ipv4
    subtype: current discovery subsystem
    treq:    not specified
    portid:  4
    trsvcid: 8009
    subnqn:  nqn.1992-08.com.netapp:sn.64e65e6caae711ef9668d039ea951c46:discovery
    traddr:  192.168.21.21
    eflags:  explicit discovery connections, duplicate discovery information
    sectype: none
    =====Discovery Log Entry 1======
    trtype:  tcp
    adrfam:  ipv4
    subtype: current discovery subsystem
    treq:    not specified
    portid:  2
    trsvcid: 8009
    subnqn:  nqn.1992-08.com.netapp:sn.64e65e6caae711ef9668d039ea951c46:discovery
    traddr:  192.168.20.21
    eflags:  explicit discovery connections, duplicate discovery information
    sectype: none
    =====Discovery Log Entry 2======
    trtype:  tcp
    adrfam:  ipv4
    subtype: current discovery subsystem
    treq:    not specified
    portid:  3
    trsvcid: 8009
    subnqn:  nqn.1992-08.com.netapp:sn.64e65e6caae711ef9668d039ea951c46:discovery
    traddr:  192.168.21.20
    eflags:  explicit discovery connections, duplicate discovery information
    sectype: none
    =====Discovery Log Entry 3======
    trtype:  tcp
    adrfam:  ipv4
    subtype: current discovery subsystem
    treq:    not specified
    portid:  1
    trsvcid: 8009
    subnqn:  nqn.1992-08.com.netapp:sn.64e65e6caae711ef9668d039ea951c46:discovery
    traddr:  192.168.20.20
    eflags:  explicit discovery connections, duplicate discovery information
    sectype: none
    =====Discovery Log Entry 4======
    trtype:  tcp
    adrfam:  ipv4
    subtype: nvme subsystem
    treq:    not specified
    portid:  4
    trsvcid: 4420
    subnqn:  nqn.1992-08.com.netapp:sn.64e65e6caae711ef9668d039ea951c46:subsystem.rhel10_tcp_subsystem
    traddr:  192.168.21.21
    eflags:  none
    sectype: none
    =====Discovery Log Entry 5======
    trtype:  tcp
    adrfam:  ipv4
    subtype: nvme subsystem
    treq:    not specified
    portid:  2
    trsvcid: 4420
    subnqn:  nqn.1992-08.com.netapp:sn.64e65e6caae711ef9668d039ea951c46:subsystem.rhel10_tcp_subsystem
    traddr:  192.168.20.21
    eflags:  none
    sectype: none
    =====Discovery Log Entry 6======
    trtype:  tcp
    adrfam:  ipv4
    subtype: nvme subsystem
    treq:    not specified
    portid:  3
    trsvcid: 4420
    subnqn:  nqn.1992-08.com.netapp:sn.64e65e6caae711ef9668d039ea951c46:subsystem.rhel10_tcp_subsystem
    traddr:  192.168.21.20
    eflags:  none
    sectype: none
    =====Discovery Log Entry 7======
    trtype:  tcp
    adrfam:  ipv4
    subtype: nvme subsystem
    treq:    not specified
    portid:  1
    trsvcid: 4420
    subnqn:  nqn.1992-08.com.netapp:sn.64e65e6caae711ef9668d039ea951c46:subsystem.rhel10_tcp_subsystem
    traddr:  192.168.20.20
    eflags:  none
    sectype: none
  2. 他の NVMe/TCP イニシエーターとターゲット LIF の組み合わせで検出ログ ページ データを正常に取得できることを確認します。

    nvme discover -t tcp -w host-traddr -a traddr
    例を示します
    nvme discover -t tcp -w 192.168.20.1 -a 192.168.20.20
    nvme discover -t tcp -w 192.168.21.1 -a 192.168.21.20
    nvme discover -t tcp -w 192.168.20.1 -a 192.168.20.21
    nvme discover -t tcp -w 192.168.21.1 -a 192.168.21.21
  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.20.1	-a	192.168.20.20
    nvme	connect-all	-t	tcp	-w	192.168.21.1	-a	192.168.21.20
    nvme	connect-all	-t	tcp	-w	192.168.20.1	-a	192.168.20.21
    nvme	connect-all	-t	tcp	-w	192.168.21.1	-a	192.168.21.21

RHEL 9.4以降、NVMe/TCPの設定は `ctrl_loss_tmo timeout`自動的に「オフ」に設定されます。その結果、次のようになります

  • 再試行回数に制限はありません(無期限再試行)。

  • 特定の設定を手動で行う必要はありません `ctrl_loss_tmo timeout`使用時の持続時間 `nvme connect`または `nvme connect-all`コマンド(オプション -l )。

  • NVMe/TCP コントローラーは、パス障害が発生した場合でもタイムアウトが発生せず、無期限に接続されたままになります。

ステップ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ブートサービスを確認する

その `nvmefc-boot-connections.service`そして `nvmf-autoconnect.service`NVMe/FCに含まれるブートサービス `nvme-cli`パッケージはシステムの起動時に自動的に有効になります。

起動が完了したら、 `nvmefc-boot-connections.service`そして `nvmf-autoconnect.service`ブート サービスが有効になっています。

手順
  1. が有効であることを確認し `nvmf-autoconnect.service`ます。

    systemctl status nvmf-autoconnect.service
    出力例を表示します。
    nvmf-autoconnect.service - Connect NVMe-oF subsystems automatically during boot
         Loaded: loaded (/usr/lib/systemd/system/nvmf-autoconnect.service; enabled; preset: disabled)
         Active: inactive (dead)
    
    Jun 10 04:06:26 SR630-13-201.lab.eng.btc.netapp.in systemd[1]: Starting Connect NVMe-oF subsystems automatically during boot...
    Jun 10 04:06:26 SR630-13-201.lab.eng.btc.netapp.in systemd[1]: nvmf-autoconnect.service: Deactivated successfully.
    Jun 10 04:06:26 SR630-13-201.lab.eng.btc.netapp.in systemd[1]: Finished Connect NVMe-oF subsystems automatically during boot.
  2. が有効であることを確認し `nvmefc-boot-connections.service`ます。

    systemctl status nvmefc-boot-connections.service
    出力例を表示します。
    nvmefc-boot-connections.service - Auto-connect to subsystems on FC-NVME devices found during boot
         Loaded: loaded (/usr/lib/systemd/system/nvmefc-boot-connections.service; enabled; preset: enabled)
         Active: inactive (dead) since Tue 2025-06-10 01:08:36 EDT; 2h 59min ago
       Main PID: 7090 (code=exited, status=0/SUCCESS)
            CPU: 30ms
    
    Jun 10 01:08:36 localhost systemd[1]: Starting Auto-connect to subsystems on FC-NVME devices found during boot...
    Jun 10 01:08:36 localhost systemd[1]: nvmefc-boot-connections.service: Deactivated successfully.
    Jun 10 01:08:36 localhost systemd[1]: Finished Auto-connect to subsystems on FC-NVME devices found during boot.

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

カーネル内の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/nvme5n1
    例を示します
    nvme-subsys5 - NQN=nqn.1992-08.com.netapp:sn.f7565b15a66911ef9668d039ea951c46:subsystem.nvme1
                   hostnqn=nqn.2014-08.org.nvmexpress:uuid:4c4c4544-0056-5410-8048-c7c04f425633
    \
     +- nvme126 fc traddr=nn-0x2036d039ea951c45:pn-0x2038d039ea951c45,host_traddr=nn-0x2000f4c7aa0cd7c3:pn-0x2100f4c7aa0cd7c3 live optimized
     +- nvme176 fc traddr=nn-0x2036d039ea951c45:pn-0x2037d039ea951c45,host_traddr=nn-0x2000f4c7aa0cd7c2:pn-0x2100f4c7aa0cd7c2 live optimized
     +- nvme5 fc traddr=nn-0x2036d039ea951c45:pn-0x2039d039ea951c45,host_traddr=nn-0x2000f4c7aa0cd7c2:pn-0x2100f4c7aa0cd7c2 live non-optimized
     +- nvme71 fc traddr=nn-0x2036d039ea951c45:pn-0x203ad039ea951c45,host_traddr=nn-0x2000f4c7aa0cd7c3:pn-0x2100f4c7aa0cd7c3 live non-optimized
    NVMe/FC
    nvme list-subsys /dev/nvme4n2
    例を示します
    nvme-subsys4 - NQN=nqn.1992-08.com.netapp:sn.64e65e6caae711ef9668d039ea951c46:subsystem.nvme4
                   hostnqn=nqn.2014-08.org.nvmexpress:uuid:4c4c4544-0035-5910-804b-c2c04f444d33
    \
    +- nvme102 tcp traddr=192.168.21.20,trsvcid=4420,host_traddr=192.168.21.1,src_addr=192.168.21.1 live non-optimized
    +- nvme151 tcp traddr=192.168.21.21,trsvcid=4420,host_traddr=192.168.21.1,src_addr=192.168.21.1 live optimized
    +- nvme4 tcp traddr=192.168.20.20,trsvcid=4420,host_traddr=192.168.20.1,src_addr=192.168.20.1 live non-optimized
    +- nvme53 tcp traddr=192.168.20.21,trsvcid=4420,host_traddr=192.168.20.1,src_addr=192.168.20.1 live optimized
  5. ネットアッププラグインで、ONTAP ネームスペースデバイスごとに正しい値が表示されていることを確認します。

    列( Column )
    nvme netapp ontapdevices -o column
    例を示します
    Device        Vserver   Namespace Path
    ----------------------- ------------------------------
    /dev/nvme10n1     vs_tcp_rhel10       /vol/vol10/ns10
    
    NSID       UUID                                   Size
    ----------------------- ------------------------------
    1    bbf51146-fc64-4197-b8cf-8a24f6f359b3   21.47GB
    JSON
    nvme netapp ontapdevices -o json
    例を示します
    {
      "ONTAPdevices":[
        {
          "Device":"/dev/nvme10n1",
          "Vserver":"vs_tcp_rhel10",
          "Namespace_Path":"/vol/vol10/ns10",
          "NSID":1,
          "UUID":"bbf51146-fc64-4197-b8cf-8a24f6f359b3",
          "Size":"21.47GB",
          "LBA_Data_Size":4096,
          "Namespace_Size":5242880
    }
    ]
        }

ステップ7: 安全なインバンド認証を設定する

ONTAP 9.12.1 以降では、RHEL 10.0 ホストとONTAPコントローラ間の NVMe/TCP 経由の安全なインバンド認証がサポートされます。

各ホストまたはコントローラは、 `DH-HMAC-CHAP`安全な認証を設定するためのキー。 `DH-HMAC-CHAP`キーは、NVMe ホストまたはコントローラの NQN と管理者によって設定された認証シークレットの組み合わせです。ピアを認証するには、NVMeホストまたはコントローラがピアに関連付けられたキーを認識する必要があります。

CLI または設定 JSON ファイルを使用して、安全なインバンド認証を設定します。サブシステムごとに異なるDHCHAPキーを指定する必要がある場合は、config JSONファイルを使用する必要があります。

CLI の使用

CLIを使用してセキュアなインバンド認証を設定します。

手順
  1. ホストNQNを取得します。

    cat /etc/nvme/hostnqn
  2. RHEL 10.0 ホストの dhchap キーを生成します。

    次の出力は、 `gen-dhchap-key`コマンドパラメータ:

    nvme gen-dhchap-key -s optional_secret -l key_length {32|48|64} -m HMAC_function {0|1|2|3} -n host_nqn
    •	-s secret key in hexadecimal characters to be used to initialize the host key
    •	-l length of the resulting key in bytes
    •	-m HMAC function to use for key transformation
    0 = none, 1- SHA-256, 2 = SHA-384, 3=SHA-512
    •	-n host NQN to use for key transformation

    次の例では、HMACが3に設定されたランダムDHCHAPキー(SHA-512)が生成されます。

    nvme gen-dhchap-key -m 3 -n nqn.2014-08.org.nvmexpress:uuid:4c4c4544-0035-5910-804b-c2c04f444d33
    DHHC-1:03:7zf8I9gaRcDWH3tCH5vLGaoyjzPIvwNWusBfKdpJa+hia1aKDKJQ2o53pX3wYM9xdv5DtKNNhJInZ7X8wU2RQpQIngc=:
  3. ONTAPコントローラで、ホストを追加し、両方のDHCHAPキーを指定します。

    vserver nvme subsystem host add -vserver <svm_name> -subsystem <subsystem> -host-nqn <host_nqn> -dhchap-host-secret <authentication_host_secret> -dhchap-controller-secret <authentication_controller_secret> -dhchap-hash-function {sha-256|sha-512} -dhchap-group {none|2048-bit|3072-bit|4096-bit|6144-bit|8192-bit}
  4. ホストは、単方向と双方向の2種類の認証方式をサポートします。ホストで、ONTAPコントローラに接続し、選択した認証方式に基づいてDHCHAPキーを指定します。

    nvme connect -t tcp -w <host-traddr> -a <tr-addr> -n <host_nqn> -S <authentication_host_secret> -C <authentication_controller_secret>
  5. 検証する nvme connect authentication ホストとコントローラのDHCHAPキーを確認してコマンドを実行します。

    1. ホストDHCHAPキーを確認します。

      cat /sys/class/nvme-subsystem/<nvme-subsysX>/nvme*/dhchap_secret
      に、単方向設定の出力例を示します。
      cat /sys/class/nvme-subsystem/nvme-subsys1/nvme*/dhchap_secret
      DHHC- 1:03:fMCrJharXUOqRoIsOEaG6m2PH1yYvu5+z3jTmzEKUbcWu26I33b93b
      il2WR09XDho/ld3L45J+0FeCsStBEAfhYgkQU=:
      DHHC- 1:03:fMCrJharXUOqRoIsOEaG6m2PH1yYvu5+z3jTmzEKUbcWu26I33b93b
      il2WR09XDho/ld3L45J+0FeCsStBEAfhYgkQU=:
      DHHC- 1:03:fMCrJharXUOqRoIsOEaG6m2PH1yYvu5+z3jTmzEKUbcWu26I33b93b
      il2WR09XDho/ld3L45J+0FeCsStBEAfhYgkQU=:
      DHHC- 1:03:fMCrJharXUOqRoIsOEaG6m2PH1yYvu5+z3jTmzEKUbcWu26I33b93b
      il2WR09XDho/ld3L45J+0FeCsStBEAfhYgkQU=:
    2. コントローラのDHCHAPキーを確認します。

      cat /sys/class/nvme-subsystem/<nvme-subsysX>/nvme*/dhchap_ctrl_secret
      に、双方向設定の出力例を示します。
      cat /sys/class/nvme-subsystem/nvme-subsys6/nvme*/dhchap_ctrl_secret
      DHHC- 1:03:7zf8I9gaRcDWH3tCH5vLGaoyjzPIvwNWusBfKdpJa+hia
      1aKDKJQ2o53pX3wYM9xdv5DtKNNhJInZ7X8wU2RQpQIngc=:
      
      DHHC- 1:03:7zf8I9gaRcDWH3tCH5vLGaoyjzPIvwNWusBfKdpJa+hia
      1aKDKJQ2o53pX3wYM9xdv5DtKNNhJInZ7X8wU2RQpQIngc=:
      
      DHHC- 1:03:7zf8I9gaRcDWH3tCH5vLGaoyjzPIvwNWusBfKdpJa+hia
      1aKDKJQ2o53pX3wYM9xdv5DtKNNhJInZ7X8wU2RQpQIngc=:
      
      DHHC- 1:03:7zf8I9gaRcDWH3tCH5vLGaoyjzPIvwNWusBfKdpJa+hia
      1aKDKJQ2o53pX3wYM9xdv5DtKNNhJInZ7X8wU2RQpQIngc=:
JSON

ONTAPコントローラ上で複数のNVMeサブシステムが利用可能な場合は、 `/etc/nvme/config.json`ファイルに `nvme connect-all`指示。

使用 `-o`JSON ファイルを生成するオプション。詳細な構文オプションについては、NVMe connect-all のマニュアル ページを参照してください。

手順
  1. JSON ファイルを設定します。

    メモ 次の例では、 dhchap_key`対応する `dhchap_secret`そして `dhchap_ctrl_key`対応する `dhchap_ctrl_secret
    例を示します
    cat /etc/nvme/config.json
    [
    {
    "hostnqn":"nqn.2014-08.org.nvmexpress:uuid:4c4c4544-0035-5910-804b-c2c04f444d33",
    "hostid":"4c4c4544-0035-5910-804b-c2c04f444d33",
    "dhchap_key":"DHHC-1:03:7zf8I9gaRcDWH3tCH5vLGaoyjzPIvwNWusBfKdpJa+hia1aKDKJQ2o53pX3wYM9xdv5DtKNNhJInZ7X8wU2RQpQIngc=:",
    "subsystems":[
    {
    "nqn":"nqn.1992-08.com.netapp:sn.127ade26168811f0a50ed039eab69ad3:subsystem.inband_unidirectional",
    "ports":[
    {
    "transport":"tcp",
    "traddr":"192.168.20.17",
    "host_traddr":"192.168.20.1",
    "trsvcid":"4420"
    },
    {
    "transport":"tcp",
    "traddr":"192.168.20.18",
    "host_traddr":"192.168.20.1",
    "trsvcid":"4420"
    },
    {
    "transport":"tcp",
    "traddr":"192.168.21.18",
    "host_traddr":"192.168.21.1",
    "trsvcid":"4420"
    },
    {
    "transport":"tcp",
    "traddr":"192.168.21.17",
    "host_traddr":"192.168.21.1",
    "trsvcid":"4420"
    }]
  2. config jsonファイルを使用してONTAPコントローラに接続します。

    nvme connect-all -J /etc/nvme/config.json
    例を示します
    traddr=192.168.20.20 is already connected
    traddr=192.168.20.20 is already connected
    traddr=192.168.20.20 is already connected
    traddr=192.168.20.20 is already connected
    traddr=192.168.20.20 is already connected
    traddr=192.168.20.20 is already connected
    traddr=192.168.20.20 is already connected
    traddr=192.168.20.20 is already connected
    traddr=192.168.20.21 is already connected
    traddr=192.168.20.21 is already connected
    traddr=192.168.20.21 is already connected
    traddr=192.168.20.21 is already connected
    traddr=192.168.20.21 is already connected
    traddr=192.168.20.21 is already connected
    traddr=192.168.20.21 is already connected
    traddr=192.168.20.21 is already connected
  3. 各サブシステムのそれぞれのコントローラに対して dhchap シークレットが有効になっていることを確認します。

    1. ホストDHCHAPキーを確認します。

      cat /sys/class/nvme-subsystem/nvme-subsys0/nvme0/dhchap_secret

      次の例は、dhchap キーを示しています。

      DHHC-1:03:7zf8I9gaRcDWH3tCH5vLGaoyjzPIvwNWusBfKdpJa+hia1
      aKDKJQ2o53pX3wYM9xdv5DtKNNhJInZ7X8wU2RQpQIngc=:
    2. コントローラのDHCHAPキーを確認します。

      cat /sys/class/nvme-subsystem/nvme-subsys0/nvme0/dhchap_ctrl_secret

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

    DHHC-1:03:fMCrJharXUOqRoIsOEaG6m2PH1yYvu5+z3jT
    mzEKUbcWu26I33b93bil2WR09XDho/ld3L45J+0FeCsStBEAfhYgkQU=:

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

既知の問題はありません。