Setting Up SMB Multichannel
2 minute read.
When creating a share, do not attempt to set up the root or pool-level dataset for the share. Instead, create a new dataset under the pool-level dataset for the share. Setting up a share using the root dataset leads to storage configuration issues.
SMB multichannel allows servers to use multiple network connections simultaneously by combining the bandwidth of several network interface cards (NICs) for better performance.
SMB multichannel does not function if you combine NICs into a LAGG.
Do not configure multiple SMB multichannel interfaces on the same subnet. To ensure reliable multichannel performance, TrueNAS recommends placing each interface on a different subnet.
If interfaces share a subnet, the system could fail to initialize multichannel, experience several connectivity issues, and accept inbound traffic inconsistently. To avoid these issues, assign each NIC a unique IP address on a different subnet and avoid bridging interfaces used for multichannel.
If you already have clients connected to SMB shares, disconnect them before activating multichannel.
- Go to System > Services and click the edit icon for the SMB service.
- Click Advanced Settings, then enable Multichannel.
- Save and restart the SMB service, then reconnect all clients to their SMB Shares.
After you connect a client to their SMB share, open Powershell as an administrator on a client, then enter Get-SmbMultichannelConnection
. The terminal should list multiple server IPs.
# View active SMB multichannel connections
Get‑SmbMultichannelConnection
# Sample output:
# Server Name Selected Client IP Server IP Client Interface Index Server
# ------------- ----------- --------- --------- ------------------------- ------
# 192.168.10.2 True 192.168.10.10 192.168.10.2 5 2
# 192.168.20.2 True 192.168.20.10 192.168.20.2 16 5
You can also enter Get-SmbMultichannelConnection | ConvertTo-Json
and ensure CurrentChannels
is more than 1.
# View details as JSON
Get-SmbMultichannelConnection | ConvertTo-Json
# Sample output:
[
{
"CimClass": {
"CimSuperClassName": null,
"CimClass": null,
"CimClassProperties": "...",
"CimClassQualifiers": "...",
"CimClassMethods": "...",
"CimSystemProperties": "Microsoft.Management.Infrastructure.CimSystemProperties"
},
"CimInstanceProperties": [
{
"ClientInterfaceFriendlyName": "Ethernet 3",
"ClientInterfaceIndex": 5,
"ClientIpAddress": "10.230.46.64",
"ClientLinkSpeed": 10000000000,
"ClientRdmaCapable": false,
"ClientRSSCapable": false,
"CurrentChannels": 2
}
]
}
]