How to Set Up Hyper-V Scale-Out File Server for Cluster Storage on Windows Server 2012 R2

A Scale-Out File Server (SOFS) is a Windows Server 2012 R2 failover cluster role that provides continuously available SMB 3.0 file shares for use as shared storage by Hyper-V clusters and SQL Server deployments. Unlike traditional clustered file servers where only one node actively serves requests at a time, SOFS allows all cluster nodes to simultaneously serve file requests, distributing the load across all nodes. For Hyper-V environments, SOFS enables all cluster nodes to have simultaneous read/write access to VM storage without traditional SAN infrastructure — just commodity servers with shared disk storage.

SOFS Architecture

A SOFS deployment consists of:

  • A Windows Server 2012 R2 Failover Cluster (2+ nodes) with the File Server role in Scale-Out mode
  • Cluster Shared Volumes (CSVs) as the underlying storage — these are shared disks (iSCSI, FC, or SAS JBOD) accessible by all cluster nodes
  • SMB 3.0 shares created on top of the CSVs, accessed via the SOFS cluster name
  • Hyper-V hosts (the clients) that store VM files on the SOFS shares

The key advantage is that when a SOFS node fails, the other nodes continue serving the share with no interruption, unlike traditional file shares where the client must wait for the resource to fail over.

Prerequisites

  • Two or more Windows Server 2012 R2 servers for the SOFS cluster
  • All servers joined to the same Active Directory domain
  • Failover Clustering feature installed on all SOFS nodes
  • Shared storage (iSCSI SAN, Fibre Channel SAN, or shared SAS with JBOD enclosure) accessible by all SOFS nodes
  • A dedicated 10GbE network for SMB storage traffic (highly recommended)
  • SMB Multichannel-capable NICs for best performance

Step 1 — Install Failover Clustering and File Server on SOFS Nodes

$SOFSNodes = "sofs01.domain.com", "sofs02.domain.com"
Invoke-Command -ComputerName $SOFSNodes -ScriptBlock {
    Install-WindowsFeature -Name Failover-Clustering, FS-FileServer -IncludeManagementTools -Restart
}

Step 2 — Validate and Create the SOFS Cluster

# Run cluster validation:
Test-Cluster -Node "sofs01.domain.com", "sofs02.domain.com"

# Create the cluster:
New-Cluster -Name "SOFS-Cluster" -Node "sofs01.domain.com", "sofs02.domain.com" -StaticAddress "192.168.1.200" -NoStorage

Step 3 — Configure the Quorum Witness

Set-ClusterQuorum -Cluster "SOFS-Cluster" -FileShareWitness "\dc01SOFS-Witness"

Step 4 — Add Shared Disks and Create CSVs

Present shared LUNs to all SOFS nodes (via iSCSI or FC), bring them online, format them with NTFS, and convert them to Cluster Shared Volumes:

# On one SOFS node, initialize and format new disks:
Get-Disk | Where-Object { $_.OperationalStatus -eq "Offline" } | ForEach-Object {
    Initialize-Disk -Number $_.DiskNumber -PartitionStyle GPT
    New-Partition -DiskNumber $_.DiskNumber -UseMaximumSize | Format-Volume -FileSystem NTFS -AllocationUnitSize 65536 -NewFileSystemLabel "SOFS-Vol1"
}

# Add to the cluster:
Add-ClusterDisk -InputObject (Get-Disk | Where-Object { $_.OperationalStatus -eq "Online" -and $_.PartitionStyle -eq "GPT" })

# Convert to CSV:
Add-ClusterSharedVolume -Name "Cluster Disk 2" -Cluster "SOFS-Cluster"
Add-ClusterSharedVolume -Name "Cluster Disk 3" -Cluster "SOFS-Cluster"

Note the 65536 (64KB) allocation unit size — this is recommended for VM workloads on NTFS volumes to reduce fragmentation and improve performance.

Step 5 — Add the Scale-Out File Server Role

Add-ClusterScaleOutFileServerRole -Name "SOFS-FS" -Cluster "SOFS-Cluster"

This creates a Scale-Out File Server cluster role with the name SOFS-FS. The SOFS cluster is accessible at \SOFS-FS.

Verify the role is running:

Get-ClusterGroup -Cluster "SOFS-Cluster" | Select-Object Name, GroupType, State

Step 6 — Create SMB Shares on the SOFS

Create SMB 3.0 shares on the CSV volumes for Hyper-V VM storage:

# Create a share for Hyper-V VM files:
New-SmbShare -Name "HV-VMs" -Path "C:ClusterStorageVolume1HV-VMs" -ScopeName "SOFS-FS" -FullAccess "DOMAINDomain Computers", "DOMAINDomain Admins" -ContinuouslyAvailable $true -EncryptData $false

The -ContinuouslyAvailable flag enables SMB Transparent Failover, which allows SMB clients to reconnect after a SOFS node failure without application errors.

Create the directory on the CSV:

New-Item -ItemType Directory -Path "C:ClusterStorageVolume1HV-VMs"

Step 7 — Configure Hyper-V Hosts to Use SOFS Storage

Configure Hyper-V hosts to use the SOFS share for VM storage:

Set-VMHost -ComputerName "HV-Host01" -VirtualHardDiskPath "\SOFS-FSHV-VMsVHDs" -VirtualMachinePath "\SOFS-FSHV-VMsVMs"

Create a VM on the SOFS share:

New-VM -ComputerName "HV-Host01" -Name "SOFSTest-VM01" -Generation 2 -MemoryStartupBytes 4GB -SwitchName "VMSwitch" -NewVHDPath "\SOFS-FSHV-VMsVHDsSOFSTest-VM01.vhdx" -NewVHDSizeBytes 80GB -Path "\SOFS-FSHV-VMsVMsSOFSTest-VM01"

Step 8 — Configure SMB Multichannel for Performance

SMB Multichannel uses multiple network paths simultaneously for increased throughput and redundancy. Ensure RDMA (Remote Direct Memory Access) NICs are used if available for maximum performance:

# Verify SMB Multichannel is enabled (it is by default in Server 2012 R2):
Get-SmbClientConfiguration | Select-Object EnableMultiChannel
Get-SmbServerConfiguration | Select-Object EnableMultiChannel

# View active SMB connections and whether multichannel is being used:
Get-SmbMultichannelConnection

Verifying SOFS Functionality

# Test SMB share accessibility:
Test-Path "\SOFS-FSHV-VMs"

# View shares on the SOFS:
Get-SmbShare -ScopeName "SOFS-FS"

# Check SOFS cluster health:
Get-ClusterSharedVolumeState -Cluster "SOFS-Cluster"
Get-ClusterNode -Cluster "SOFS-Cluster" | Select-Object Name, State

Summary

Scale-Out File Server on Windows Server 2012 R2 provides a high-performance, continuously available SMB 3.0 storage solution for Hyper-V clusters, eliminating the need for dedicated SAN infrastructure in many scenarios. By clustering commodity servers with shared disk storage and presenting Cluster Shared Volumes as SMB shares, SOFS delivers the shared storage capabilities required for Hyper-V Live Migration and HA clusters. SMB 3.0 features including Transparent Failover, Multichannel, and Direct (RDMA support) make SOFS a viable alternative to iSCSI or Fibre Channel SANs for VM storage in medium to large Hyper-V deployments.