我已经阅读了内核文档的bonding.txt文件,它清楚地说明了负载平衡,但是balance-alb和balance-tlb真的具有容错功能吗?
答案1
绑定模式 5 (balance-tlb) 的工作原理是查看绑定中的所有设备,并发送当前流量负载最少的从属设备。流量仅由一个从属设备(“主从属设备”)接收。如果某个从属设备丢失,则不会考虑将该从属设备用于传输,因此此模式具有容错能力。
绑定模式 6 (balance-alb) 的工作原理与上述相同,但传入的 ARP 请求会被绑定驱动程序拦截,并且绑定驱动程序会生成 ARP 回复,从而诱使外部主机将其流量发送到其他绑定从属设备之一,而不是主从属设备。如果同一广播域中的许多主机都与绑定设备联系,则流量应该大致均匀地平衡到所有从属设备中。
如果在模式 6 中从属丢失,则远程主机可能需要一些时间来使其 ARP 表条目超时并发送新的 ARP 请求。TCP 或 SCTP 重传倾向于相当快地导致 ARP 请求,但 UDP 数据报则不会,并且将依赖于通常的 ARP 表刷新。因此模式 6是具有容错能力,但是根据所使用的第 4 层协议,从属丢失的收敛可能需要一些时间。
如果您担心快速容错,请考虑使用模式 4(802.3ad 又名 LACP),它可以协商绑定和交换机之间的链路聚合,并不断更新聚合伙伴之间的链路状态。模式 4 还具有可配置的负载平衡哈希,因此与模式 5 或模式 6 相比,更适合按顺序交付 TCP 流。
如果将此绑定桥接到虚拟机,则您无法使用模式 5 或模式 6,因为在某些情况下这两种模式都会出现 MAC 重写行为,而模式 6 的 ARP 拦截行为更是如此。
所有模式 0 到 4 都适用于 VM 桥接,但 0(循环)和 3(广播)可能不适合大多数工作负载,绝对不适合 TCP 和 SCTP 流。所有模式 0 到 4 都需要交换机配置,模式 1(主动备份)除外。