第13章 NVMe over fabric デバイスの概要

Non-volatile Memory Express (NVMe) は、ホストソフトウェアユーティリティーがソリッドステートドライブと通信できるようにするインターフェースです。

次の種類のファブリックトランスポートを使用して、NVMe over fabric デバイスを設定します。

FC および RDMA を使用する場合は、ソリッドステートドライブをシステムにローカルにする必要はありません。また、FC または RDMA コントローラーを介してリモートで設定できます。

13.1. RDMA を使用した NVMe over fabrics

NVMe/RDMA 設定では、NVMe ターゲットおよび NVMe イニシエーターが設定されます。

システム管理者は、次のセクションのタスクを、RDMA (NVMe/RDMA) を使用して NVMe over fabrics をデプロイします。

13.1.1. configfs で NVMe/RDMA ターゲットの設定

この手順に従って、configfs を使用して NVMe/RDMA ターゲットを設定します。

前提条件

  • nvmet サブシステムに割り当てるブロックデバイスがあることを確認します。

手順

  1. nvmet-rdma サブシステムを作成します。

    # modprobe nvmet-rdma
    
    # mkdir /sys/kernel/config/nvmet/subsystems/testnqn
    
    # cd /sys/kernel/config/nvmet/subsystems/testnqn

    testnqn を、サブシステム名に置き換えます。

  2. ホストがこのターゲットに接続することを許可します。

    # echo 1 > attr_allow_any_host
  3. namespace を設定します。

    # mkdir namespaces/10
    
    # cd namespaces/10

    10 を、namespace の数値に置き換えます。

  4. NVMe デバイスへのパスを設定します。

    #echo -n /dev/nvme0n1 > device_path
  5. namespace を有効にします。

    # echo 1 > enable
  6. NVMe ポートでディレクトリーを作成します。

    # mkdir /sys/kernel/config/nvmet/ports/1
    
    # cd /sys/kernel/config/nvmet/ports/1
  7. mlx5_ib0 の IP アドレスを表示します。

    # ip addr show mlx5_ib0
    
    8: mlx5_ib0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 4092 qdisc mq state UP group default qlen 256
        link/infiniband 00:00:06:2f:fe:80:00:00:00:00:00:00:e4:1d:2d:03:00:e7:0f:f6 brd 00:ff:ff:ff:ff:12:40:1b:ff:ff:00:00:00:00:00:00:ff:ff:ff:ff
        inet 172.31.0.202/24 brd 172.31.0.255 scope global noprefixroute mlx5_ib0
           valid_lft forever preferred_lft forever
        inet6 fe80::e61d:2d03:e7:ff6/64 scope link noprefixroute
           valid_lft forever preferred_lft forever
  8. ターゲットのトランスポートアドレスを設定します。

    # echo -n 172.31.0.202 > addr_traddr
  9. RDMA をトランスポートタイプとして設定します。

    # echo rdma > addr_trtype
    
    # echo 4420 > addr_trsvcid
  10. ポートのアドレスファミリーを設定します。

    # echo ipv4 > addr_adrfam
  11. ソフトリンクを作成します。

    # ln -s /sys/kernel/config/nvmet/subsystems/testnqn   /sys/kernel/config/nvmet/ports/1/subsystems/testnqn

検証手順

  • NVMe ターゲットが指定のポートでリッスンし、接続リクエストの準備ができていることを確認します。

    # dmesg | grep "enabling port"
    [ 1091.413648] nvmet_rdma: enabling port 1 (172.31.0.202:4420)

関連情報

  • man ページの nvme

13.1.2. nvmetcli を使用した NVMe/RDMA ターゲットの設定

nvmetcli を使用して、NVMe ターゲットの編集、表示、および起動を行います。nvmetcli は、コマンドラインとインタラクティブなシェルオプションを提供します。この手順を使用して、nvmetcli により NVMe/RDMA ターゲットを設定します。

前提条件

  • nvmet サブシステムに割り当てるブロックデバイスがあることを確認します。
  • nvmetcli 操作を root ユーザーとして実行します。

