第 9 章 FIBRE CHANNEL OVER ETHERNET の設定
13.1. RDMA を使用した NVME OVER FABRICS
NVMe/RDMA 設定では、NVMe ターゲットおよび NVMe イニシエーターが設定されます。
システム管理者は、次のセクションのタスクを、RDMA (NVMe/RDMA) を使用して NVMe over fabrics をデプロイします。
「configfs で NVMe/RDMA ターゲットの設定」
「nvmetcli を使用した NVMe/RDMA ターゲットの設定」
「NVMe/RDMA クライアントの設定」
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/0a6b088db2dc2e5de11e6f23f1e890e4 b54fee64:/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
関連情報 関連情報
man ページの nvme
Nvme-cli Github リポジトリー