Mellanox Infiniband 网卡自制固件刷新教程
Jim 发表于:13年05月17日 14:55 [编译] DOIT.com.cn
本文的内容是向你介绍为戴尔、Sun或者惠普重新贴牌的Mellanox Infiniband网卡建立和刷新自制固件的方法。有了自定义固件,你就能在Windows Server 2012使用RDMA功能了,它可以将你的文件共享能力提升至3280MB每秒,将近25万的IOPS。这几天OEM Mellanox Infiniband网卡用户常见的问题就是,他们没法找到开启RDMA(远程直接数据存取)的固件修订版本。性能优势十分明显。
什么?我的Infiniband网卡在Windows Server 2012里没有RDMA?
要寻求更好的文件共享性能,给你的Windows Server 2012机器里安一个戴尔、Sun或者惠普品牌的40千兆InfiniBand网卡,这种卡都是采用 Mellanox ConnectX-2 固件的。最新的微软操作系统为这种卡内置了IPoIB驱动,所以你只要重启一下系统就能用了。分配一个IP地址,设置一下共享,然后就能测试一下吞吐量了。在你的客户端机器上运行IOMeter基准测试,连接到文件服务器,查看结果,如下图所示——挺快但还不够快。
测试结果中的1958MB/s的意思是,你的40千兆网卡的传输大概只在15千兆左右。那其他那些带宽都跑哪儿去了呢?要查明原因,你要打开一个PowerShell窗口。Get-NetOffloadGlobalSetting显示NetworkDirect的状态是开启,也就是说你可以使用RDMA——如果你的卡支持这个功能的话。
运行Get-NetAdapterRdma,显示该卡已经被设置为可以使用RDMA。那为什么不能用呢?
即便有一个配置正确的系统——而且Windows Server 2012默认情况就下就是配置好的——如果你的卡的固件不适用于操作系统,你也不能使用RDMA。接着查找问题,关键的PowerShell查询命令是Get-SmbServerNetworkInterface,它(见下图)可以直观地显示出我们的InfiniBand卡不能在Windows Server 2012里使用IPoIB RDMA。Windows系统日志里还有更多内容,但我们不需要;我们已经知道怎么回事了。
问题出在老旧的固件上
我们的卡在规格说明里承诺提供RDMA,原来,要在Windows Server 2012上使用,你的Mellanox固件版本必须在2.9.8350以上。你可以用多种方式查到你的固件版本。最简单的方式就是Windows设备管理器,如下图示,它显示,此卡的固件版本为2.9.1000,不支持RDMA。