Deploying Fast and Efficient File Servers for Server Applications

In this article

This document outlines the planning and deployment steps for setting up fast and efficient file servers for server applications, such as Hyper-V™ and Microsoft SQL Server.

Overview

In Windows Server® 2012, the SMB protocol for remote storage has been enhanced to allow for faster and more efficient file servers for server applications, such as Hyper-V and SQL Server. As part of the SMB protocol, two new features, SMB Direct and SMB Multichannel, enable customers to deploy storage for server applications on cost efficient, continuously available, high performance file servers.

SMB Direct supports the use of network adapters that have remote direct memory access (RDMA) capability. SMB Direct (SMB over RDMA) is a new storage protocol in Windows Server 2012 that includes:

Increased throughput: Leverages the full throughput of high speed networks where the network adapters coordinate the transfer of large amounts of data at line speed.

Low CPU utilization: Uses fewer CPU cycles when transferring data over the network, which leaves more power available to server applications.

SMB Direct is automatically configured by Windows Server 2012.

SMB Multichannel allows file servers to use multiple network connections simultaneously and includes the following capabilities:

Fault tolerance. When using multiple network connections at the same time, the file server continues functioning despite the loss of a network connection.

Increased throughput. The file server can simultaneously transmit more data using multiple connections for high speed network adapters or multiple network adapters.

SMB Multichannel is automatically configured by Windows Server 2012.

Requirements and recommendations

Before deploying the file server, you should review the requirements and recommendations outlined below.

SMB Direct

SMB Direct requires the following:

At least two computers running Windows Server 2012

A network adapter with RDMA capability. Currently, these network adapters are available in three different types: iWARP, Infiniband, or RoCE (RDMA over Converged Ethernet).

SMB Multichannel

SMB Multichannel requires the following:

At least two computers running Windows Server 2012 or Windows RT.

At least one of the configurations below:

Multiple network adapters

One or more network adapters that support RSS (Receive Side Scaling)

One or more network adapters that support RDMA

The following are sample network configurations that can be used for SMB Multichannel:

Single 10 GbE network adapter. Each computer is configured with a 10 GbE network adapter, which is RSS-capable or RDMA-capable.

Dual 1 GbE network adapters configured in a team. Each computer is configured with two 1 gigabit Ethernet network adapters in a load balancing and failover environment, also known as a network adapter team.

Install the required roles, role services, and features

By default, both SMB Multichannel and SMB Direct are enabled on Windows Server 2012. You do not need to add any roles, role services, or features to utilize the functionality of SMB Multichannel and SMB Direct. For information on installing roles, role services, and features, see “Step 1: Install Prerequisites for Scale-out File Servers” in Deploy Scale-Out File Server.

Step-by-step instructions

Use the following steps to validate a configuration that leverages SMB Multichannel or SMB Direct. Both SMB Multichannel and SMB Direct can be used with different file server configurations, including standalone file server clusters or Scale-Out file server clusters. In this document, the focus is on the Scale-out File Server cluster configuration.

Step 1: Verify the basic network configuration

After installing Windows Server 2012, you can use the following Windows PowerShell commands to verify the network adapters that are configured. If you are using RSS-capable and/or RDMA-capable network adapters, you can verify that these capabilities are being properly detected.

To verify the basic network configuration

Open Windows PowerShell.

On each server, type the following to view a list of network adapters:

Get-NetAdapter

Review the list of network adapters installed on the system, along with their basic characteristics. You should have at least two adapters configured.

On each server, type the following to view a list of network adapters available to SMB:

Get-SmbServerNetworkInterface

Review the list of network adapters, and note whether they are RSS-capable and/or RDMA-capable. You should have at least two adapters configured.

You can also verify the network configuration using Server Manager. In Server Manager, click Local Server and verify that you have at least two network adapters configured for the server.

Step 2: Configure a failover cluster

Step 3: Configure the networks for the failover cluster

