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

ONTAPストレージ用にNVMe-oFを使用してOracle Linux 9.5を構成する

共同作成者 netapp-pcarriga

NetApp SANホスト構成では、非対称ネームスペースアクセス(ANA)でNVMe over Fabrics(NVMe-oF)プロトコルがサポートされます。NVMe-oF環境のANAは、iSCSI環境およびFCP環境におけるAsymmetric Logical Unit Access(ALUA;非対称論理ユニットアクセス)マルチパスに相当します。ANAはカーネル内NVMeマルチパス機能を使用して実装されます。

このタスクについて

ONTAPストレージを使用するOracle Linux 9.5向けのNVMe-oFホスト構成では、次のサポートと機能を使用できます。

  • 利用可能なサポート:

    • NVMe over Fibre Channel(NVMe/FC)に加えて、NVMe over TCP(NVMe/TCP)もサポートされます。標準のNVMe-CLIパッケージに含まれるNetAppプラグインには、NVMe/FCとNVMe/TCP両方のネームスペースのONTAPの詳細が表示されます。

    • 同じホストでNVMeトラフィックとSCSIトラフィックの両方を実行している。たとえば、SCSI LUN の SCSI mpath デバイス上で dm-multipath を設定し、NVMe multipath を使用してホスト上で NVMe-oF 名前空間デバイスを設定できます。

    • Oracle Linux 9.5 では、NVMe 名前空間のカーネル内 NVMe マルチパスがデフォルトで有効になり、明示的な設定が不要になります。

    • ONTAP 9.12.1以降、NVMe/TCP向けのセキュアなインバンド認証のサポートが導入されました。RHELOracle Linux 9.5 では、NVMe/TCP の安全なインバンド認証を使用できます。

    メモ ネットアップ `sanlun`ホストユーティリティはNVMe-oFをサポートしていません。代わりに、ネイティブのNetAppプラグインを使用できます。 `nvme-cli`すべての NVMe-oF トランスポート用。

    サポートされる構成の詳細については、を参照してください"Interoperability Matrix Tool"

  • 利用可能な機能:

    • このリリースの新機能はありません。

  • 既知の制限事項:

    • 発行を避ける nvme disconnect-all NVMe-TCP または NVMe-FC 名前空間を介して SAN から起動するシステムでは、このコマンドはルートファイルシステムとデータファイルシステムの両方を切断し、システムが不安定になる可能性があるため、使用しないでください。

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

SANブートを使用するようにホストを設定することで、導入を簡易化し、拡張性を向上させることができます。

開始する前に

を使用"Interoperability Matrix Tool"して、Linux OS、ホストバスアダプタ(HBA)、HBAファームウェア、HBAブートBIOS、およびONTAPバージョンがSANブートをサポートしていることを確認します。

手順
  1. "SANブート名前空間を作成し、それをホストにマップする"です。

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

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

  3. 構成が正常に完了したことを確認するために、ホストをリブートし、OSが稼働していることを確認します。

ステップ2: ソフトウェアのバージョンを検証する

サポートされている Oracle Linux 9.5 ソフトウェアの最小バージョンを検証するには、次の手順に従います。

