How to Configure Scale-Out File Server (SoFS) on Windows Server 2012 R2
Scale-Out File Server (SoFS) is a Failover Cluster role in Windows Server 2012 R2 that provides continuously available file shares using SMB 3.0. Unlike a traditional File Server Failover Cluster role — where one node actively serves files while others stand by — a Scale-Out File Server distributes active file serving workloads across all cluster nodes simultaneously. All nodes in the cluster actively accept client connections to the same SMB shares via Cluster Shared Volumes (CSV). This design eliminates the concept of a primary owner for file data, allowing true active-active file serving with no failover downtime. SoFS is the recommended storage backend for Hyper-V virtual machine storage and SQL Server data files when using SMB 3.0 as the storage protocol.
Prerequisites
You need at least two Windows Server 2012 R2 servers configured as a Failover Cluster (see the Failover Clustering guide). Cluster Shared Volumes (CSVs) must be available — these are typically backed by iSCSI, Fibre Channel, or SAS shared storage. All cluster nodes must have at least two network adapters — one for cluster management and one for SMB traffic (10 GbE strongly recommended for production workloads). SMB Multichannel is supported and should be configured for maximum throughput. The Failover Cluster and File Server role must be properly licensed. Active Directory is required for authentication.
Step 1: Verify Failover Cluster Prerequisites
Before creating a Scale-Out File Server, ensure the underlying Failover Cluster is healthy:
Get-Cluster | Select-Object Name, Domain
Get-ClusterNode | Select-Object Name, State
Get-ClusterSharedVolume | Select-Object Name, State, SharedVolumeInfo
Verify that CSVs are available and healthy:
Get-ClusterSharedVolume | Format-List *
If CSVs are not yet configured, add cluster disks to CSV:
Get-ClusterAvailableDisk | Add-ClusterDisk
Add-ClusterSharedVolume -Name "Cluster Disk 2"
Step 2: Add the Scale-Out File Server Role
Add the Scale-Out File Server cluster role to the existing Failover Cluster:
Add-ClusterScaleOutFileServerRole -Name "SOFS01"
Verify the Scale-Out File Server role was created:
Get-ClusterGroup | Where-Object {$_.GroupType -eq "ScaleOutFileServer"} | Select-Object Name, State, OwnerNode
Unlike traditional cluster roles, a Scale-Out File Server does not have a single owner node — it is active on all nodes simultaneously. The cluster group state should show “Online” and it should have resources on multiple nodes.
Step 3: Create Cluster Shared Volumes for SoFS Data
Create and format CSVs to store Hyper-V or SQL Server data. Each CSV will host a directory of VHD/VHDX files or database files:
# Add a large shared disk to CSV for VM storage
Add-ClusterSharedVolume -Name "Cluster Disk 3"
# Verify CSV mount point
Get-ClusterSharedVolume -Name "Cluster Disk 3" | Select-Object Name, SharedVolumeInfo
Create subdirectories in the CSV for organization:
$csvPath = "C:ClusterStorageVolume2"
New-Item -Path "$csvPathHyperVVMs" -ItemType Directory
New-Item -Path "$csvPathHyperVVMsProduction" -ItemType Directory
New-Item -Path "$csvPathHyperVVMsDev" -ItemType Directory
Step 4: Create Scale-Out File Server Shares
Create SMB shares that expose the CSV directories to clients. SoFS shares are created on the CSV path and are accessible through the SoFS virtual computer name:
New-SmbShare -Name "HyperVVMs" `
-ScopeName "SOFS01" `
-Path "C:ClusterStorageVolume2HyperVVMs" `
-FullAccess "Domain Admins", "SYSTEM" `
-ChangeAccess "Hyper-V Administrators" `
-CachingMode None `
-ContinuouslyAvailable $true `
-Description "Hyper-V VM storage on Scale-Out File Server"
The -ScopeName parameter specifies the Scale-Out File Server name, and -ContinuouslyAvailable $true enables SMB Transparent Failover — clients will not lose their SMB connections even if a cluster node fails.
Create additional shares as needed:
New-SmbShare -Name "SQLData" `
-ScopeName "SOFS01" `
-Path "C:ClusterStorageVolume3SQLData" `
-FullAccess "Domain Admins", "SYSTEM" `
-ChangeAccess "SQL-Service-Accounts" `
-CachingMode None `
-ContinuouslyAvailable $true
Step 5: Verify SoFS Share Configuration
Confirm that shares were created correctly with the SoFS scope name:
Get-SmbShare | Where-Object {$_.ScopeName -eq "SOFS01"} | Select-Object Name, ScopeName, Path, ContinuouslyAvailable, CachingMode
Test that the share is accessible via the SoFS virtual name:
Test-Path "\SOFS01HyperVVMs"
Get-ChildItem "\SOFS01HyperVVMs"
Step 6: Configure SMB Encryption on SoFS Shares
For additional security, enable SMB encryption on SoFS shares. This encrypts data in transit between clients and the file server:
Set-SmbShare -Name "HyperVVMs" -ScopeName "SOFS01" -EncryptData $true
# Verify encryption is enabled
Get-SmbShare -Name "HyperVVMs" | Select-Object Name, EncryptData
Step 7: Configure Hyper-V to Use SoFS Storage
Configure Hyper-V hosts to store virtual machine files on the SoFS share. In Hyper-V Manager, set the default VM locations, or create VMs directly on the SoFS share:
# Set Hyper-V default storage paths to SoFS
Set-VMHost -VirtualMachinePath "\SOFS01HyperVVMs" `
-VirtualHardDiskPath "\SOFS01HyperVVMs"
# Create a VM on SoFS
New-VM -Name "TestVM01" `
-Path "\SOFS01HyperVVMsProduction" `
-NewVHDPath "\SOFS01HyperVVMsProductionTestVM01TestVM01.vhdx" `
-NewVHDSizeBytes 60GB `
-MemoryStartupBytes 4GB `
-Generation 2
Step 8: Monitor SoFS Performance and Health
Monitor Scale-Out File Server performance and connected clients:
Get-SmbSession | Where-Object {$_.ShareName -eq "HyperVVMs"} | Select-Object ClientComputerName, ClientUserName, NumOpens, TransportName
Get-ClusterSharedVolumeState | Format-Table *
Test failover by suspending one cluster node and verifying that Hyper-V clients maintain storage connectivity:
Suspend-ClusterNode -Name "Node01" -Drain
# While Node01 is suspended, verify VMs continue running and SoFS access continues
Get-VM | Select-Object Name, State, Status
Resume-ClusterNode -Name "Node01"
Summary
Scale-Out File Server on Windows Server 2012 R2 provides an active-active SMB 3.0 file serving infrastructure designed for high-throughput, continuously available storage workloads. By distributing SMB connections across all cluster nodes simultaneously and using SMB Transparent Failover, SoFS eliminates storage downtime during node failures. This makes it the ideal backend for Hyper-V virtual machine storage and SQL Server database files, where even brief storage interruptions can be costly.