In this example, use two networks in your failover cluster, which allows you to use SMB Multichannel in a two network adapter configuration. You should enable two of the networks on the failover cluster for client access.

To configure the networks using Failover Cluster Manager

From one of the cluster nodes, open Server Manager.

In the Server Manager menu bar, click Tools to access the contents of the Administrative Tools folder. Select Failover Cluster Manager from the list of tools.

On the left pane in Failover Cluster Manager, click to expand the failover cluster you want to use, and then click Networks.

Right-click the cluster network you want to configure, and click Properties.

Make sure both Allow cluster network communication on this network and the checkbox next to Allow clients to connect through this network are selected.

Repeat, as required, so that two of the cluster networks are configured with both of these properties.

To configure the networks using Windows PowerShell

Open Windows PowerShell.

From one of the cluster nodes, type the following to configure the networks:

Get-ClusterNetwork

The list of networks available to the failover cluster is displayed, along with their role.

From the cluster node, type the following to specify client access:

(Get-ClusterNetwork <NetworkName>).Role = 3

The specified cluster network is configured for client access. You should repeat this step for two of the networks that are listed.

Step 4: Configure a Scale-out File Server

Step 5: Verify each file server name has two addresses

In this example, confirm that the Scale-out File Server is properly configured for SMB Multichannel by verifying that you have two network adapters configured for the Scale-out File Server name. If you are using RDMA network adapters, you can also verify if these are properly configured.

To configure the networks using Windows PowerShell

Open Windows PowerShell.

From one of the file servers, type the following:

Get-ClusterNetwork

The list of networks available to the failover cluster is displayed, along with their role.

From the cluster node, type the following to specify client access:

Get-SmbServerNetworkInterface

In addition to the list of network interfaces you viewed in Step 1, you should see additional entries for the file server name you have created. You should have at least two network adapters configured for the file server name, and you can also verify if they are RSS-capable and/or RDMA-capable.

Step 6: Configure a Hyper-V or Microsoft SQL Server client

Step 7: Verify servers are using SMB Multichannel and SMB Direct

In this example, confirm that the application server (running either Hyper-V or Microsoft SQL Server) is properly leveraging the two network adapters using SMB Multichannel. If you are using RDMA adapters, you can also verify if you are using SMB Direct.

To verify that the servers are using SMB Multichannel and SMB Direct

Open Windows PowerShell.

On the application server using SMB, type the following:

Get-SmbClientNetworkInterface

The list of network adapters available to the SMB Client is displayed, along with the indication on whether they are RSS-capable and/or RDMA-capable.

On the application server using SMB, type the following:

Get-SmbMultichannelConnection

You can view the connections that are actively used for the currently established sessions, and you can also verify if they are RSS-capable and/or RDMA-capable. You should have two paths listed for the Scale-out File Server name.

Note

When you use this cmdlet, it will not show any information unless the application server is actively accessing the file server.

Step 8: Monitor file shares using Performance Counters

In Windows Server 2012, new SMB performance counters provide detailed information about I/O size, I/O latency, and IOPS, allowing administrators to analyze the performance of SMB file shares where their data is stored. These counters are specifically designed for server applications, such as Hyper-V and SQL Server, which store files on remote Windows file shares.

To monitor application server activity on the SMB share

In the Server Manager menu bar, click Tools to access the contents of the Administrative Tools folder. Select Performance Monitor from the list of tools.

Under Performance, and then under Monitoring Tools, click Performance Monitor.

Right-click in the Performance Monitor window, and click Add Counters. You can also do this by pressing CTRL+N.

To view activity for virtual machines, under Available counters, expand SMB2 Client Shares and select all of the counters.

Select the share used by the application server, and click Add. Click OK to continue.

On the Taskbar, click Change graph type to change the type to Report. You can also do this by pressing CTRL+G twice.

You can now view the activity of the counters in the Performance Monitor window.