亚马逊EC2如何在CentOS 7实例上安装ixgbevf?

4
我将尝试在亚马逊EC2 CentOS7实例上安装ixgbevf。步骤看起来不错,但每次我在启用增强型网络的实例中运行时(例如M4.xlarge),网络似乎会失败(启动后无法连接到实例)。
以下是我所做的步骤:
wget http://elrepo.org/linux/elrepo/el7/x86_64/RPMS/kmod-ixgbevf-2.16.1-1.el7.elrepo.x86_64.rpm
rpm -ivh kmod-ixgbevf-2.16.1-1.el7.elrepo.x86_64.rpm
cp -p /boot/initramfs-$(uname -r).img /boot/initramfs-$(uname -r).img.bak
dracut -f

然后关闭实例,并设置SR-IOV。
ec2-modify-instance-attribute instance_id --sriov simple

就是这样。每当类型(例如T2.micro)不支持增强网络时,实例正常工作。但如果我将类型更改为启用增强网络(例如M4.xlarge),则无法访问该实例。有人对此有任何想法吗?我漏掉什么了吗?


很遗憾,我还没有找到答案。 :( - khtwo
2个回答

12
答案被埋在原始文档的这个部分中:

The answer lies buried into this section of the original documentation:

http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/enhanced-networking.html#enhanced-networking-linux

简而言之,CentOS 7已经预装了ixgbevf模块,虽然不是最新版本,但这几乎不是问题。导致我的实例在重新启动后无法访问的原因是"可预测的网络接口"默认启用。
要禁用它们,只需访问该链接,直接跳转到第6步并键入:

To disable them, simply visit that link, jump straight to step number 6 and type:

$ rpm -qa | grep -e '^systemd-[0-9]\+\|^udev-[0-9]\+'
$ sudo sed -i '/^GRUB\_CMDLINE\_LINUX/s/\"$/\ net\.ifnames\=0\"/' /etc/default/grub
$ sudo grub2-mkconfig -o /boot/grub2/grub.cfg

之后:

  1. 停止实例
  2. 通过aws CLI启用增强网络
  3. 重新启动实例

现在您应该可以登录了!


1
你救了我的命。我无法重新进入我的实例。我惊慌失措,因此创建了一个新的实例并重新分配了卷。 - anastymous
@anastymous 很高兴它对你有用!我知道无法访问EC2实例的感觉;) - Alfredo Di Napoli
非常感谢,根据AWS文档,我浪费了很多时间在CentOS 7 AMI映像上安装ixgbevf模块,没有意识到我可以跳过大部分步骤,直接运行最后三个命令来解决这个问题。 - BMW
这是一个一行代码的命令,可以在 Grub 配置中禁用 udev 的“可预测网络接口”,它会检查版本并在编辑之前进行必要的操作:if [[ $( rpm -q systemd | awk -F\- '{print $2}' ) -gt 197 ]] && ! ( grep -q -E '^GRUB_CMDLINE_LINUX[[:blank:]]*.*net\.ifnames=0' /etc/default/grub ); then sed -e '/^GRUB_CMDLINE_LINUX/ s/[[:blank:]]*net\.ifnames=.[[:blank:]]*//' -e '/^GRUB_CMDLINE_LINUX/ s/"$/ net.ifnames=0"/' -i /etc/default/grub && grub2-mkconfig -o /boot/grub2/grub.cfg ; fi - Alan Ivey
1
@alanthing 我认为这是因为即使2xlarge实例也限制于1G网络[1],所以vif驱动程序就足够了。 [1]: https://dev59.com/ymMl5IYBdhLWcg3wTljY) - Ben Li
显示剩余2条评论

0
在Oracle Linux 6.9(与RHEL6 / CENTOS6相同)中,在aws放置组中运行iperf3在两个r2.xlarge实例之间,我只得到了接近2.5Gbps的速度。 ethtools报告vif但已安装ixgbevf驱动程序。如果SRIOV未设置为简单模式,则大多数实例似乎最多只能获得1Gbps。
[  4] local 10.11.5.61 port 52754 connected to 10.11.5.222 port 5201
[ ID] Interval           Transfer     Bandwidth       Retr  Cwnd
[  4]   0.00-1.00   sec   268 MBytes  2.25 Gbits/sec   56    559 KBytes
[  4]   1.00-2.00   sec   296 MBytes  2.48 Gbits/sec   54    629 KBytes
[  4]   2.00-3.00   sec   296 MBytes  2.48 Gbits/sec   61    551 KBytes
[  4]   3.00-4.00   sec   296 MBytes  2.48 Gbits/sec   62    454 KBytes
[  4]   4.00-5.00   sec   296 MBytes  2.48 Gbits/sec   55    551 KBytes
[  4]   5.00-6.00   sec   288 MBytes  2.42 Gbits/sec   50    454 KBytes
[  4]   6.00-7.00   sec   291 MBytes  2.44 Gbits/sec   55    559 KBytes
[  4]   7.00-8.00   sec   296 MBytes  2.48 Gbits/sec   55    507 KBytes
[  4]   8.00-9.00   sec   296 MBytes  2.48 Gbits/sec   60    472 KBytes
[  4]   9.00-10.00  sec   296 MBytes  2.48 Gbits/sec   59    559 KBytes
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval           Transfer     Bandwidth       Retr
[  4]   0.00-10.00  sec  2.85 GBytes  2.45 Gbits/sec  567             sender
[  4]   0.00-10.00  sec  2.85 GBytes  2.45 Gbits/sec                  receiver

请注意,即使在放置组中,不同族之间的速度也会变慢,因为它们可能需要放置在不同的机器上。

您还可以考虑添加ENA接口,以查看是否在m4和c4实例上获得更快的速度。此外,这也是新实例类型m5和c5唯一支持的网络。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接