Debian 12でconfigfs を使い NVMe over RDMA ターゲット(ConnectX-3 VPI)を設定し、同じくDebian 12の イニシエータ(ConnectX-3 VPI)から接続してみました。今回は PCIe 4.0 の NVMe ドライブを PCIe 3.0 で接続して試してみたのですが、fioを使ったベンチマークでローカルとほぼ同じ速度で接続できましたので備忘録として挙げてみました。
早速ですが、以下設定です。
続いてイニシエータ側から接続してみます。
試しに QDR(40Gbps)のRoCE (ConnectX-3 VPI) で計測を行ってみました。最高同程度の速度で読取・書込できているようです。
これも参考ですが、同じHCAの別ポートのIPoIB(Connected mode)で接続した場合、以下のようになりました。最高同程度の速度で読取書込できているようです。
ついでに ConnectX-2 なIPoIBのイニシエータから接続して計測した場合は、以下のようになりました。
今回は以上です。それでは。
早速ですが、以下設定です。
#### target side modprobe nvmet-rdma NQN=nqn.1868-01.com.example:nvme:i50.500gb01 mkdir /sys/kernel/config/nvmet/subsystems/$NQN cd /sys/kernel/config/nvmet/subsystems/$NQN echo 1 > attr_allow_any_host mkdir namespaces/10 cd namespaces/10 echo -n /dev/nvme0n1 > device_path echo 1 > enable mkdir /sys/kernel/config/nvmet/ports/1 cd /sys/kernel/config/nvmet/ports/1 # 全てのインターフェースでリスンする場合は 0.0.0.0 を指定 echo -n 0.0.0.0 > addr_traddr echo rdma > addr_trtype echo 4420 > addr_trsvcid echo ipv4 > addr_adrfam ln -s /sys/kernel/config/nvmet/subsystems/$NQN /sys/kernel/config/nvmet/ports/1/subsystems/$NQN # 確認 dmesg | grep "enabling port" [ 1342.115704] nvmet_rdma: enabling port 1 (0.0.0.0:4420)ターゲット側は以上です。
続いてイニシエータ側から接続してみます。
#### initiator side apt-get install nvme-cli # discovering nvme discover -t rdma -a 10.1.56.50 -s 4420 # connecting NQN=nqn.1868-01.com.example:nvme:i50.500gb01 nvme connect -t rdma -n $NQN -a 10.1.56.50 -s 4420 # 接続確認 nvme list --snip dmesg | tail [ 5654.428305] nvme nvme0: creating 4 I/O queues. [ 5654.461203] nvme nvme0: mapped 4/0/0 default/read/poll queues. [ 5654.462550] nvme nvme0: new ctrl: NQN "nqn.1868-01.com.example:nvme:i50.500gb01", addr 10.1.56.50:4420接続は以上です。
試しに QDR(40Gbps)のRoCE (ConnectX-3 VPI) で計測を行ってみました。
# fio sequential read on initiator fio --filename=/dev/nvme0n1 --size=1024M --rw=read --bs=1024K --ioengine=io_uring --direct=1 --iodepth=8 --runtime=10 --numjobs=1 --time_based --group_reporting --name=read-throughput-test-job --snip Run status group 0 (all jobs): READ: bw=3288MiB/s (3448MB/s), 3288MiB/s-3288MiB/s (3448MB/s-3448MB/s), io=32.1GiB (34.5GB), run=10002-10002msec # fio sequential write on initiator fio --filename=/dev/nvme0n1 --size=1024M --rw=write --bs=1024K --ioengine=io_uring --direct=1 --iodepth=8 --runtime=10 --numjobs=1 --time_based --group_reporting --name=write-throughput-test-job --snip Run status group 0 (all jobs): WRITE: bw=3212MiB/s (3368MB/s), 3212MiB/s-3212MiB/s (3368MB/s-3368MB/s), io=31.4GiB (33.7GB), run=10003-10003msec # 参考: fio sequential read on target fio --filename=/dev/nvme0n1 --size=1024M --rw=read --bs=1024K --ioengine=io_uring --direct=1 --iodepth=8 --runtime=10 --numjobs=1 --time_based --group_reporting --name=read-throughput-test-job --snip Run status group 0 (all jobs): READ: bw=3391MiB/s (3556MB/s), 3391MiB/s-3391MiB/s (3556MB/s-3556MB/s), io=33.1GiB (35.6GB), run=10002-10002msec # 参考: fio sequential wirte on target fio --filename=/dev/nvme0n1 --size=1024M --rw=write --bs=1024K --ioengine=io_uring --direct=1 --iodepth=8 --runtime=10 --numjobs=1 --time_based --group_reporting --name=write-throughput-test-job --snip Run status group 0 (all jobs): WRITE: bw=3189MiB/s (3344MB/s), 3189MiB/s-3189MiB/s (3344MB/s-3344MB/s), io=31.2GiB (33.4GB), run=10003-10003msec ## 接続解除 nvme disconnect -n $NQN多少のオーバーヘッドはあるかとは思いますが、PCIe x3 接続の NVMe ドライブとして見た場合、QDR接続でもローカル接続・リモート接続共にほぼ
これも参考ですが、同じHCAの別ポートのIPoIB(Connected mode)で接続した場合、以下のようになりました。
# sequential read Run status group 0 (all jobs): READ: bw=3307MiB/s (3467MB/s), 3307MiB/s-3307MiB/s (3467MB/s-3467MB/s), io=32.3GiB (34.7GB), run=10003-10003msec # sequential write Run status group 0 (all jobs): WRITE: bw=3214MiB/s (3370MB/s), 3214MiB/s-3214MiB/s (3370MB/s-3370MB/s), io=31.4GiB (33.7GB), run=10003-10003msecこちらも QDR 接続で、ほぼ
ついでに ConnectX-2 なIPoIBのイニシエータから接続して計測した場合は、以下のようになりました。
# sequential read Run status group 0 (all jobs): READ: bw=3132MiB/s (3284MB/s), 3132MiB/s-3132MiB/s (3284MB/s-3284MB/s), io=30.6GiB (32.8GB), run=10003-10003msec # sequential write Run status group 0 (all jobs): WRITE: bw=2829MiB/s (2966MB/s), 2829MiB/s-2829MiB/s (2966MB/s-2966MB/s), io=27.6GiB (29.7GB), run=10002-10002msec書込が後少しですが、ターゲットが PCIe 3.0 x4 接続の NVMe な環境では ConnectX-2のイニシエータでもそこそこのスピードで接続できるようです。
今回は以上です。それでは。
コメント
コメントを投稿