手順
  1. Oracle Linux 9.5 をサーバーにインストールします。インストールが完了したら、指定された Oracle Linux 9.5 カーネルが実行されていることを確認します。

    uname -r

    次の例は、Oracle Linux カーネルのバージョンを示しています。

    5.15.0-302.167.6.el9uek.x86_64
  2. 「 nvme-cli 」パッケージをインストールします。

    rpm -qa|grep nvme-cli

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

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

    rpm -qa|grep libnvme

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

    libnvme-1.9-3.el9.x86_64
  4. Oracle Linux 9.5ホストで、 hostnqn `/etc/nvme/hostnqn`次の場所の文字列を確認します。

    cat /etc/nvme/hostnqn

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

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

    vserver nvme subsystem host show -vserver vs_213_36002
    例を示します
    Vserver Subsystem Priority  Host NQN
    ------- --------- --------  ------------------------------------------------
    vs_coexistence_LPE36002
            nvme1
                      regular   nqn.2014-08.org.nvmexpress:uuid:4c4c4544-0050-3410-8035-c2c04f4a5933
            nvme2
                      regular   nqn.2014-08.org.nvmexpress:uuid:4c4c4544-0050-3410-8035-c2c04f4a5933
            nvme3
                      regular   nqn.2014-08.org.nvmexpress:uuid:4c4c4544-0050-3410-8035-c2c04f4a5933
            nvme4
                      regular   nqn.2014-08.org.nvmexpress:uuid:4c4c4544-0050-3410-8035-c2c04f4a5933
    4 entries were displayed.
    メモ 文字列が一致しない場合 hostnqn`は、コマンドを使用して、対応するONTAPアレイサブシステムの文字列を更新し、 `hostnqn`ホストののの文字列 `/etc/nvme/hostnqn`と一致させる `hostnqn`ことができます `vserver modify

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

Broadcom/Emulex FC または Marvell/Qlogic FC アダプタを使用して NVMe/FC を構成します。

Broadcom / Emulex

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.4.393.25, sli-4:6:d
      14.4.393.25, sli-4:6:d
    2. 受信トレイのドライバーのバージョンを表示します。

      cat /sys/module/lpfc/version

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

    0:14.4.0.2

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

    次の例はポート ID を示しています。

    0x100000620b3c089c
    0x100000620b3c089d
  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 x100000620b3c089c WWNN x200000620b3c089c DID x081300 ONLINE
    NVME RPORT       WWPN x2001d039eab0dadc WWNN x2000d039eab0dadc DID x080101 TARGET DISCSRVC ONLINE
    NVME RPORT       WWPN x2003d039eab0dadc WWNN x2000d039eab0dadc DID x080401 TARGET DISCSRVC ONLINE
    
    NVME Statistics
    LS: Xmt 00000002e9 Cmpl 00000002e9 Abort 00000000
    LS XMIT: Err 00000000  CMPL: xb 00000000 Err 00000000
    Total FCP Cmpl 0000000000078742 Issue 0000000000078740 OutIO fffffffffffffffe
            abort 000000c2 noxri 00000000 nondlp 00000a23 qdepth 00000000 wqerr 00000000 err 00000000
    FCP CMPL: xb 000000c2 Err 00000238
    
    NVME Initiator Enabled
    XRI Dist lpfc1 Total 6144 IO 5894 ELS 250
    NVME LPORT lpfc1 WWPN x100000620b3c089d WWNN x200000620b3c089d DID x081900 ONLINE
    NVME RPORT       WWPN x2002d039eab0dadc WWNN x2000d039eab0dadc DID x080201 TARGET DISCSRVC ONLINE
    NVME RPORT       WWPN x2004d039eab0dadc WWNN x2000d039eab0dadc DID x080301 TARGET DISCSRVC ONLINE
    
    NVME Statistics
    LS: Xmt 00000002d9 Cmpl 00000002d9 Abort 00000000
    LS XMIT: Err 00000000  CMPL: xb 00000000 Err 00000000
    Total FCP Cmpl 000000000007754f Issue 000000000007754f OutIO 0000000000000000
            abort 000000c2 noxri 00000000 nondlp 00000719 qdepth 00000000 wqerr 00000000 err 00000000
    FCP CMPL: xb 000000c2 Err 0000023d
Marvell/QLogic

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

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

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

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

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

    cat /sys/module/qla2xxx/parameters/ql2xnvmeenable

    価値 `1`検証する `ql2xnvmeenable`が設定されています。

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

ONTAPは、Identify ControllerデータでMDT(MAX Data転送サイズ)が8であると報告します。つまり、最大I/O要求サイズは1MBです。Broadcom NVMe/FCホストにサイズ1MBのI/O要求を実行するには、パラメータの値を lpfc_sg_seg_cnt`デフォルト値の64から256に増やす必要があります `lpfc

