我们目前遇到linux下不同10G网卡的问题。
我知道“解决”问题/回答此类问题很困难,但我们有点无能为力。所以请善待我们 :-)
首先我们尝试了 Intel 10G 适配器 (X*710)。它们工作正常,直到我们在内核消息日志中看到“tx hang”。
我们尝试了所有方法。最新固件、最新内核(4.19、4.14、4.20、5.x),我们使用了内核 i40e 驱动程序和英特尔的驱动程序。我们搜索了网络,尝试了所有步骤,例如禁用 TSO 或 LRO。但都无济于事。“tx 挂起”每天发生多次。所有连接都丢失,直到内核看门狗重新启动连接。大约需要 1-2 分钟。
所以我们尝试了 Mellanox 卡。它们几乎一样。几个小时后,所有网络适配器都关闭了,然后又恢复了。只是内核日志消息不存在,可能是因为驱动程序没有记录该消息。
我们在 3 台不同的机器上试用了所有卡(每个制造商 4 个),以排除其他硬件错误或漏洞。我们试用了不同的 SPF+ 模块(也是 8 个)和电缆(9 个)以及其他交换机(2 个大型 HP procurve)。
有人知道还要寻找什么吗?
也许有一些内核配置选项(我们使用在 1G 设备下完美运行的 vanilla 内核)?
其他硬件问题吗?
答案1
最近,我在一家大量使用 10G 网络基础设施的公司担任网络/系统工程师,和大多数在 2000 年代初开始职业生涯的经验丰富的网络工程师一样,我坚持使用英特尔制造的网络适配器,但在部署 10G 网络基础设施的过程中,我遇到了很多问题,我可以在下面总结一下。我还应该说这是我的个人经历,其他人的经历可能会有很大不同。
- 有几种 Intel 10G/40G 芯片组,有些麻烦,有些则不麻烦。例如,EoL X520 芯片组不错,我们在生产环境中没有发现它有问题。我们使用的是 X520-DA2 适配器。
- 当谈到 X*710 时,有几个因素需要考虑:
- 有X710和XL710芯片组。X710用于10G适配器,XL710用于40G适配器。
- 有几家网络适配器的次级制造商以他们的名义运送被篡改的 X710 适配器,例如 Supermicro。避免使用这些适配器,它们的设计很糟糕,支持也很差。英特尔 NVM 固件与这些不兼容,而且 Supermicro NVM 映像很难获得,时间延迟,英特尔技术支持拒绝支持此类适配器,并声称“这些不是我们制造的”。
- 在同一时间原装,英特尔制造X710 适配器很不错,稳定又酷,我以前的雇主仍有数十台服务器运行原装英特尔制造的网络适配器。但是,我们不得不更换所有被超微篡改的 X710 适配器。
- 免责声明:个人观点XL710 芯片组,无论哪个子制造商,都是死的。我看到几个未答复的错误报告,都说明了您面临的问题:内核抱怨超时、适配器在线路上出现大量流量时立即停止工作等等。无论使用哪种操作系统:Linux、FreeBSD 等。英特尔技术支持未能解决这些问题(典型线)。我看到了大型企业网络工程师的非官方反馈,反馈是一样的:永远不要在生产中使用 XL710 芯片组(您可以谷歌搜索那些使用“恶意驱动程序检测事件”作为模式之一的人);他们试图这样做,但徒劳无功:他们建议使用“合适的”DAC 电缆而不是“通用电缆”,使用“合适的”SFP+ 收发器而不是通用收发器(由于只有 3-5 家原始 SPF+ 收发器制造商,我怀疑不会有任何实际差异)。我可以说我们切换到 Mellanox 40G 卡(基于 Connect-X 的卡),从那时起就没问题了(这是我的同事给我的建议;旧的 Connect-X 10G 芯片组也是如此)。我们没有在其余基础设施中替换任何东西:DAC 电缆/SFP+ 收发器保持不变。这不是 Mellanox 的广告,有几家供应商提供 40G 适配器 - Chelsio、Solarflare,你可以坚持使用其中任何一家,据报道它们都可以正常工作。我们改用 Mellanox 的原因很简单:售后市场上有很多二手适配器。
作为一种潜在的解决方案,我可以说您应该尝试在卡上运行最新的 NVM 映像,但我对此非常悲观。根据我的经验 - 这些更新无法解决任何问题。我还有几个适配器在更新后不再被识别为可以使用新版本刻录的英特尔适配器(但是,它们继续“运行”)。
跟进:在我看来,还是有希望的:这(原文如此!注意日期!),一些 Linux 发行版现在有所需的补丁。但是,考虑到自最初发现问题以来已经过去了很长时间(好几年了,天哪!),而且英特尔几乎没有采取任何行动来调查/解决这个问题主要网络操作系统,我认为 XL710 是网络 IC 生产历史上最大的失败之一。英特尔,继续努力。