引き続きレガシーなサーバをメンテしているのですが、2025/01 現在では既にサポートのない EOL な ConnectX-2 を Ethernet Mode にしてみる機会がありました。
まず、OS を用意する必要があるのですが、ConnectX-2 を対象としたファームウェア更新ツールは、調べた所、2025/01現在では Ubuntu 1604 LTS で実行できそうだというのはわかりました。そこで USB SSD を用意してここに Ubuntu 1604 LTS をインストールし、kernelを 4.4.0-21-generic にしてから、以下の手順でファームウェア更新ツールのインストールとMac Addressの変更はできました。 )
ConnectX-2に触れる機会は2025/01現在では既にレアだとは思いますが、備忘録として挙げてみました。USB SSDに1604を入れておいたので、今後1604そのものが unreachable になったときも使える環境は残せた上、USBから起動できれば今後も保守できるので良しとしています。また、既にEOLになっているConnectX-3の保守環境も同様の方法で保存しておけば良さそうです。ちなみに、ConnectX-3の最終パッケージは 5.0-2.1.8.0 の様です。
2025/01/14追記:全てのパッケージをインストールする場合は、以下のようにします。(なお、繰り返しますが、kernel version 4.4.0-21-generic でないと dkms パッケージ がビルドできません。)
まず、OS を用意する必要があるのですが、ConnectX-2 を対象としたファームウェア更新ツールは、調べた所、2025/01現在では Ubuntu 1604 LTS で実行できそうだというのはわかりました。そこで USB SSD を用意してここに Ubuntu 1604 LTS をインストールし、kernelを 4.4.0-21-generic にしてから、以下の手順でファームウェア更新ツールのインストールとMac Addressの変更はできました。 )
cd /etc/apt/sources.list.d wget https://linux.mellanox.com/public/repo/mlnx_ofed/4.1-1.0.2.0/ubuntu16.04/mellanox_mlnx_ofed.list sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys C5ED83E26224C050 sudo apt-get update(ofed version 4.1-1.0.2.0が最終のサポートバージョンかどうかわかりませんが、EOLになる直前の日付で最も新しいバージョンがこれでした。このバージョンでファームウェアの更新やパッケージのビルドはほぼ全部できています。ただし、一部カーネルモジュール(eth_ipoib.ko)が ubuntu 向けでビルドできていない様子なので、2025/01現在 ubuntu 向けでアクセスできるものの内、最も新しいのは、3.4-2.0.0.0の様ですが、面倒なのでusb disk を二台用意して両方クローンさせたほうが話が早そうです。)
#参考: cd /etc/apt/sources.list.d wget https://linux.mellanox.com/public/repo/mlnx_ofed/3.4-2.0.0.0/ubuntu16.04/mellanox_mlnx_ofed.listつづいて必要なパッケージを導入します。
# Mellanox Firmware Tool のインストール sudo apt-get install kernel-mft-dkms mft sudo mst start ls /dev/mst mt26428_pci_cr0 mt26428_pciconf0 # ファームウェアの確認 sudo flint -d /dev/mst/mt26428_pci_cr0 -qq q Image type: FS2 FW Version: 2.9.8350 FW Release Date: 9.10.2011 Rom Info: type=PXE version=3.3.400 devid=26428 proto=VPI Device ID: 26428 Description: Node Port1 Port2 Sys image GUIDs: 0002c903000XXXXX 0002c903000XXXXX 0002c903000XXXXX 0002c903000XXXXX MACs: 000000000000 000000000001 VSD: PSID: XX_XXXXXXXXXXまずここまでで現在の設定を確認できました。つづいて guidを参考にして、mac address を変更します。
sudo flint -d /dev/mst/mt26428_pci_cr0 -mac 02c9000YYYY sg -W- GUIDs are already set, re-burning image with the new GUIDs ... You are about to change the Guids/Macs/Uids on the device: New Values Current Values Node GUID: 0002c90300XXXXXX 0002c90300XXXXXX Port1 GUID: 0002c90300XXXXXX 0002c90300XXXXXX Port2 GUID: 0002c90300XXXXXX 0002c90300XXXXXX Sys.Image GUID: 0002c90300XXXXXX 0002c90300XXXXXX Port1 MAC: 0002c9XXXXXX 000000000000 Port2 MAC: 0002c9XXXXXX 000000000001 Do you want to continue ? (y/n) [n] : y Burning FS2 FW image without signatures - OK Restoring signature - OK20250201修正:Mellanox の Vendor ID は 00:02:c9 なのでそれに合わせました。
ConnectX-2に触れる機会は2025/01現在では既にレアだとは思いますが、備忘録として挙げてみました。USB SSDに1604を入れておいたので、今後1604そのものが unreachable になったときも使える環境は残せた上、USBから起動できれば今後も保守できるので良しとしています。また、既にEOLになっているConnectX-3の保守環境も同様の方法で保存しておけば良さそうです。ちなみに、ConnectX-3の最終パッケージは 5.0-2.1.8.0 の様です。
2025/01/14追記:全てのパッケージをインストールする場合は、以下のようにします。(なお、繰り返しますが、kernel version 4.4.0-21-generic でないと dkms パッケージ がビルドできません。)
mkdir -p /usr/lib/pkgconfig apt-get install mlnx-ofed-all参考までに、 此の頃のflint では lidを使った デバイスへのアクセスができるようです。
apt-get install tcl mst start mst ib add -I- Discovering the fabric - Running: ibdiagnet -skip all -I- Added 7 in-band devices ls /dev/mst CA_MT26428_sv106_ibp2s0_lid-0x0002 CA_MT26428_sv111_HCA-1_lid-0x001D CA_MT26428_sv107_ibp2s0_lid-0x0017 SW_MT51000_sx6012_lid-0x0007 CA_MT26428_sv108_ibp2s0_lid-0x0013 mt26428_pci_cr0 CA_MT26428_sv109_ibp2s0_lid-0x0001 mt26428_pciconf0 CA_MT26428_sv110_ibp2s0_lid-0x0011 flint -d lid-7 q Image type: FS2 FW Version: 9.3.8170 FW Release Date: 6.6.2016 Device ID: 51000 Description: Node Sys image GUIDs: XXXXXXXXXXXXXXXX YYYYYYYYYYYYYYYY Description: Base Switch MACs: yyyyyyyyyyyy zzzzzzzzzzzz VSD: n/a PSID: MT_1270110020追記:参考までに、firmware 2.9.8350 についてですが、2025/01 現在、以下のようにすると OK でした。
mst start # 現在のファームウェアの確認 flint -d /dev/mst/mt26428_pci_cr0 q # ファームウェアの取得 wget http://www.mellanox.com/downloads/firmware/fw-ConnectX2-rel-2_9_8350.zip mkdir fw-ConnectX2-rel-2_9_8350 cd fw-ConnectX2-rel-2_9_8350 unzip ../fw-ConnectX2-rel-2_9_8350.zip cd .. # 現在のファムウエアおよびiniファイルのバックアップとベリファイ flint -d /dev/mst/mt26428_pci_cr0 dc MHQH29B-XSR.ini flint -d /dev/mst/mt26428_pci_cr0 ri MHQH29B-XSR.bin flint -i verify MHQH29B-XSR.binbw # 書き込み cd fw-ConnectX2-rel-2_9_8350 mlxburn -d /dev/mst/mt26428_pci_cr0 -fw fw-ConnectX2-rel.mlx -conf MHQH29B-XSR_A1.ini -allow_psid_change追記2025/02/02: Debian 12 で inbox driver を使って速度を計測した所、ipoib + connected mode に設定して、ib_read_bw(Data exchange method: rdma)で 28gbps 程、iperf (iperf2) ではバラツキがあるのですが最大で 26gbps 程でした。pcie-2.0 の x8 の実効速度が 32gbpsなので、30gbps を超えるといいのですが、後もう少しといった感じです。
# ib_read_bw (Data exchange method: rdma_cm) i60:~$ sudo ib_read_bw -a -z -F --report_gbits ************************************ * Waiting for client to connect... * ************************************ --------------------------------------------------------------------------------------- RDMA_Read BW Test Dual-port : OFF Device : ibp1s0 Number of qps : 1 Transport type : IB Connection type : RC Using SRQ : OFF PCIe relax order: ON ibv_wr* API : OFF CQ Moderation : 100 Mtu : 4096[B] Link type : IB Outstand reads : 16 rdma_cm QPs : OFF Data ex. method : rdma_cm --------------------------------------------------------------------------------------- local address: LID 0x06 QPN 0x0221 PSN 0xd3ad26 remote address: LID 0x04 QPN 0x021b PSN 0xf6d596 --------------------------------------------------------------------------------------- #bytes #iterations BW peak[Gb/sec] BW average[Gb/sec] MsgRate[Mpps] 8388608 1000 28.11 28.11 0.000419 --------------------------------------------------------------------------------------- # iperf(iperf 2) i60:~$ sudo iperf -c 10.1.40.61 ------------------------------------------------------------ Client connecting to 10.1.40.61, TCP port 5001 TCP window size: 16.0 KByte (default) ------------------------------------------------------------ [ 1] local 10.1.40.60 port 47852 connected with 10.1.40.61 port 5001 (icwnd/mss/irtt=319/32734/4602) [ ID] Interval Transfer Bandwidth [ 1] 0.0000-10.0106 sec 31.0 GBytes 26.6 Gbits/sec今回は以上です。それでは。
コメント
コメントを投稿