虚拟交换机可根据每个数据包的源和目标 IP 地址选择虚拟机的上行链路。
要计算虚拟机的上行链路,虚拟交换机会获取数据包中源和目标 IP 地址的最后一个八位字节并对其执行 XOR 运算,然后根据网卡组中的上行链路数将所得的结果用于另一个计算。结果是一个介于 0 和组中上行链路数减一之间的数字。例如,如果网卡组有四个上行链路,则结果是一个介于 0 和 3 之间的数字,因为每个数字与组中的一个网卡相关联。对于非 IP 数据包,虚拟交换机会从 IP 地址所在的帧或数据包中提取两个 32 位二进制值。
任何虚拟机都可根据源和目标 IP 地址使用网卡组中的任何上行链路。因此,每台虚拟机都可以使用网卡组中任何上行链路的带宽。如果虚拟机在包含大量独立虚拟机的环境中运行,则 IP 哈希算法可在组中的网卡之间均匀地分布流量。当虚拟机与多个目标 IP 地址通信时,虚拟交换机可为每个目标 IP 生成不同的哈希。因此,数据包可以使用虚拟交换机上的不同上行链路,从而可能实现更高的吞吐量。
但是,如果环境中包含的 IP 地址较少,则虚拟交换机可能会始终通过组中的一个上行链路传递流量。例如,如果一个应用程序服务器访问一个数据库服务器,则虚拟交换机会始终计算同一个上行链路,因为只存在一个源-目标对。
物理交换机配置
要确保 IP 哈希负载平衡运行正常,必须在物理交换机上配置以太通道。以太通道可以将多个网络适配器合并到单条逻辑链路中。如果将多个端口绑定到一个以太通道,则每次物理交换机接收不同端口上同一虚拟机 MAC 地址发出的数据包时,该交换机会正确更新其内容可寻址内存 (CAM) 表。
例如,如果物理交换机在端口 01 和 02 上收到 MAC 地址 A 发出的数据包,则该交换机会在其 CAM 表中创建 01-A 和 02-A 条目。因