image image image image image

On This Page

Deploying SMB Direct

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.

SMB Configuration Verification

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

To verify the SMB connection on the SMB client:

  1. Copy the large file to create a new session with the SMB Server.
  2. Open a PowerShell window while the copy is ongoing.
  3. 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"}

    If 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

To confirm RDMA connection, verify the SMB events:

  1. Open a PowerShell window on the SMB client.
  2. 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"