在提供虚拟 IP 的单台机器上对多个 NIC 进行负载平衡

在提供虚拟 IP 的单台机器上对多个 NIC 进行负载平衡

我继承了一个网络设置,其中 NFS/Samba Linux RAID 服务器(“Ubuntu 14.04.5 LTS”)通过一个 NIC 提供所有服务。因此,1Gb 网络带宽已饱和。

不幸的是,整个子网都通过其直接 IP 连接到该服务器。

我正在尝试寻找一种负载平衡解决方案,其中我可以将当​​前服务器 IP 地址重新分配给虚拟服务器 IP,并让到该虚拟 IP 的流量在位于同一(实际 NFS)服务器内的两个或多个 NIC 之间进行负载平衡。

目前,有一个传统的交换机连接所有传入的以太网电缆,并且只有一根电缆连接到服务器的 NIC。

到目前为止我发现的唯一解决方案是肯普 LoadMaster LM-X3硬件解决方案。

我也研究过 LACP,但我不清楚它是否支持虚拟 IP。它似乎只聚合传出的数据包(或者仍然需要多个 NIC 拥有单独的 IP)。不过,也许对于这种用途来说 - 如果只对传出的数据包进行负载平衡就没问题了。

还有其他更好的解决方案吗?

答案1

服务器运行的是哪种 Linux?您认为网络协作可以工作吗?它是接口绑定的更新版本。通过协作,您可以将多个接口加入到主动/主动、主动/备份或循环架构的团队中。团队将全部被视为相同的 L2 接口,并且 vIP 属于团队(父级)虚拟接口。协作允许多个不同的“运行器”(又名方法):

播送-- 简单的运行器,指挥团队设备通过所有端口传输数据包。

循环赛-- 简单的运行器,指挥团队设备以循环方式传输数据包。

主动备份——监视链接变化并选择用于数据传输的活动端口。

(*)负载均衡-- 为了实现被动负载平衡,runner 仅设置 BPF 哈希函数,该函数将确定数据包传输的端口。为了实现主动负载平衡,runner 在可用端口之间移动哈希,以达到完美平衡。

连接蛋白-- 实现 802.3ad LACP 协议。可以使用与负载平衡运行器相同的 Tx 端口选择可能性。

根据您的要求,我认为负载平衡运行器可以工作。这是团队合作的良好指南:https://www.rootusers.com/how-to-configure-network-teaming-in-linux/

希望能帮助到你

相关内容