某些虚拟机系统下的 MTU 较大

某些虚拟机系统下的 MTU 较大

我很确定我们不是唯一使用巨型帧(~9k)的网站,对吧?那么,对于那些也这样做的人,你们在虚拟化方面做了什么?即:

  • Xen 不支持桥接接口上超过 1500 字节的数据包。为每个 VM 分配一个真实接口可能可行,但对我来说行不通。
  • 如果我摆弄源代码,KVM 就会这样做。否则我最多可以得到 4k 个数据包。摆弄源代码并不是我真正想做的事情(再见上游补丁,无需重建!)
  • VMWare 也没有提到这一点。他们的 VSphere 定价让我很失望,但也许我可以使用 ESX(,i)?

我没有使用 iSCSI 或 NFS 的巨型数据包。我确实在节点之间移动大量数据,提高 MTU 有助于提高速度。我的平台是 CentOS 5.x,我更愿意继续使用它,但我想还有其他选择吗?你告诉我!

有人在做一些我没有想到的聪明事吗?

[编辑]

我为什么要这样做?好吧,我现有的机器都使用 9000 的 MTU,而这种情况发生的地方是我们的集群层。如果我添加一台不支持巨型数据包的新机器,它就无法加入集群,无法正常工作。因此,虽然我很想重新审视“我们真的需要巨型数据包吗?”这个问题,但这是一个比将一台新机器上线更大的项目。新机器能够与集群通信。目前这意味着在裸机上部署,这很糟糕。

答案1

对于 ESXi 4 标准虚拟交换机,您必须从 CLI 执行此操作。如果您使用(不支持的)伪控制台模式或(支持的)VMA,则相关命令为:

esxcfg-vswitch -m 9000 vSwitch0

将 vSwitch0 替换为相关的虚拟交换机 ID,并根据需要对需要为 9K 巨型帧启用的所有 vSwitch 重复此操作。

在使用分布式虚拟交换机的更大(大得多)的环境中,您可以从 vSphere Client GUI 更改 MTU。

答案2

根据我的经验,巨型帧真的离可用还差得很远。卸载技术很乱,尤其是 b-com 提供的东西,交换机无法很好地支持它。

尤其是对于虚拟机,我会坚持使用正常的 MTU 大小,并通过使用模式 4 绑定或切换到 10G 甚至无限带宽来提高速度。

话虽如此,据我所知,kvm 的 virtio_net 驱动程序的速度并没有真正的限制,所以尽管是 1G,但只要有带宽,它们就可以轻松超越。

答案3

这不是一个直接的答案,但如果您在多个节点之间移动大量数据,您是否考虑过 Infiniband?对于这种事情它非常有用。

相关内容