#author("2025-06-01T02:32:07+00:00","default:sysosa","sysosa") #author("2025-06-14T03:05:22+00:00","default:sysosa","sysosa") 各種nicで速度を確かめている ***ConnectX-3 Pro EN MCX313A-BCCT [#yaa16840] infinibandはしゃべれない Ethernet カード infinibandはしゃべれない Ethernet カードが2枚ある. それを共に CPU: Gold G5400[3.7GHz,2c/4t], MEM: 32GB, MB: Gigabyte H310N 2.0 なマシンに刺した. 一応下記のように認識してくれた. #code(nonumber){{ 01:00.0 Ethernet controller: Mellanox Technologies MT27520 Family [ConnectX-3 Pro] }} 一応刺しただけで認識してくれた 同一のカードを刺した別のマシンと通信テスト. ケーブルが40Gbpsなので上限は40Gbpsになる. っで双方のマシンで iperf3 を使った通信テストを実施してみた. ケーブルは上限40Gbpsのケーブル. 片方はfirewallを停止して「iperf3 -s」で待機させ #code(nonumber){{ [root@rockylinux9 ~]# iperf3 -c 10.10.10.2 [root@c1 ~]# iperf3 -c 10.10.10.2 Connecting to host 10.10.10.2, port 5201 [ 5] local 10.10.10.1 port 34698 connected to 10.10.10.2 port 5201 [ ID] Interval Transfer Bitrate Retr Cwnd [ 5] 0.00-1.00 sec 3.85 GBytes 33.0 Gbits/sec 0 1.56 MBytes [ 5] 1.00-2.00 sec 3.90 GBytes 33.5 Gbits/sec 0 1.66 MBytes [ 5] 2.00-3.00 sec 3.89 GBytes 33.4 Gbits/sec 0 1.78 MBytes [ 5] 3.00-4.00 sec 3.86 GBytes 33.1 Gbits/sec 0 1.91 MBytes [ 5] 4.00-5.00 sec 3.92 GBytes 33.7 Gbits/sec 0 1.91 MBytes [ 5] 5.00-6.00 sec 3.93 GBytes 33.8 Gbits/sec 0 2.15 MBytes [ 5] 6.00-7.00 sec 3.91 GBytes 33.6 Gbits/sec 0 2.15 MBytes [ 5] 7.00-8.00 sec 3.91 GBytes 33.6 Gbits/sec 0 2.15 MBytes [ 5] 8.00-9.00 sec 3.89 GBytes 33.4 Gbits/sec 0 2.15 MBytes [ 5] 9.00-10.00 sec 3.81 GBytes 32.7 Gbits/sec 0 2.26 MBytes - - - - - - - - - - - - - - - - - - - - - - - - - [ ID] Interval Transfer Bitrate Retr [ 5] 0.00-10.00 sec 38.9 GBytes 33.4 Gbits/sec 0 sender [ 5] 0.00-10.00 sec 38.9 GBytes 33.4 Gbits/sec receiver iperf Done. [root@rockylinux9 ~]# [root@c1 ~]# }} 「iperf3 -c 10.10.10.2 -P 2」と多重で流したら最大 37.5 Gbits/sec まで届いた. 片方のマシンをnfsサーバ(PentiumGold G5400[3.7GHz,2c/4t],32GB mem,MB:H310N 2.0) として SSD disk(/data,CT250MX500SSD1) を使ってテスト まずローカルにて. 次に片方にSSD disk(/data,CT250MX500SSD1)を載せて nfs で共有をかけて dd による書き込み、読み込み速度を調べてみた 一応まずネットワークを介さないローカルにて測定してみた #code(nonumber){{ dd if=/dev/zero of=/data/testfile bs=1G count=10 oflag=direct <-- (書き込み) 11GBの空ファイルを作って 506 MB/s の値がでた dd if=/data/testfile of=/dev/null bs=1G count=10 iflag=direct <-- (読み込み) 11GBの空ファイルを読み込み 534 MB/s の値がでた }} 次にnfsクライアント側。 次にnfsクライアント側にて操作. #code(nonumber){{ mount -t nfs -o vers=4,hard,sync,noac,actimeo=0 10.10.10.1:/data /data <-- sync,noac,actimeoをオプションに入れてnfsクライアント側のキャッシュを無効化 dd if=/dev/zero of=/data/testfile bs=1G count=10 oflag=direct <-- (nfs経由で書き込み) 398 MB/s dd if=/data/testfile of=/dev/null bs=1G count=10 iflag=direct <-- (nfs経由で読み込み) 555 MB/s }} nfsクライアント側での読み込みテストの際は、事前にnfsサーバ側でキャッシュをクリアすることを忘れずに #code(nonumber){{ systemctl restart nfs-server echo 3 > /proc/sys/vm/drop_caches }} これを実行しないとキャッシュ経由で読み込みの値が出てくる. ddの結果からすれば、読み込みのnfs経由での速度低下はあまりない. 書き込みが若干落ちるって感じでしょうか 次にrsyncでも転送速度を図ってみた nfsクライアント側にて nfsクライアント側のsystem diskは nvme(WDC WDS250G1B0C-00S6U0) だが #code(nonumber){{ time rsync -avh /data/testfile /tmp <-- 340.95M bytes/sec dd if=/dev/zero of=/tmp/testfile bs=1G count=10 oflag=direct <-- (書き込み) 484 MB/s dd if=/tmp/testfile of=/dev/null bs=1G count=10 iflag=direct <-- (読み込み) 890 MB/s }} ここを使ってrsyncしてみた #code(nonumber){{ mount -t nfs -o vers=4,hard,sync,noac,actimeo=0 10.10.10.1:/data /data rsync -avh /tmp/testfile /data/testfile 42.04 M bytes/sec (nfsサーバへの書き込み) rsync -avh /data/testfile /tmp/testfile2 278.96M bytes/sec (nfsサーバからの読み込み) mount -t nfs 10.10.10.1:/data /data rsync -avh /tmp/testfile /data/testfile 352.13M bytes/sec (nfsサーバへの書き込み) rsync -avh /data/testfile /tmp/testfile2 499.54M bytes/sec (nfsサーバからの読み込み) }} nfsオプションのasyncが効いている?って感じかな. ***ConnectX-2 VPI MHQH29B-XTR [#s0530dd4] Mellanox connectX-3のカードがある. 非常に古いinfiniband/Ethernetカード. lspciの出力で下記のように表示される #code(nonumber){{ 01:00.0 InfiniBand: Mellanox Technologies MT25408A0-FCC-QI ConnectX, Dual Port 40Gb/s InfiniBand / 10GigE Adapter IC with PCIe 2.0 x8 5.0GT/s In... (rev b0) }} rockylinux9で使おうとしたらドライバーが提供されていない様子. [[https://network.nvidia.com/products/infiniband-drivers/linux/mlnx_ofed/>+https://network.nvidia.com/products/infiniband-drivers/linux/mlnx_ofed/]] -CoonectX-3はMLNX_OFEDのversion 4.9まで対応 &size(10){そもそもConnectX-2ではあるが}; -MLNX_OFEDはRockyLinux8.8まで対応 なので、ELRepoリポジトリで提供している「kmod-mlx4」を使ってみた. #code(nonumber){{ [root@rockylinux9 ~]# cat /etc/redhat-release Rocky Linux release 9.5 (Blue Onyx) [root@rockylinux9 ~]# uname -r 5.14.0-503.14.1.el9_5.x86_64 [root@rockylinux9 ~]# }} っとkernel versionを確認します っで #code(nonumber){{ [root@rockylinux9 ~]# wget https://mirror.rackspace.com/elrepo/elrepo/el9/SRPMS/kmod-mlx4-4.0-9.el9_5.elrepo.src.rpm [root@rockylinux9 ~]# rpm -i kmod-mlx4-4.0-9.el9_5.elrepo.src.rpm [root@rockylinux9 ~]# vi rpmbuild/SPECS/kmod-mlx4.spec %{!?kmod_kernel_version: %define kmod_kernel_version 5.14.0-503.11.1.el9_5} ↓ %{!?kmod_kernel_version: %define kmod_kernel_version 5.14.0-503.14.1.el9_5} [root@rockylinux9 ~]# dnf install kernel-abi-stablelists kernel-rpm-macros [root@rockylinux9 ~]# rpmbuild -bb rpmbuild/SPECS/kmod-mlx4.spec }} できたカーネルモジュールをインストール #code(nonumber){{ [root@rockylinux9 ~]# dnf localinstall ./rpmbuild/RPMS/x86_64/kmod-mlx4-4.0-9.el9.x86_64.rpm }} そうして #code(nonumber){{ [root@rockylinux9 ~]# modprobe mlx4_en [root@rockylinux9 ~]# modprobe ib_ipoib [root@rockylinux9 ~]# ip link : 3: ibp1s0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 4092 qdisc fq_codel state DOWN mode DEFAULT group default qlen 256 link/infiniband 80:00:02:08:fe:80:00:00:00:00:00:00:00:02:c9:03:00:5a:9e:8d brd 00:ff:ff:ff:ff:12:40:1b:ff:ff:00:00:00:00:00:00:ff:ff:ff:ff 4: ibp1s0d1: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 4092 qdisc fq_codel state DOWN mode DEFAULT group default qlen 256 link/infiniband 80:00:02:09:fe:80:00:00:00:00:00:00:00:02:c9:03:00:5a:9e:8e brd 00:ff:ff:ff:ff:12:40:1b:ff:ff:00:00:00:00:00:00:ff:ff:ff:ff [root@rockylinux9 ~]# [root@rockylinux9 ~]# systemctl start opensm }} でデバイスが認識出ました. あとはnmtiでinfinibandとして登録すれば通信できます. iperf3で2点間の通信速度を図ってみた. 「10.10.10.2」はもう一方の MHQH29B-XTR を持つマシン(rockylinux9) #code(nonumber){{ [root@rockylinux9 ~]# iperf3 -c 10.10.10.2 Connecting to host 10.10.10.2, port 5201 [ 5] local 10.10.10.1 port 45320 connected to 10.10.10.2 port 5201 [ ID] Interval Transfer Bitrate Retr Cwnd [ 5] 0.00-1.00 sec 3.05 GBytes 26.2 Gbits/sec 589 990 KBytes [ 5] 1.00-2.00 sec 3.07 GBytes 26.3 Gbits/sec 733 774 KBytes [ 5] 2.00-3.00 sec 3.07 GBytes 26.3 Gbits/sec 725 1004 KBytes [ 5] 3.00-4.00 sec 3.07 GBytes 26.3 Gbits/sec 920 1.07 MBytes [ 5] 4.00-5.00 sec 3.07 GBytes 26.4 Gbits/sec 536 846 KBytes [ 5] 5.00-6.00 sec 3.06 GBytes 26.3 Gbits/sec 867 770 KBytes [ 5] 6.00-7.00 sec 3.06 GBytes 26.3 Gbits/sec 637 792 KBytes [ 5] 7.00-8.00 sec 3.07 GBytes 26.3 Gbits/sec 680 1.08 MBytes [ 5] 8.00-9.00 sec 3.06 GBytes 26.3 Gbits/sec 715 1.12 MBytes [ 5] 9.00-10.00 sec 2.99 GBytes 25.7 Gbits/sec 735 679 KBytes - - - - - - - - - - - - - - - - - - - - - - - - - [ ID] Interval Transfer Bitrate Retr [ 5] 0.00-10.00 sec 30.6 GBytes 26.3 Gbits/sec 7137 sender [ 5] 0.00-10.00 sec 30.6 GBytes 26.3 Gbits/sec receiver iperf Done. [root@rockylinux9 ~]# }} 多重にしても40Gbpsまでは届かなかった.