メモ この手順は、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ブートサービスを確認する

Oracle Linux 9.5では、 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) since Wed 2025-07-02 16:46:37 IST; 1 day 3h ago
    Main PID: 2129 (code=exited, status=0/SUCCESS)
    CPU: 121ms
    
    Jul 02 16:46:37 interop-13-175 nvme[2129]: Failed to write to /dev/nvme-fabrics: Invalid argument
    Jul 02 16:46:37 interop-13-175 nvme[2129]: Failed to write to /dev/nvme-fabrics: Invalid argument
    Jul 02 16:46:37 interop-13-175 nvme[2129]: Failed to write to /dev/nvme-fabrics: Invalid argument
    Jul 02 16:46:37 interop-13-175 nvme[2129]: Failed to write to /dev/nvme-fabrics: Invalid argument
    Jul 02 16:46:37 interop-13-175 nvme[2129]: Failed to write to /dev/nvme-fabrics: Invalid argument
    Jul 02 16:46:37 interop-13-175 nvme[2129]: Failed to write to /dev/nvme-fabrics: Invalid argument
    Jul 02 16:46:37 interop-13-175 nvme[2129]: Failed to open ctrl nvme0, errno 2
    Jul 02 16:46:37 interop-13-175 nvme[2129]: failed to get discovery log: Bad file descriptor
    Jul 02 16:46:37 interop-13-175 systemd[1]: nvmf-autoconnect.service: Deactivated successfully.
    Jul 02 16:46:37 interop-13-175 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 Wed 2025-07-02 16:45:46 IST; 1 day 3h ago
    Main PID: 1604 (code=exited, status=0/SUCCESS)
    CPU: 32ms
    
    Jul 02 16:45:46 interop-13-175 systemd[1]: Starting Auto-connect to subsystems on FC-NVME devices found during boot...
    Jul 02 16:45:46 interop-13-175 systemd[1]: nvmefc-boot-connections.service: Deactivated successfully.
    Jul 02 16:45:46 interop-13-175 systemd[1]: Finished Auto-connect to subsystems on FC-NVME devices found during boot.

ステップ6: NVMe/TCPを構成する

NVMe/TCPプロトコルでこの処理がサポートされてい auto-connect`ません。代わりに、NVMe/TCPまたは `connect-all`の処理を手動で実行することで、NVMe/TCPサブシステムとネームスペースを検出できます `connect

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

    nvme discover -t tcp -w host-traddr -a traddr
    例を示します
    nvme discover -t tcp -w 192.168.165.3 -a 192.168.165.8
    Discovery Log Number of Records 8, Generation counter 8
    =====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.4f7af2bd221811f0afadd039eab0dadd:discovery
    traddr:  192.168.166.9
    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.4f7af2bd221811f0afadd039eab0dadd:discovery
    traddr:  192.168.165.9
    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.4f7af2bd221811f0afadd039eab0dadd:discovery
    traddr:  192.168.166.8
    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.4f7af2bd221811f0afadd039eab0dadd:discovery
    traddr:  192.168.165.8
    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.4f7af2bd221811f0afadd039eab0dadd:subsystem.nvme
    traddr:  192.168.166.9
    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.4f7af2bd221811f0afadd039eab0dadd:subsystem.nvme
    traddr:  192.168.165.9
    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.4f7af2bd221811f0afadd039eab0dadd:subsystem.nvme
    traddr:  192.168.166.8
    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.4f7af2bd221811f0afadd039eab0dadd:subsystem.nvme
    traddr:  192.168.165.8
    eflags:  none
    sectype: none
  2. NVMe/TCPイニシエータとターゲットLIFの他の組み合わせで、検出ログページのデータを正常に取得できることを確認します。

    nvme discover -t tcp -w host-traddr -a traddr

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

    nvme discover -t tcp -w 192.168.166.4 -a 192.168.166.8
    nvme discover -t tcp -w 192.168.165.3 -a 192.168.165.8
    nvme discover -t tcp -w 192.168.166.4 -a 192.168.166.9
    nvme discover -t tcp -w 192.168.165.3 -a 192.168.165.9
  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.165.3 -a 192.168.165.8
    nvme connect-all -t	tcp -w 192.168.165.3 -a 192.168.165.9
    nvme connect-all -t	tcp -w 192.168.166.4 -a 192.168.166.8
    nvme connect-all -t	tcp -w 192.168.166.4 -a 192.168.166.9
    メモ

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

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

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

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

