• 検索結果がありません。

RDMA を使用した NVME OVER FABRICS

第 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 リポジトリー