谈谈 Linux 与 LACP 链路聚合,简单举例讲一下 Linux 是如何拆东墙补西墙,造成用户困扰的

2020-04-03 15:03:06 +08:00
 hjc4869

https://blog.hjc.im/linux-and-lacp-lag.html

5236 次点击
所在节点    Linux
26 条回复
wysnylc
2020-04-03 15:11:44 +08:00
先把博客优化好再来吧
hjc4869
2020-04-03 15:13:07 +08:00
@wysnylc 博客在 Vultr 美国东部,没啥好优化的,反正大陆地区肯定打不开。
alpacabrother
2020-04-03 15:13:57 +08:00
@hjc4869 好像能打开……
putaozhenhaochi
2020-04-03 15:18:31 +08:00
能打开
hjc4869
2020-04-03 15:33:15 +08:00
补充图片版
//i.v2ex.co/5J53dgr2.jpeg
Lax
2020-04-03 15:58:20 +08:00
分析的不错,可以写邮件去邮件列表骂
xingzw
2020-04-03 16:01:28 +08:00
写的不错!
stcheng
2020-04-03 16:04:02 +08:00
LACP drIver 不难修改 可以试着打一个 local 补丁做一个 workaround 试试
AFuture
2020-04-03 17:23:58 +08:00
大佬啊!
wtks1
2020-04-03 17:26:18 +08:00
是能打开的
minami
2020-04-03 17:46:03 +08:00
看完了,所以就是 Google 开发人员天才操作的锅了(#°Д°)
Unclev21x
2020-04-03 18:11:54 +08:00
虽然看的迷迷糊糊,不是很懂,但也看明白了楼主意思,确实很用心,给楼主点赞。
momocraft
2020-04-03 18:16:49 +08:00
好有趣
HEROic
2020-04-03 19:08:47 +08:00
为啥不试试 bond0 或者 bond6 配置呢。。
ryncsn
2020-04-03 19:35:51 +08:00
不太了解 LACP,不过比较好奇为什么这么久这个 bug 才有人发现...
如果第一个引入绑定到偶数端的优化可有可无的话,为什么没人提出将其作为一个可选参数?这样是否需要这个优化用户可以自己决定,比如只有用户确认自己所有设备都是支持这个优化没有坑的时候再开启。
hjc4869
2020-04-03 19:56:07 +08:00
@HEROic balance-rr 会导致数据包出现一些乱序,TCP 不喜欢这种。alb 模式只能对不同 host 进行负载均衡,对同一 host 上的不同连接无法均衡,并且我的 NAS 网卡不支持这种模式。
@ryncsn 我个人猜测关注两台 Linux 机器多连接互相通讯时的总带宽大小的客户可能比较少,可能双口网卡服务器的客户更多的是关注多 VM 之类的负载均衡的性能,或者是很多个 client 的并发性能,也就是使用 layer2/3 的 hash 或者干脆不用 LACP 的人大概比较多。
wsy2220
2020-04-03 21:25:21 +08:00
这个问题本质是 2 层设备 too smart, 依赖 4 层软件的行为。做了破坏抽象的事就要承受破坏抽象的后果
realpg
2020-04-03 22:20:00 +08:00
@ryncsn #15
因为这个根本就不算是 bug 算是一个小问题
而且只有楼主这种实际上是比较不普遍的且不典型的场景才有这个问题
hjc4869
2020-04-04 12:31:48 +08:00
@realpg 服务器与服务器之间的大带宽通讯也算是一个比较现实的需求了,如果是用 Windows 做 NAS 还会自动开启 SMB multil channel,自动创建多个连接在多个链路之间负载均衡。连微软这种在 server 技术上相对比较保守的企业都有实现相关的功能,我觉得这个场景不能算不普遍不典型。
realpg
2020-04-04 12:58:26 +08:00
@hjc4869 #19
其实就是不普遍不典型。
因为你能看到的需求和场合太有限。

说的不是 LACP 技术,这只是链路聚合的一部分。
你遇到的这个问题是链路聚合的普遍问题,不只是 LACP 和 linux 内核网络处理
我确信你说的完全正确,而且是你所在场合里所遇到的,你感觉会很多的问题

你有没有深入想过,为什么只有 LINUX 的处理机制才会这么魔改导致你更麻烦的问题,而所有的网络设备都不处理这种问题?因为只有你站在 linux 简单内部模型这一端,这才是个像你认为的那样的比例很大的问题,他们才会在不能碰标准的情况下自己魔改优化自己的小问题


而做网络结构设计,链路聚合( PC ET LA )都不是你这么用的,也不是考虑你这种需求而做的。不会为了适应你这种乐观估计连百万分之一都不够的需求场景。

喝了点酒,有点迷糊,表述不太清晰,可能没太说明白…… 要不等我清醒了 TG 你加我一对一我给你多说说。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/659035

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX