infiniband導入
8年ほど前から気になっていた、infiniband, 2年ほど前にConnect-X2 とケーブルとジャンクスイッチをゲットしたものの、スイッチがジャンク(起動してプロンプトが返ってくるまで2日 ... orz)& 爆音過ぎてお蔵入りさせてしまっていたのだが、ステイホームで時間を持て余して、いろいろ片付けをしているついでに、自宅NASをFreeNASで再構築、NASサーバとバックアップサーバの接続を高速化すべく、ConnectX2 を動かしてみました。
構成
FreeNASでの認識
バージョンは、11.3 U1だったが、特に何もしなくても、ドライバはインストールされていた。
# lspci | grep Mel
06: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)
# dmesg|grep mlx
mlx5en: Mellanox Ethernet driver 3.5.1 (April 2019)
mlx4_core0: <mlx4_core> mem 0xfbf00000-0xfbffffff,0xf1000000-0xf17fffff irq 32 at device 0.0 on pci9
mlx4_core: Mellanox ConnectX core driver v3.5.1 (April 2019)
mlx4_core: Initializing mlx4_core
mlx4_core0: Unable to determine PCI device chain minimum BW
# ifconfig -l
bce0 bce1 bce2 bce3 lo0
インターフェイスモードの確認・変更
# sysctl sys.device
sys.device.mlx4_core0.hw.board_id: MT_0D81120009
sys.device.mlx4_core0.hw.fw_version: 2.9.1200
sys.device.mlx4_core0.mlx4_port2_mtu: 4096
sys.device.mlx4_core0.mlx4_port2: ib
sys.device.mlx4_core0.mlx4_port1_mtu: 4096
sys.device.mlx4_core0.mlx4_port1: ib
ネットワークインターフェイスとしては見えていないので、モードを変更
# sysctl sys.device.mlx4_core0.mlx4_port1=eth
sys.device.mlx4_core0.mlx4_port1: ib -> eth
# ifconfig -l
bce0 bce1 bce2 bce3 lo0 mlxen0
これで、mlxen0 として認識
ブリッジ化
1GbEとブリッジにしてしまう
# ifconfig bridge0 create addm bce0 addm bce1 addm bce2 addm bce3 addm mlxen0
# ifconfig bridge0 up
#ifconfig bridge0 inet ipアドレス netmask 255.255.255.0
#ifconfig bce0 delete
完全にバックアップ用の裏LANにしてしまうのであれば、ブリッジ化は不要
バックアップ結果
バックアップは、Windows側から、robocopy でltfs に向けてコピー
スループットは、ピークで2Gb/s 程度でたけど、平均は1Gbps以下、あまり早くならなかった。
LTO に足引っ張られてるかな。。