POST

SMB 多通道:两块网卡把局域网带宽叠起来

链路聚合叠不了单条传输的速度,SMB 多通道可以。前提是两边都支持,而且网口够用。

很多人做了链路聚合,发现拷贝速度还是千兆——因为聚合是按流分配的,一条 TCP 连接只走一个物理口。

想让单条 SMB 传输跑出双倍带宽,得用 SMB 多通道(SMB Multichannel)。

什么原理

SMB3 支持一条会话里开多条 TCP 连接,分别走不同的网卡。所以两块千兆网卡可以合起来跑接近 2Gbps,两块 2.5G 网卡接近 5Gbps。

和聚合的区别:

  • 聚合(bonding):多个口对外是一个逻辑接口、一个 IP,多条连接分散到不同口,单条连接不加速;
  • 多通道:多个口各有自己的 IP,同一条 SMB 会话同时用多个口,单条传输也加速。

前提条件

  • 服务端(飞牛)和客户端(Windows/Mac)都有两个以上网口;
  • 两个口在同一个子网(多数实现要求同网段),或者支持 RSS/RDMA 的配置;
  • 交换机侧不能把两个口做成 LACP 聚合(会和多通道冲突);
  • SMB 版本至少是 SMB3。

注意最后一条:如果交换机上做了链路聚合,多通道用不了,二选一。

飞牛侧怎么配

两个网口各配一个同网段的静态 IP,都接在同一台交换机上:

网口1: 192.168.1.100/24
网口2: 192.168.1.101/24

不要做 bonding,不要配 LACP。默认网关只留一个。

Windows 侧

  • 客户端也要有两个网口,接入同一交换机;
  • 两个网口都在 192.168.1.x;
  • 用 \\192.168.1.100\共享 访问;
  • 在「服务器管理器 → 远程访问」或者资源监视器里能看到多条 SMB 连接。

PowerShell 查看:

Get-SmbMultichannelConnection

能看到多条连接就算生效了。

效果预期

  • 单条大文件拷贝:接近两个口的带宽之和(有损耗);
  • 多个客户端同时访问:本来就会分散,收益不明显;
  • 小文件:受 IOPS 限制,看不出差别;
  • 机械盘:可能成为瓶颈,先确认存储能跑多快。

常见的坑

交换机做了聚合:和 SMB 多通道冲突,二选一。

两个口不同网段:多数实现要求同子网,跨网段不生效。

客户端只有一个网口:只有服务端多通道,客户端侧没有,用不上。

以为能翻倍:实际受存储、CPU、协议开销限制,通常能到理论值的七八成。

无线也用:Wi-Fi 和多通道基本不兼容,别试。

值不值得

  • 家里只有千兆、偶尔传文件:不值得折腾;
  • 经常在 NAS 和工作站之间倒大文件:值得,收益直接;
  • 多台设备同时读写:聚合或者分开走更合适。

小结

SMB 多通道解决的是单条传输跑不满多网卡的问题,聚合解决的是多客户端分流的问题。

先想清楚你要哪一种,再决定配哪个。

👁 - 次浏览

留言

← 返回首页