VMware 以太网连接到两个链接在一起的不同交换机 - 会导致什么结果?

网络工程 以太网 负载均衡 vmware
2022-02-24 16:39:48

我有一个客户端,过去有人在服务器上设置了两个 NIC,以便在 vSwitch0 上处于活动状态。vSwitch0 为基于原始虚拟端口的路由设置了负载平衡。交换机是 D-Link DGS-3120 系列(他们的企业级交换机)。交换机不是堆叠的,而是通过以太网端口链接的。生成树被禁用。

来宾服务器的性能有点差 - 当我远程连接到它们进行远程控制时,我会处理长达 45 秒的暂停和断开连接(使用 RMM 工具)。我可以毫无问题地连接到此客户端站点上的物理机。

最终用户也报告了问题——他们在白天经常失去与财务应用程序的连接。

我将一台访客服务器移到了具有单个 NIC 的新 VMware 服务器上,它的性能要好得多。较旧的服务器有大量的计算和 RAM,所以我想知道由于负载平衡,物理交换机上是否存在一些 MAC 表问题。在阅读https://kb.vmware.com/s/article/2047822之前,我一直关注生成树,其中指出:

Note: VMware vSwitches (Standard and Distributed) cannot form loops as there is no way to join two virtual switches together at layer 2 of the OSI layer. As such, no Spanning Tree Protocol functionality has been incorporated into the virtual switches.

我试图在 CLI 上显示配置,但交换机并没有放弃它。sh 技术支持工作,转储到日志中。一个巨大的。仔细查看,与每个端口配置相关的部分与 Cisco/Dell/HP 没有什么相似之处:

 MAC Base information : dev_num = 1, phy port = 19, medium = copper

  ====================================

 State:Enable

 Speed:1000

 Auto negotiation:Enable

 Duplex:FULL Duplex

 Mdix:fiber

 Flow control:Disable

  ====================================

  Dump normal register vale: 
  ...

我确实验证了交换机上没有负载平衡设置。

我有点不知所措,为什么服务器之间存在网络 I/O 性能差异,带有单个连接 NIC 的服务器优于带有两个连接 NIC 的服务器。

1个回答

ESXi 的基于原始虚拟端口 ID 的路由是使用大量虚拟机实现稍微均匀的负载分配的好方法 - 虚拟端口 ID 或多或少是一个随机值,将虚拟机与其中一个物理 NIC 半永久关联(我认为主机迁移时 ID 会发生变化)。不要在上行链路交换机上配置任何特殊的东西,尤其是没有静态 LAG 中继

除非您另外配置,否则标准 NIC 组合将提供自动故障转移 - 万一链路发生故障,该链路上的所有 VM 都会回退到其余链路。应通知交换机()更新其 MAC 表。

如果您只有几个正在运行的虚拟机并且不太理想的“随机”带宽分配,您可以选择设置多个端口组,每个端口组都有一个专用的 NIC(并且只能故障转移到其他 NIC),然后手动将虚拟机连接到其中一个团体。

我看到的所有性能问题、地址抖动等情况都是由于物理交换机配置错误(阅读:LAG)造成的。检查日志中是否存在任何抖动以及 MAC 表中的最新关联。仔细检查主机链路和物理交换机互连是否存在链路问题。还要检查 vSwitch 和端口组是否有任何“有趣”的设置,例如带宽限制。如果不确定,只需使用您的测试设置创建一个新的端口组并将虚拟机重新附加到它。

不过,没有理由在物理交换机上禁用 RSTP/MSTP。vSwitch 不参与其中,但不需要参与,因为它永远不会导致循环。STP 会保护您免受物理端口上的环路的影响。

ARP在这里应该不是问题。ARP 将 IP 地址与 MAC 地址相关联 - 这些关联不会改变,除非您在 VM 端进行了一些 L3 负载平衡或故障转移设置(并且它无法正常工作)。

如果您不确定这些开关是如何设置的,您可以转储它们的配置 ( show config) 并将它们添加(清理)到您的问题中。

编辑

主机网卡端口也可能混乱。确保它们设置为“自动协商”并按预期显示(例如1000 Mb,全双工)。在 D-Link 交换机上,检查相同的端口状态和端口错误计数器以排除任何电缆错误。此外,检查有趣的巨型帧大小设置(物理交换机、vSwitch、虚拟机,甚至客户端)。