好久没水博客了，想起 4 月 15 日这一次三个人折腾了一整天的事情，于是把 15 号的这篇日记放了上来。权当吐槽。 前两天，咕了好久的服务器上架终于办完了。昨天联系 HKIX 做调试，发生了 HKIX 那边一通电，机器里的路由器就 kernel panic 的问题，看了下 log 是 PCI-e 直通导致的，但是没关系，本身就准备过不直通用虚拟化方案的 solution。但是 ESXi 里面竟然网卡都没了，只有没有通电的端口还在，于是今天开始了漫长的 debug。 首先是 cyy 重装了 ESXi 为 PVE，因为我们觉得可能是 ESXi 有点问题。装好之后就是尝试直通，失败。经检查可能是我们的服务器对于 VT-d 的支持的问题，由于 HPE 的一些策略，所以不能顺利直通。使用 HPE 官方提供的方法同样没有解决。但是无论如何至少宿主机里能找见网卡，比 ESXi 里面网卡都没了要好，于是我们配好了虚拟交换机，然后在上面配好了路由器。正准备通知 HKIX 进行第二次测试，我们就发现了很要命的事情，麻田哥哥买的这个服务器型号只有 RHEL 等 Linux 发行版的驱动。没有驱动，尤其是 RAID 阵列卡的驱动是一件很要命的事情，因为这个阵列卡是个软 RAID，没有驱动的话 RAID 会形同虚设。所以我们还是得回 ESXi，至少 HPE 给 ESXi 6.7 还是有做 Gen 8 的设备适配的。 回到 ESXi，还是老问题，我精读了一下系统 log，终于看到一条重要信息。 2020-04-15T12:18:16.586Z cpu3:66008)WARNING: vmklinux: pci_announce_device:1486: PCI: driver ixgbe probe failed for device 0000:04:00.1 看样子是驱动的问题，同一张卡上 .0 的端口的驱动就正常加载了。然后我去找了一个比较大的 log，然后搜索关键字，发现了这个： 2020-04-15T12:18:16.586Z cpu3:66008)<3>ixgbe 0000:04:00.1: failed to load because an unsupported SFP+ module type was detected. 2020-04-15T12:18:16.586Z cpu3:66008)<3>ixgbe 0000:04:00.1: Reload the driver after installing a supported module. 2020-04-15T12:18:16.586Z cpu3:66008)WARNING: vmklinux: pci_announce_device:1486: PCI: driver ixgbe probe failed for device 0000:04:00.1 2020-04-15T12:18:16.586Z cpu3:66008)LinPCI: LinuxPCI_DeviceUnclaimed:257: Device 0000:04:00.1 unclaimed. 2020-04-15T12:18:16.586Z cpu3:66008)PCI: driver ixgbe claimed 1 device 居然是不支持的光模块！但是很奇怪，在 PVE 下面也是 ixgbe，为什么 PVE 就没有报这个错了，能够顺利加载。东找找西找找，发现了 ESXi 自带的 ixgbe 驱动比较旧，抱着试试看的心情更新了一下，漫长的重启之后，新的驱动果然就没有报错了！我们高兴死了，不然就只能刷 EEPROM 强行解决了。我们猜测是因为 ixgbe 进 Linux 的时候，因为这个原因被拒绝了，于是不得不去掉这个 SFP 模块的限制，于是就有了这个原因。但是 ixgben 是 Intel 给 ESXi 定制的闭源驱动，应该就没有这种好事了，所以我们也就没有去找 ixgben 的新版驱动测试，当然 ixgben 无法加载也是这个问题。 2020-04-15T13:10:04.379Z cpu3:65925)ixgben: ixgben_InitSharedCode:185: Unsupported SFP+ or QSFP detected. Try to replace a supported module then reload the driver. 2020-04-15T13:10:04.379Z cpu3:65925)ixgben: ixgben_InitSharedCode:187: HW init failed: -19 2020-04-15T13:10:04.379Z cpu3:65925)WARNING: ixgben: indrv_Attach:2399: Failed to init shared code 2020-04-15T13:10:04.379Z cpu3:65925)DMA: 691: DMA Engine 'ixgben' destroyed. 2020-04-15T13:10:04.383Z cpu3:65925)Device: 2482: Module 25 did not claim device 0x645f43035dc8be9d. 现在我们终于可以用虚拟化把这个光口接进虚拟机了。