ステップ7: NVMe-oFを検証する

カーネル内の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          Generic       SN                   Model                     Namespace  Usage                   Format         FW Rev
    ------------- ------------- -------------------- ------------------------- ---------- ----------------------- -------------- --------
    /dev/nvme1n1  /dev/ng1n1    81Mc4FXd1tocAAAAAAAC NetApp ONTAP Controller   0x1        0.00   B /  10.74  GB   4 KiB +  0 B   9.16.1
  4. 各パスのコントローラの状態がliveであり、正しいANAステータスが設定されていることを確認します。

    NVMe/FC
    nvme list-subsys /dev/nvme4n5
    例を示します
    nvme-subsys7 - NQN=nqn.1992-08.com.netapp:sn.7d37987be3cb11ef8948d039eab0dadd:subsystem.nvme6
                   hostnqn=nqn.2014-08.org.nvmexpress:uuid:2831093d-fa7f-4714-a6bf-548796e82053
                   iopolicy=round-robin
    \
     +- nvme103 fc traddr=nn-0x202cd039eab0dadc:pn-0x202fd039eab0dadc,host_traddr=nn-0x200034800d767bb0:pn-0x210034800d767bb0 live optimized
     +- nvme153 fc traddr=nn-0x202cd039eab0dadc:pn-0x202ed039eab0dadc,host_traddr=nn-0x200034800d767bb1:pn-0x210034800d767bb1 live non-optimized
     +- nvme55 fc traddr=nn-0x202cd039eab0dadc:pn-0x202dd039eab0dadc,host_traddr=nn-0x200034800d767bb0:pn-0x210034800d767bb0 live non-optimized
     +- nvme7 fc traddr=nn-0x202cd039eab0dadc:pn-0x2030d039eab0dadc,host_traddr=nn-0x200034800d767bb1:pn-0x210034800d767bb1 live optimized
    NVMe/FC
    nvme list-subsys /dev/nvme1n1
    例を示します
    nvme-subsys1 - NQN=nqn.1992-08.com.netapp:sn.4f7af2bd221811f0afadd039eab0dadd:subsystem.nvme
                   hostnqn=nqn.2014-08.org.nvmexpress:uuid:9796c1ec-0d34-11eb-b6b2-3a68dd3bab57
                   iopolicy=round-robin\
    +- nvme1 tcp traddr=192.168.165.8,trsvcid=4420,host_traddr=192.168.165.3,
    src_addr=192.168.165.3 live optimized
    +- nvme2 tcp traddr=192.168.165.9,trsvcid=4420,host_traddr=192.168.165.3,
    src_addr=192.168.165.3 live non-optimized
    +- nvme3 tcp traddr=192.168.166.8,trsvcid=4420,host_traddr=192.168.166.4,
    src_addr=192.168.166.4 live optimized
    +- nvme4 tcp traddr=192.168.166.9,trsvcid=4420,host_traddr=192.168.166.4,
    src_addr=192.168.166.4 live non-optimized
  5. ネットアッププラグインで、ONTAP ネームスペースデバイスごとに正しい値が表示されていることを確認します。

    列( Column )
    nvme netapp ontapdevices -o column
    例を示します
    Device           Vserver                   Namespace Path                                     NSID UUID                                   Size
    ---------------- ------------------------- -------------------------------------------------- ---- -------------------------------------- ---------
    /dev/nvme1n1     vs_tcpinband              /vol/volpdc/ns1                                    1    80eec226-6987-4eb4-bf86-65bf48c5372d   10.74GB
    JSON
    nvme netapp ontapdevices -o json
    例を示します
    {
      "ONTAPdevices":[
        {
          "Device":"/dev/nvme1n1",
          "Vserver":"vs_tcpinband",
          "Namespace_Path":"/vol/volpdc/ns1",
          "NSID":1,
          "UUID":"80eec226-6987-4eb4-bf86-65bf48c5372d",
          "Size":"10.74GB",
          "LBA_Data_Size":4096,
          "Namespace_Size":2621440
        }
      ]
    }

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

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

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

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

