balance-alb和balance-tlb是否支持容错?

我已经阅读了内核文档的bonding.txt文件,它很清楚负载平衡,但是balance-alb和balance-tlb真的容错吗?

绑定模式5(balance-tlb)通过查看绑定中的所有设备来工作,并发送具有最小stream量负载的从设备。 stream量只能由一个从站(“主从站”)接收。 如果从站丢失,该从站不考虑传输,所以这个模式是容错的。

绑定模式6(balance-alb)按照上述方式工作,除了传入的ARP请求被绑定驱动程序拦截,并且绑定驱动程序生成ARP应答,以便外部主机被诱骗将其通信发送到其他绑定从属设备之一而不是主要奴隶。 如果同一个广播域中的许多主机联系了绑定,那么stream量应该大致均衡地平衡到所有的从属设备上。

如果在模式6中从站丢失,则远程主机可能需要一些时间才能超时ARP表项并发送新的ARP请求。 一个TCP或者SCTP重传可以很快导入ARP请求,但是一个UDP数据报不会,并且依靠通常的ARP表刷新。 所以模式6 容错的,但是根据所使用的第4层协议,从站丢失的收敛可能需要一些时间。

如果您担心快速容错,请考虑使用模式4(802.3ad aka LACP)协商绑定与交换机之间的链路聚合,并不断更新聚合伙伴之间的链路状态。 模式4还具有可configuration的负载平衡散列,因此与模式5或模式6相比,对于TCPstream的按序传送更好。

如果将这个绑定连接到虚拟机上,那么在某些情况下,由于这两种模式的MAC重写行为,您将无法使用模式5或模式6,而由于模式6的ARP拦截行为,您将无法使用这两种模式。

所有模式0到4都可以与VM桥一起使用,但0(循环)和3(广播)可能不适用于大多数工作负载,绝对不适用于TCP和SCTPstream。 除模式1(主动备份)之外,所有模式0到4都需要交换机configuration。