手順

  1. nvmetcli パッケージをインストールします。

    # yum install nvmetcli
  2. rdma.json ファイルをダウンロードします。

    # wget http://git.infradead.org/users/hch/nvmetcli.git/blob_plain/0a6b088db2dc2e5de11e6f23f1e890e4b54fee64:/rdma.json
  3. rdma.json ファイルを編集して、traddr の値を 172.31.0.202 に変更します。
  4. NVMe ターゲット設定ファイルを読み込んでターゲットを設定します。

    # nvmetcli restore rdma.json
注記

NVMe ターゲット設定ファイル名を指定しない場合は、nvmetcli/etc/nvmet/config.json ファイルを使用します。

検証手順

  • NVMe ターゲットが指定のポートでリッスンし、接続リクエストの準備ができていることを確認します。

    #dmesg | tail -1
    [ 4797.132647] nvmet_rdma: enabling port 2 (172.31.0.202:4420)
  • (必要に応じて) 現在の NVMe ターゲットを削除します。

    # nvmetcli clear

関連情報

  • man ページの nvmetcli
  • man ページの nvme

13.1.3. NVMe/RDMA クライアントの設定

この手順を使用して、NVMe 管理コマンドラインインターフェース (nvme-cli) ツールを使用して NVMe/RDMA クライアントを設定します。

手順

  1. nvme-cli ツールをインストールします。

    # yum install nvme-cli
  2. nvme-rdma モジュールが読み込まれていない場合は読み込みます。

    # modprobe nvme-rdma
  3. NVMe ターゲットで利用可能なサブシステムを検出します。

    # nvme discover -t rdma -a 172.31.0.202 -s 4420
    
    Discovery Log Number of Records 1, Generation counter 2
    =====Discovery Log Entry 0======
    trtype:  rdma
    adrfam:  ipv4
    subtype: nvme subsystem
    treq:    not specified, sq flow control disable supported
    portid:  1
    trsvcid: 4420
    subnqn:  testnqn
    traddr:  172.31.0.202
    rdma_prtype: not specified
    rdma_qptype: connected
    rdma_cms:    rdma-cm
    rdma_pkey: 0x0000
  4. 検出されたサブシステムに接続します。

    # nvme connect -t rdma -n testnqn -a 172.31.0.202 -s 4420
    
    # lsblk
    NAME                         MAJ:MIN RM   SIZE RO TYPE MOUNTPOINT
    sda                            8:0    0 465.8G  0 disk
    ├─sda1                         8:1    0     1G  0 part /boot
    └─sda2                         8:2    0 464.8G  0 part
      ├─rhel_rdma--virt--03-root 253:0    0    50G  0 lvm  /
      ├─rhel_rdma--virt--03-swap 253:1    0     4G  0 lvm  [SWAP]
      └─rhel_rdma--virt--03-home 253:2    0 410.8G  0 lvm  /home
    nvme0n1
    
    #cat /sys/class/nvme/nvme0/transport
    rdma

    testnqn を、NVMe サブシステム名に置き換えます。

    172.31.0.202 を、ターゲットの IP アドレスに置き換えます。

    4420 を、ポート番号に置き換えます。

検証手順

  • 現在接続されている NVMe デバイスの一覧を表示します。

    # nvme list
  • (必要に応じて) ターゲットから切断します。

    # nvme disconnect -n testnqn
    NQN:testnqn disconnected 1 controller(s)
    
    # lsblk
    NAME                         MAJ:MIN RM   SIZE RO TYPE MOUNTPOINT
    sda                            8:0    0 465.8G  0 disk
    ├─sda1                         8:1    0     1G  0 part /boot
    └─sda2                         8:2    0 464.8G  0 part
      ├─rhel_rdma--virt--03-root 253:0    0    50G  0 lvm  /
      ├─rhel_rdma--virt--03-swap 253:1    0     4G  0 lvm  [SWAP]
      └─rhel_rdma--virt--03-home 253:2    0 410.8G  0 lvm  /home

関連情報

13.2. FC を使用した NVMe over fabrics

