具有容错功能的开关辅助负载平衡

网络工程 转变 带宽 IEEE-802.1ax
2021-07-20 20:30:35

在学习 Cisco 和 Microsoft 认证期间,我阅读了很多关于 NIC Teaming、Etherchannels 和类似内容的信息。

我知道您可以在 MS Windows Server 中进行静态组合或在 Cisco 中创建端口通道或使用动态协议,例如 LACP 和 PAgP。但它们都提供使用源或目标 MAC 地址或 IP 地址的负载平衡,组合异或或类似的东西,对吧?如果您有从一台服务器到另一台服务器的长文件传输(例如,将 4 GigE 绑定在一起以将其增加到 4 Gbps),似乎没有办法增加您的实际吞吐量。

所以我想知道这是真的吗?有没有办法使用绑定接口的所有带宽?我从几个来源听说有像 SLB(带容错的交换机辅助负载平衡)之类的东西,它支持完全负载平衡并允许使用全部带宽(例如我的示例中在一个事务中两台服务器之间的 4 Gbps)。

我听到了很多关于这个的矛盾的事情,我完全糊涂了。帮帮我吧伙计们!

2个回答

在第 2 层,所有负载平衡充其量都由源 MAC 和目标 MAC 的 XOR 或散列完成,如果幸运的话,它甚至可以读入第 3 层并对数据进行散列。

然而,在第 3 层,我们基本上是在谈论多个网关(因此,实际上,两个物理链接,每个链接都有一个唯一的下一跳),如果您准备好,可以最大化链接的带宽 -数据包平衡。

在我继续之前,每个数据包的平衡通常是一件坏事,因为它会导致无序的数据包传递,这对于 TCP 连接来说尤其糟糕,但这当然归结为实现和大多数现代堆栈可以相对较好地容忍这种情况。

为了进行按数据包的平衡,显然一个要求是源和目标 IP 地址根本不在具有多条路径的设备的链路上,因为它们需要路由才能实现平衡。可以通过路由协议(例如 BGP、OSPF、ISIS、RIP 或 BFD 或简单的链路状态检测)实现冗余。

最后,当然还有传输层解决方案——像 SCTP 这样的协议支持连接到多个端点,而 TCP 已经在制定草案,将添加选项来做类似的事情。或者...您可以让您的应用程序打开多个套接字。

首先,让我们对您的系统性能保持现实;您必须确保您的系统能够始终如一地将您要求的带宽从磁盘转移到相关 NIC(请参阅答案底部)...

只要您愿意使用 FTP 进行文件传输,您可以使用支持通过 FTPREST命令对文件进行分段的客户端进行下载,以及使用支持 FTPCOMB命令进行分段上传的服务器通过使用支持分段的 FTP 客户端,您可以在每次文件传输时打开多个 FTP 会话,并利用许多交换机供应商支持的第 4 层 LACP 散列......无论您是绑定 1GE 还是 10GE 链接,分段传输都可以提高您的性能跨LACP。

CuteFTP for Windows 支持 REST 传输Filezilla 支持 COMB 命令这些只是您可以使用的几个选项中的两个。


系统限制

我不知道你有什么样的磁盘,但通常单系统限制是磁盘 I/O……这里有几个有趣的点……从控制器的角度来看……

  • SATA(修订版 1)最大 xfer:8b/10b 开销后为 1.2Gbps
  • SATA(修订版 2)最大 xfer:8b/10b 开销后为 2.4Gbps
  • SATA(修订版 3)最大 xfer:8b/10b 开销后为 4.8Gbps
  • 4G 光纤通道最大 xfer:3.56Gbps

另一个可能的限制是磁盘速度/主轴/臂...除非您使用的是 SSD。

最后,您需要具有足够容量的 NIC 主板...检查您的 PCIe NIC 上有多少通道。我假设您在 LAN 上并且数据包丢失/拥塞不会成为问题。如果您发现 CPU 是您传输的限制因素,您可能想要打开巨无霸。