CLI の使用

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

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

    cat /etc/nvme/hostnqn
  2. Linux ホストの 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:9796c1ec-0d34-11eb-b6b2-3a68dd3bab57
    DHHC-1:03:Y5VkkESgmtTGNdX842qemNpFK6BXYVwwnqErgt3IQKP5Fbjje\/JSBOjG5Ea3NBLRfuiAuUSDUto6eY\/GwKoRp6AwGkw=:
  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:Y5VkkESgmtTGNdX842qemNpFK6BXYVwwnqErgt3IQKP5Fbjje\/JSBOjG5Ea3NBLRfuiAuUSDUto6eY\/GwKoRp6AwGkw=:
      DHHC-1:03:Y5VkkESgmtTGNdX842qemNpFK6BXYVwwnqErgt3IQKP5Fbjje\/JSBOjG5Ea3NBLRfuiAuUSDUto6eY\/GwKoRp6AwGkw=:
      DHHC-1:03:Y5VkkESgmtTGNdX842qemNpFK6BXYVwwnqErgt3IQKP5Fbjje\/JSBOjG5Ea3NBLRfuiAuUSDUto6eY\/GwKoRp6AwGkw=:
        DHHC-  1:03:Y5VkkESgmtTGNdX842qemNpFK6BXYVwwnqErgt3IQKP5Fbjje\/JSBOjG5Ea3NBLRfuiAuUSDUto6eY\/GwKoRp6AwGkw=:
    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:frpLlTrnOYtcWDxPzq4ccxU1UrH2FjV7hYw5s2XEDB+lo+TjMsOwHR\/NFtM0nBBidx+gdoyUcC5s6hOOtTLDGcz0Kbs=:
      DHHC-1:03:frpLlTrnOYtcWDxPzq4ccxU1UrH2FjV7hYw5s2XEDB+lo+TjMsOwHR\/NFtM0nBBidx+gdoyUcC5s6hOOtTLDGcz0Kbs=:
      DHHC-1:03:frpLlTrnOYtcWDxPzq4ccxU1UrH2FjV7hYw5s2XEDB+lo+TjMsOwHR\/NFtM0nBBidx+gdoyUcC5s6hOOtTLDGcz0Kbs=:
      DHHC-1:03:frpLlTrnOYtcWDxPzq4ccxU1UrH2FjV7hYw5s2XEDB+lo+TjMsOwHR\/NFtM0nBBidx+gdoyUcC5s6hOOtTLDGcz0Kbs=:
JSON ファイル