NVMe over Fibre Channel (FC-NVMe) は、特定の Broadcom Emulex アダプターおよび Marvell Qlogic Fibre Channel アダプターとともに使用すると、イニシエーターモードで完全にサポートされてるようになります。システム管理者は、FC-NVMe をデプロイするために、以下のセクションのタスクを完了します。

13.2.1. Broadcom アダプターの NVMe イニシエーターの設定

この手順を使用して、NVMe 管理コマンドラインインターフェース (nvme-cli) ツールを使用して、Broadcom アダプタークライアントに NVMe イニシエーターを設定します。

手順

  1. nvme-cli ツールをインストールします。

    # yum install nvme-cli

    これにより、/etc/nvme/ ディレクトリーに hostnqn ファイルが作成されます。hostnqn ファイルは、NVMe ホストを識別します。

    新しい hostnqn を生成するには、次のコマンドを実行します。

    #nvme gen-hostnqn
  2. ローカルポートおよびリモートポートの WWNN および WWPN を見つけ、出力を使用してサブシステムの NQN を見つけます。

    # cat /sys/class/scsi_host/host*/nvme_info
    
    NVME Initiator Enabled
    XRI Dist lpfc0 Total 6144 IO 5894 ELS 250
    NVME LPORT lpfc0 WWPN x10000090fae0b5f5 WWNN x20000090fae0b5f5 DID x010f00 ONLINE
    NVME RPORT       WWPN x204700a098cbcac6 WWNN x204600a098cbcac6 DID x01050e TARGET DISCSRVC ONLINE
    
    NVME Statistics
    LS: Xmt 000000000e Cmpl 000000000e Abort 00000000
    LS XMIT: Err 00000000  CMPL: xb 00000000 Err 00000000
    Total FCP Cmpl 00000000000008ea Issue 00000000000008ec OutIO 0000000000000002
        abort 00000000 noxri 00000000 nondlp 00000000 qdepth 00000000 wqerr 00000000 err 00000000
    FCP CMPL: xb 00000000 Err 00000000
    # nvme discover --transport fc --traddr nn-0x204600a098cbcac6:pn-0x204700a098cbcac6 --host-traddr nn-0x20000090fae0b5f5:pn-0x10000090fae0b5f5
    
    Discovery Log Number of Records 2, Generation counter 49530
    =====Discovery Log Entry 0======
    trtype:  fc
    adrfam:  fibre-channel
    subtype: nvme subsystem
    treq:    not specified
    portid:  0
    trsvcid: none
    subnqn:  nqn.1992-08.com.netapp:sn.e18bfca87d5e11e98c0800a098cbcac6:subsystem.st14_nvme_ss_1_1
    traddr:  nn-0x204600a098cbcac6:pn-0x204700a098cbcac6

    nn-0x204600a098cbcac6:pn-0x204700a098cbcac6 を、traddr に置き換えます。

    nn-0x20000090fae0b5f5:pn-0x10000090fae0b5f5 を、host-traddr に置き換えます。

  3. nvme-cli を使用して NVMe ターゲットに接続します。

    # nvme connect --transport fc --traddr nn-0x204600a098cbcac6:pn-0x204700a098cbcac6 --host-traddr nn-0x20000090fae0b5f5:pn-0x10000090fae0b5f5 -n nqn.1992-08.com.netapp:sn.e18bfca87d5e11e98c0800a098cbcac6:subsystem.st14_nvme_ss_1_1

    nn-0x204600a098cbcac6:pn-0x204700a098cbcac6 を、traddr に置き換えます。

    nn-0x20000090fae0b5f5:pn-0x10000090fae0b5f5 を、host-traddr に置き換えます。

    nqn.1992-08.com.netapp:sn.e18bfca87d5e11e98c0800a098cbcac6:subsystem.st14_nvme_ss_1_1 を、subnqn に置き換えます。

検証手順

  • 現在接続されている NVMe デバイスの一覧を表示します。

    # nvme list
    Node             SN                   Model                                    Namespace Usage                      Format           FW Rev
    ---------------- -------------------- ---------------------------------------- --------- -------------------------- ---------------- --------
    /dev/nvme0n1     80BgLFM7xMJbAAAAAAAC NetApp ONTAP Controller                  1         107.37  GB / 107.37  GB      4 KiB +  0 B   FFFFFFFF
    # lsblk |grep nvme
    nvme0n1                     259:0    0   100G  0 disk

