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.
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. The command must be ran 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:
Note: The NETSTAT command confirms if the File Server is listening on the RDMA interfaces.PS $ Get-SmbServerConfiguration | Select EnableMultichannel PS $ Get-SmbServerNetworkInterface PS $ netstat.exe -xan | ? {$_ -match
"445"
}
Verifying SMB Connection
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 absence current connections.
Verifying SMB Events that Confirm RDMA Connection
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"