December 9, 20241 yr I had a very time consuming experience to find the right SMB and network configuration to enable full SMB multichannel throughput for a multi network interface on the same subnet. Details below. Did anyone experience the same problem in a similar setup, and how to resolve it? Is there a know way to enable both interfaces to send smb back in unraid? Thanks setup - 8 port 2.5G switch - unraid server with 2 x 2.5G NICs, both connected to 2.5G switch - win10 desktop with 1 x 1G and 1 x 2.5G NICs, both connected to 2.5G switch - old synology NAS with 2 x 1G NICs, both connected to 2.5G switch test setup write directly to cachdisk share enabled drive 990 pro \\tower\cache \\192.168.1.2\cache \\192.168.1.3\cache old synology stats (for comparison of this setup) - NIC1 ip 192.168.1.2 - NIC2 ip 192.168.1.3 - send @ 230 MB/s - win 10 receives 2 tcp connections 115MB/s from 192.168.1.2, 115MB/s from 192.168.1.3 - receive @ 230 MB/s - win 10 sends 2 tcp connections 115MB/s from 192.168.1.2, 115MB/s from 192.168.1.3 As we can see here it is using proper multi channel setup by default, and able to aggregate data out over both nics This works out of the box on synology by just enabling multi channel and having multiple ips unraid stats (achieved before hacky fix) - NIC1 ip 192.168.1.4 - NIC2 ip 192.168.1.5 - send @ 280 MB/s, all data on unraid side sent over single interface eth0 - receive @ 360 MB/s - win 10 sends 245MB/s to 192.168.1.2, 115MB/s to 192.168.1.3 Looking on the unraid network I can see all data is sent over just 1 interface to the win10 desktop and capped at max speed of this interface, 280 MB/s After messing around for quite a while, I finally managed to achieve above one-way multichannel results (shown above) with various SMB settings: Enable SMB Multi Channel: Yes Enable NetBIOS: No extra samba configurations (not required I believe, but synology setup had this config) bind interfaces only = no win10 desktop network adapter configuration tried Interrupt Modulation setting enabled / disabled on both nics win10 desktop powershell admin commands Get-SmbConnection -> shows smb 3.1.1 is used Get-SmbClientNetworkInterface -> shows RSS Capable to true for both nics, I had to explicitely disable RSS because it would drop my read/write speeds back to 2xxMB/s over multi ip transfers, disable RSS for clients using commands Disable-NetAdapterRss -Name "Ethernet 2" and Disable-NetAdapterRss -Name "Ethernet 3" Get-SmbMultichannelConnection -IncludeNotSelected -> should show 2 records for unraid with selected "True" and respective client/server ips After hours of testing different settings, and comparing various route/gateway settings, I found a forum post on google: SMB Multichannel only one way, related to the exact same issue on a truenas setup It has to do with multiple network interfaces on a single subnet I was able to achieve full throughput for both send and receive by configuring a new subnet, while keeping my existing synology setup to work being: configure the 2nd interface to have a different subnet configure synology nic2 to 192.168.2.2/24 configure unraid nic2 to 192.168.2.4/24 configure win10 desktop nic2 to 192.168.2.4/24 downloads from unraid cache: uploads to unraid cache: Edited December 9, 20241 yr by hhhhh
December 12, 20241 yr Community Expert you may benefit from running/writing your own smb.conf to get better multichannel support. More to add other interface to the smb.conf to get the multichannel. Otherwise setting smb extra options [global] and add your other interfaces...
December 12, 20241 yr Community Expert By default unraid samba is bind to interface eth0/br0/bond 0 depending on network settings and tied to the eth0 ip address it gets. You may need to add the second and ip to the smb settings... bind interfaces only = yes interfaces = StaticIP/24 127.0.0.1 example: [global] # Restrict Samba to specific network interfaces bind interfaces only = yes # Specify network interfaces interfaces = eth0 eth1 lo
December 13, 20241 yr Author Thank you for your reply. As mentioned, I have already added a manual smb config bind interfaces only = no This settings will not restrict it to a single interfance and use all interfaces including for example the tailscale one. Which is why I was able to write at max speed, but not read at max speed from the unraid setup. It seems truenas has the same issue and demonstrated here https://www.truenas.com/community/threads/smb-multichannel-only-one-way.78658/ https://www.truenas.com/community/threads/multiple-network-interfaces-on-a-single-subnet.20204/ The comment states: In short, your Windows server can send to each IP - the networking behavior of FreeBSD will mean that FreeNAS "responds" from a single IP only. Therefore my post wondering if there is any way to achieve this on unraid, or better setting, other than the above setup of manually assigning a different subnet to each ip. Thanks
December 13, 20241 yr Community Expert kinda yes... it with advances samba and other performace tuning... You realy should have the bind to yes.. verify and double check your smb has theses options: testparm [global] server multi channel support = yes interfaces = 192.168.1.10 192.168.1.11 bind interfaces only = yes here are some example of advance smb comands *WARNIGN USE AT YOUR OWN RISK! usualy net opt and other comands are run to get the # used here... Enable Specific SMB Options for read improvment: aio read size = 1 aio write size = 1 read raw = yes write raw = yes min receivefile size = 16384 use sendfile = true socket options = TCP_NODELAY SO_RCVBUF=65536 SO_SNDBUF=65536 Double check and verify unraid network routes... --Ensure Proper Network Setup Use different subnets for each NIC if possible. Use static IPs to avoid routing issues. Verify no IP conflicts. Client os tuning as well lets asume windows: Windows Client Tuning On the Windows client: Check Get-SmbMultichannelConnection in PowerShell to see if multiple connections are established. Tailscale Exclusion Avoid using Tailscale in SMB Multichannel scenarios unless needed. Add a specific exclusion if required: interfaces = 192.168.1.10 192.168.1.11 bind interfaces only = yes *don't add its ip... without your smb .conf if you made other manul edits there not much i can sugest. its more reseach into the samba sockt options to tune for your network more in TCP options...
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.