関連情報

13.2.2. QLogic アダプターの NVMe イニシエーターの設定

この手順を使用して、NVMe 管理コマンドラインインターフェース (nvme-cli) ツールを使用して、Qlogic アダプタークライアントの NVMe イニシエーターを設定します。

手順

  1. nvme-cli ツールをインストールします。

    # yum install nvme-cli

    これにより、/etc/nvme/ ディレクトリーに hostnqn ファイルが作成されます。hostnqn ファイルは、NVMe ホストを識別します。

    新しい hostnqn を生成するには、次のコマンドを実行します。

    #nvme gen-hostnqn
  2. qla2xxx モジュールを削除して再読み込みします。

    # rmmod qla2xxx
    # modprobe qla2xxx
  3. ローカルポートおよびリモートポートの WWNN および WWPN を検索します。

    # dmesg |grep traddr
    
    [    6.139862] qla2xxx [0000:04:00.0]-ffff:0: register_localport: host-traddr=nn-0x20000024ff19bb62:pn-0x21000024ff19bb62 on portID:10700
    [    6.241762] qla2xxx [0000:04:00.0]-2102:0: qla_nvme_register_remote: traddr=nn-0x203b00a098cbcac6:pn-0x203d00a098cbcac6 PortID:01050d

    これらの host-traddrtraddr の値を使用して、NQN のサブシステムを検索します。

    nvme discover --transport fc --traddr nn-0x203b00a098cbcac6:pn-0x203d00a098cbcac6 --host-traddr nn-0x20000024ff19bb62:pn-0x21000024ff19bb62
    
    Discovery Log Number of Records 2, Generation counter 49530
    =====Discovery Log Entry 0======
    trtype:  fc
    adrfam:  fibre-channel
    subtype: nvme subsystem
    treq:    not specified
    portid:  0
    trsvcid: none
    subnqn:  nqn.1992-08.com.netapp:sn.c9ecc9187b1111e98c0800a098cbcac6:subsystem.vs_nvme_multipath_1_subsystem_468
    traddr:  nn-0x203b00a098cbcac6:pn-0x203d00a098cbcac6

    nn-0x203b00a098cbcac6:pn-0x203d00a098cbcac6 を、traddr に置き換えます。

    nn-0x20000024ff19bb62:pn-0x21000024ff19bb62 を、host-traddr に置き換えます。

  4. nvme-cli ツールを使用して NVMe ターゲットに接続します。

    # nvme connect  --transport fc --traddr nn-0x203b00a098cbcac6:pn-0x203d00a098cbcac6 --host-traddr nn-0x20000024ff19bb62:pn-0x21000024ff19bb62 -n nqn.1992-08.com.netapp:sn.c9ecc9187b1111e98c0800a098cbcac6:subsystem.vs_nvme_multipath_1_subsystem_468

    nn-0x203b00a098cbcac6:pn-0x203d00a098cbcac6 を、traddr に置き換えます。

    nn-0x20000024ff19bb62:pn-0x21000024ff19bb62 を、host-traddr に置き換えます。

    nqn.1992-08.com.netapp:sn.c9ecc9187b1111e98c0800a098cbcac6:subsystem.vs_nvme_multipath_1_subsystem_468 を、subnqn に置き換えます。

検証手順

  • 現在接続されている NVMe デバイスの一覧を表示します。

    # nvme list
    Node             SN                   Model                                    Namespace Usage                      Format           FW Rev
    ---------------- -------------------- ---------------------------------------- --------- -------------------------- ---------------- --------
    /dev/nvme0n1     80BgLFM7xMJbAAAAAAAC NetApp ONTAP Controller                  1         107.37  GB / 107.37  GB      4 KiB +  0 B   FFFFFFFF
    
    # lsblk |grep nvme
    nvme0n1                     259:0    0   100G  0 disk

関連情報


このページには機械翻訳が使用されている場合があります (詳細はこちら)。