IT博客汇
  • 首页
  • 精华
  • 技术
  • 设计
  • 资讯
  • 扯淡
  • 权利声明
  • 登录 注册

    捡垃圾,折腾一下HP 544+ FLR

    Windfarer发表于 2025-03-03 16:07:56
    love 0

    从围城哥哥那里领养代替购买了一套闲置的HP 544+ FLR网卡(就是ConnectX-3 Pro),在家折腾RDMA网卡玩(涛哥有云:班没上够,回家还搞?)。在经历了发现一张卡凉凉,又50块捡了一张,以及又花了50块捡了56G的IB线缆之后,两张卡终于插到了同一台机器里并用IB直连达到了满意的速度(图个啥

    网上冲浪了一阵发现坑还是很多的,资料也比较零散,所以我也整理一下自己的踩坑经验,供后来的垃圾佬参考。垃圾怎么捡我就不教学了,毕竟基本白嫖,经验不丰富,我这里只关注软件部分。

    确认设备存活

    先确认网卡都认出来了。

     lspci |grep Mellanox

    我的机器装的PVE 8.3,基于Debian 12。但是接下来的所有操作都是直接pve系统进行的,不涉及到虚拟机。

    装各种包

    官方的OFED就不用想着装了,早就不维护,新点的系统都装不上。kernel里应该是内置了mlx4 ethernet的driver,如果只用ethernet看起来不需要特意去装,直接就能识别出来。但如果要搞ib,还是需要装一些其它的包。

    apt-get install rdma-core ibverbs-providers infiniband-diags ibutils ibverbs-utils rdmacm-utils perftest
    

    再装下kernel header,这步可能需要配置pve-no-subscription的源,没有的话在这里找 https://mirrors.ustc.edu.cn/help/proxmox.html

    apt-get install proxmox-headers-6.8.12-8-pve

    这些都干完之后就可以装mst,只能装这个4.25,再新的版本就不支持这个垃圾卡了,从这里下载
    https://www.mellanox.com/downloads/MFT/mft-4.25.1-11-x86_64-deb.tgz

    解压完运行里面的install.sh

    都装完了看看mst是否能用

    mst start
    mst status

    刷固件

    如果你的速率显示不是40G(eth模式)或56G(ib模式),那么可能需要刷下固件才能把速率跑上去,固件从这里下载https://pan.baidu.com/s/1uiebg1P-tTL1WIuxMgLblQ?pwd=tfgi

    我下的是HP_1380110017_powerlevel_50g_56kr4.bin这个

    # 看下刷固件的设备路径在哪,一般是pci_cr0这种
    mst status
    
    # 注意命令最后还有个b
    flint -d /dev/mst/mt4103_pci_cr0 -i ./HP_1380110017_powerlevel_50g_56kr4.bin b
    
    # 刷完重启
    reboot
    
    # 查看网卡状态是否正常
    ibstat

    IB直连,配置OpenSM

    不走交换机,ib直连的话需要启用opensm,不然它state会一直卡在Initializing,走不到Active,如果你恰巧财力雄厚拥有有ib交换机,则可以跳过这步,因为ib交换机帮你sm了(不是

    systemctl start opensm

    然后再用ibstat看状态应该就正常了

    切换网卡模式

    mlx网卡可以工作在两种模式,Infiniband或者Ethernet其中一种,日常家用的话还是Ethernet就好了。

    另外需要两个口一起切了,应该是没法两种模式同时支持

    mst start
    
    # 看一下pciconf的设备路径,在后续命令中使用
    mst status
    
    # 配置两个口的设备,1是IB,2是ETH
    mlxconfig -d /dev/mst/mt4103_pciconf0 set LINK_TYPE_P1=1
    mlxconfig -d /dev/mst/mt4103_pciconf0 set LINK_TYPE_P2=1
    
    # 重启生效
    reboot

    常用命令

    如果是ethernet模式

    # 看状态
    ethtool enp98s0
    
    # 设速率
    ethtool -s enp98s0 autoneg off speed 40000 duplex full
    
    # 启用网卡和ip设置
    ip link set enp98s0 up
    ip addr add 192.168.5.150/24 dev enp98s0
    
    # 测速
    # 服务端 
    iperf3 -s
    # 客户端
    iperf3 -c 192.168.5.150

    如果是infiniband模式

    # 查看设备状态
    ibstat
    ibstatus
    ibv_devinfo
    iblinkinfo
    
    # 测速,还有ib_write_bw之类的命令,参数类似。ib通信并不会走eth网络栈,这里ip填对端能通的ip即可,它只是用于在初始化阶段交换一些配置信息,实际通信会走IB的链路。参数-i是端口号,和ibstat里的对应上就行
    # 服务端
    ib_send_bw -d ibp1s0 -i 2
    # 客户端
    ib_send_bw -d ibp98s0 -i 2 192.168.2.1
    
    

    好了,现在你也可以光速传输小电影了。

    参考

    • https://gist.github.com/lzghzr/d37327c218a09cce3e601cea3ebdbd42
    • https://skyao.io/learning-computer-hardware/nic/hp544/
    • https://xsl.sh/2023/09/pve8-hpe-544-flr/
    • https://www.bilibili.com/video/BV1dj421o7Qn/
    • https://www.chiphell.com/thread-2264463-1-1.html


沪ICP备19023445号-2号
友情链接