Storage Protocols
The Server Message Block (SMB) protocol is a network file sharing protocol implemented in Microsoft Windows. The set of message packets that defines a particular version of the protocol is called a dialect.
The Microsoft SMB protocol is a client-server implementation and consists of a set of data packets, each containing a request sent by the client or a response sent by the server.
SMB protocol is used on top of the TCP/IP protocol or other network protocols. Using the SMB protocol allows applications to access files or other resources on a remote server, to read, create, and update them. In addition, it enables communication with any server program that is set up to receive an SMB client request.
System Requirements
The following are hardware and software prerequisites:
Two or more machines running Windows Server 2012 and above
One or more Mellanox ConnectX®-3, or ConnectX®-3 Pro adapters for each server
One or more Mellanox InfiniBand switches
Two or more QSFP cables required for InfiniBand
Verifying Network Adapter Configuration
Use the following PowerShell cmdlets to verify Network Direct is globally enabled and that you have NICs with the RDMA capability.
Run on both the SMB server and the SMB client.
PS $ Get-NetOffloadGlobalSetting | Select NetworkDirect
PS $ Get-NetAdapterRDMA
PS $ Get-NetAdapterHardwareInfo
Verifying SMB Configuration
Use the following PowerShell cmdlets to verify SMB Multichannel is enabled, confirm the adapters are recognized by SMB and that their RDMA capability is properly identified.
On the SMB client, run the following PowerShell cmdlets:
PS $ Get-SmbClientConfiguration | Select EnableMultichannel
PS $ Get-SmbClientNetworkInterface
On the SMB server, run the following PowerShell cmdlets:
PS $ Get-SmbServerConfiguration | Select EnableMultichannel
PS $ Get-SmbServerNetworkInterface
PS $ netstat.exe -xan | ? {$_ -match "445"
}
Note: The NETSTAT command confirms if the File Server is listening on the RDMA interfaces.
Verifying SMB Connection
To verify the SMB connection on the SMB client:
Copy the large file to create a new session with the SMB Server.
Open a PowerShell window while the copy is ongoing.
Verify the SMB Direct is working properly and that the correct SMB dialect is used.
PS $ Get-SmbConnection PS $ Get-SmbMultichannelConnection PS $ netstat.exe -xan | ? {$_ -match
"445"
}WarningIf you have no activity while you run the commands above, you might get an empty list due to session expiration and no current connections.
Verifying SMB Events that Confirm RDMA Connection
To confirm RDMA connection, verify the SMB events:
Open a PowerShell window on the SMB client. Run the following cmdlets.
Note: Any RDMA-related connection errors will be displayed as well.
PS $ Get-WinEvent -LogName Microsoft-Windows-SMBClient/Operational | ? Message -match "RDMA"