群晖开启 SMB3 多通道叠加网卡速度

By | 2018年12月17日

不少的群晖机型都带有2个甚至更多的网卡,为了突破 1Gbps 的局域网连接速度,我们以往需要在交换机、群晖和 PC 端配置链路聚合(link aggregation)。不仅配置较为繁琐,而且额外增加了 PC 端和交换机的成本,实际普及率并不高。而自 DSM 6.1-15047 之后,群晖为我们带来了 SMB3 多通道支持,使得我们能够以及其低廉的成本享受多网卡叠加带来的速度提升。

要使用 SMB3.0 的多通道来叠加网卡速度,需要以下几个条件:

  • 群晖带有2个或以上的相同线速的网卡,并安装 DSM 6.1-15047 及更高版本
  • 普通交换机
  • PC 端带有2个或以上的相同线速的网卡,并安装 Windows 8/Server 2012及更高版本 OS

由于群晖目前没有开放相关设置项,所以我们部分操作需要通过 SSH 来完成:

1.打开控制面板,依次进入:文件服务-高级设置,将最大协议改为 SMB3,点击应用

2.进入:终端机和 SNMP,勾选启动 SSH 功能,点击应用

3.使用 PUTTY 等软件登入群晖 SSH,输入 sudo -i 临时提权,并输入密码回车。待命令提示符由 $ 变为 # 后,执行:vi /etc/samba/smb.conf

4.在文件末尾添加以下内容,完成后按 ESC,并输入 :wq 保存退出

  • server multi channel support = yes
  • aio read size = 1
  • aio write size = 1

5.重启群晖,PC 和交换机,所有设置完成。

在重启完成后,PC 端使用主机名(如\\homeshare)或 ip 进入一次共享,即可自动启用 SMB3 多通道了。另外也可以用管理员权限运行 PowerShell ,执行: Get-SmbMultichannelConnection 确认。

如上所示,目前 PC 已连接到服务器 192.168.199.189,并且分别通过本地 ip:192.168.199.99 192.168.199.100 与远端 ip: 192.168.199.188 192.168.199.189 建立了 SMB3 多通道连接。

通过复制文件也可以看出,两张网卡均有流量,并且总和超过了 1Gbps 。

基于 RTL8111 的 PCIE x1 网卡目前均价不过20-30块,并且对于交换机并无特殊限制,故整套解决方案成本是非常低的。除了PCIE 网卡之外,也可以使用 USB 网卡,但需要确保所有网卡线速一致,才能够启用 SMB3 多通道。

12 thoughts on “群晖开启 SMB3 多通道叠加网卡速度

    1. reizhi Post author

      这个和网络设备无关,只要求群晖和电脑在同一个网段就可以了,并且你有足够的网口

      Reply
      1. 梁歌

        你好,大神,我最后修改完保存退出时报错,是什么原因

        Reply
    1. reizhi Post author

      链路聚合是硬件层面的,没有必要再手动开smb3,但是开了也不影响。

      Reply
  1. Coolstranger

    我的情况是这样的,群晖918有两个网口,电脑主板有一个网口+一个无线网卡。
    由于路由器网口不足,我的接线情况比较奇葩:
    1、群晖的一个网口A连在路由器的一个lan口上;
    2、电脑通过wifi连接到路由上;
    此时,路由、群晖、电脑在同一个网段一 192.168.31.0/24下
    3、最后,电脑唯一一个网口和群晖网口B直连;
    群晖网口B和电脑网口在另一个网段二 192.168.32.0/24下
    所以两条通道是这样的:
    网段一: 群晖网口A---(有线)---路由----(wifi)-----电脑
    网段二: 群晖网口B---(有线)---电脑
    此时电脑ping群晖主机名,有时可以解析到网段一的ip,有时是网段二的ip
    smb3多通道失败
    如果smb映射的时候分开两个ip,映射两个磁盘,分别读取文件,有时可以同时跑满有线和无线网卡,有时又只能跑一个
    甚至更奇葩的是使用群晖网口A对应ip(网段一)挂载的的磁盘,有时候传输数据时走的是群晖网口B直连(网段二)的有线网卡,相反的情况也有发生。。。

    Reply
    1. reizhi Post author

      你可能没有仔细看文章,smb3 multichannel 要求所有网卡速率一致,无线+有线是不行的。不在同一网段也不行,建议你改用/22

      Reply
  2. 橙子

    现在的新版本,已经不需要ssh添加命令了,我看自带就有那条命令。
    还有个问题。我nas到电脑经过了2个多个交换机。这样是不是需要把交换机之间设置端口汇聚?
    还有我测试了用一个交换机。nas和电脑链接到同一台交换机,总是不对,输入那个命令报错。交换机是二层交换机,nas是918+,pc是双口千兆win10。

    Reply
    1. reizhi Post author

      多层交换机需要汇聚,或者2.5G以上的交换机
      不知道你说的报错是哪个命令

      Reply

发表评论

电子邮件地址不会被公开。 必填项已用*标注

滑动到最右以进行验证 *

使用虚假或一次性邮箱提交留言将不会获得来自博主的回复