Configuring SMB Multichannel Contraints to a Scale-Out File Server Cluster – Hyper-V and Virtual Machine Manager
With a Scale-Out File Server (SOFS) cluster using SMB Multichannel in Windows Server 2012 and Windows Server 2012 R2, in certain scenarios it may be necessary to restrict which networks can be used for the SMB 3.0 traffic. This can be done and managed with the handy PowerShell SMB Share Cmdlets (http://technet.microsoft.com/en-us/library/jj635726.aspx):
These are configured on the client and not the SOFS nodes and you are setting the contraint on the connection to the Client Access Point (CAP) of the SOFS role in the Failover Cluster, rather than each SOFS node individually. It will also only affect network traffic for connections to this Client Access Point, so other shares or SOFS clusters will behave as before and need to be configured separately if the that network traffic is required to be constrained.
It’s important to note that when using System Center Virtual Machine Manager (VMM) to deploy VMs to this Scale-Out File Server that it uses the Fully Qualified Domain Name (FQDN) of the Client Access Point, rather than the NetBIOS name that you might use manually and these are treated separately. Therefore, as you will see below, we have to add two entries when configuring the SMB Multichannes constraints.
As an example, I have a Failover Cluster configured with a Scale-Out File Server role called LAB12R2-SOFSCAP and two networks (on different subnets of course) for SMB Multichannel. I have two SOFS nodes, LAB12R2-SOFS01 and LAB12R2-SOFS02, and one Hyper-V host, LAB12R2-HYPV01. These screenshots are from the configuration in Failover Cluster Manager:
On my Hyper-V host, I also have two storage networks and a Production network to correspond to the SOFS nodes. If the networks adapters are all identical on the Hyper-V host, it will use all three of these for SMB Multichannel as it grabs whatever meets the requirements. In order to restrict this to just the two storage networks, on the Hyper-V host (and every Hyper-V host in the cluster that this is required), run the following in PowerShell (as an Administrator):
- Get-NetAdapterNote down the number(s) from the ifIndex column of the network adapter(s) you want to use.
- New-SmbMultichannelConstraint -ServerName LAB12R2-SOFSCAP -InterfaceIndex 29,32
New-SmbMultichannelConstraint -ServerName LAB12R2-SOFSCAP.lab.local -InterfaceIndex 29,32
where LAB12R2-SOFSCAP is the name of the Client Access Point for the Scale-Out File Server role, and 29,32 are each interface index I want to use (to add more just separate with additional commas)
If you not longer need these constraints or make a mistake and want to reset the configuration, run the following:
- Get-SmbMultichannelConstraint | Remove-SmbMultichannelConstraint