ONTAPコントローラ構成で複数のNVMeサブシステムを使用できる場合は、コマンドでファイルを nvme connect-all`使用できます `/etc/nvme/config.json

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

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

    例を示します
     cat /etc/nvme/config.json
    [
      {
        "hostnqn":"nqn.2014-08.org.nvmexpress:uuid:9796c1ec-0d34-11eb-b6b2-3a68dd3bab57",
        "hostid":"9796c1ec-0d34-11eb-b6b2-3a68dd3bab57",
        "dhchap_key":"DHHC-1:03:Y5VkkESgmtTGNdX842qemNpFK6BXYVwwnqErgt3IQKP5Fbjje\/JSBOjG5Ea3NBLRfuiAuUSDUto6eY\/GwKoRp6AwGkw=:",
        "subsystems":[
          {
            "nqn":"nqn.1992-08.com.netapp:sn.4f7af2bd221811f0afadd039eab0dadd:subsystem.nvme",
            "ports":[
              {
                "transport":"tcp",
                "traddr":"192.168.165.9",
                "host_traddr":"192.168.165.3",
                "trsvcid":"4420",
                "dhchap_key":"DHHC-1:03:Y5VkkESgmtTGNdX842qemNpFK6BXYVwwnqErgt3IQKP5Fbjje\/JSBOjG5Ea3NBLRfuiAuUSDUto6eY\/GwKoRp6AwGkw=:",
                "dhchap_ctrl_key":"DHHC-1:03:frpLlTrnOYtcWDxPzq4ccxU1UrH2FjV7hYw5s2XEDB+lo+TjMsOwHR\/NFtM0nBBidx+gdoyUcC5s6hOOtTLDGcz0Kbs=:"          },
              {
                "transport":"tcp",
                "traddr":"192.168.166.9",
                "host_traddr":"192.168.166.4",
                "trsvcid":"4420",
                            "dhchap_key":"DHHC-1:03:Y5VkkESgmtTGNdX842qemNpFK6BXYVwwnqErgt3IQKP5Fbjje\/JSBOjG5Ea3NBLRfuiAuUSDUto6eY\/GwKoRp6AwGkw=:",
                "dhchap_ctrl_key":"DHHC-1:03:frpLlTrnOYtcWDxPzq4ccxU1UrH2FjV7hYw5s2XEDB+lo+TjMsOwHR\/NFtM0nBBidx+gdoyUcC5s6hOOtTLDGcz0Kbs=:"
              },
              {
                "transport":"tcp",
                "traddr":"192.168.166.8",
                "host_traddr":"192.168.166.4",
                "trsvcid":"4420",
                            "dhchap_key":"DHHC-1:03:Y5VkkESgmtTGNdX842qemNpFK6BXYVwwnqErgt3IQKP5Fbjje\/JSBOjG5Ea3NBLRfuiAuUSDUto6eY\/GwKoRp6AwGkw=:",
                "dhchap_ctrl_key":"DHHC-1:03:frpLlTrnOYtcWDxPzq4ccxU1UrH2FjV7hYw5s2XEDB+lo+TjMsOwHR\/NFtM0nBBidx+gdoyUcC5s6hOOtTLDGcz0Kbs=:"
              },
              {
                "transport":"tcp",
                "traddr":"192.168.165.8",
                "host_traddr":"192.168.165.3",
                "trsvcid":"4420",
                            "dhchap_key":"DHHC-1:03:Y5VkkESgmtTGNdX842qemNpFK6BXYVwwnqErgt3IQKP5Fbjje\/JSBOjG5Ea3NBLRfuiAuUSDUto6eY\/GwKoRp6AwGkw=:",
                "dhchap_ctrl_key":"DHHC-1:03:frpLlTrnOYtcWDxPzq4ccxU1UrH2FjV7hYw5s2XEDB+lo+TjMsOwHR\/NFtM0nBBidx+gdoyUcC5s6hOOtTLDGcz0Kbs=:"
              }
            ]
          }
        ]
      }
    ]
    メモ 上記の例では、はに対応し、は dhchap_key`に対応 `dhchap_secret`し `dhchap_ctrl_key `dhchap_ctrl_secret`ます。
  2. config jsonファイルを使用してONTAPコントローラに接続します。

    nvme connect-all -J /etc/nvme/config.json
  3. 各サブシステムの各コントローラでDHCHAPシークレットが有効になっていることを確認します。

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

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

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

      DHHC-1:03:Y5VkkESgmtTGNdX842qemNpFK6BXYVwwnqErgt3IQKP5Fbjje\/JSBOjG5Ea3NBLRfuiAuUSDUto6eY\/GwKoRp6AwGkw=:
    2. コントローラのDHCHAPキーを確認します。

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

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

    DHHC-1:03:frpLlTrnOYtcWDxPzq4ccxU1UrH2FjV7hYw5s2XEDB+lo+TjMsOwHR\/NFtM0nBBidx+gdoyUcC5s6hOOtTLDGcz0Kbs=:

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

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