Table of contents
Collapse the table of content
Expand the table of content

Deploy a two-node S2D SOFS for UPD storage in Azure

Haley-Rowland|Last Updated: 1/6/2017
1 Contributor

Applies To: Windows Server 2016

Remote Desktop Services (RDS) requires a domain-joined file server for user profile disks (UPDs). To deploy a high availability domain-joined scale-out file server (SOFS) in Azure, use Storage Spaces Direct (S2D) with Windows Server 2016. If you’re not familiar with UPDs or Remote Desktop Services, check out Welcome to Remote Desktop Services.


Microsoft just published an Azure template to deploy a Storage Spaces Direct scale-out file server! You can use the template to create your deployment, or use the steps in this article.

We recommend deploying your SOFS with DS-series VMs and premium storage data disks, where there are the same number and size of data disks on each VM. You will need a minimum of two storage accounts.

For small deployments, we recommend a 2-node cluster with a cloud witness, where the volume is mirrored with 2 copies. Grow small deployments by adding data disks. Grow larger deployments by adding nodes (VMs).

These instructions are for a 2-node deployment. The following table shows the VM and disk sizes you'll need to store UPDs for the number of users in your business.

UsersTotal (GB)VM# DisksDisk typeDisk size (GB)Configuration
1050DS12P101282x(DS1 + 2 P10)
25125DS12P101282x(DS1 + 2 P10)
50250DS12P101282x(DS1 + 2 P10)
100500DS12P205122x(DS1 + 2 P20)
2501250DS12P3010242x(DS1 + 2 P30)
5002500DS23P3010242x(DS2 + 2 P30)
10005000DS35P3010242x(DS3 + 5 P30)
250012500DS413P3010242x(DS4 + 13 P30)
500025000DS525P3010242x(DS5 + 25 P30)

Use the following steps to create a domain controller (we called ours "my-dc" below) and two node VMs ("my-fsn1" and "my-fsn2") and configure the VMs to be a 2-node S2D SOFS.

  1. Create a Microsoft Azure subscription.
  2. Sign into the Azure portal.
  3. Create an Azure storage account in Azure Resource Manager. Create it in a new resource group and use the following configurations:
    • Deployment model: Resource Manager
    • Type of storage account: General purpose
    • Performance tier: Premium
    • Replication option: LRS
  4. Set up an Active Directory forest by doing one of the following:
    1. Deploy using an Azure quickstart template:
    2. Manually deploy the forest with the following configurations:
      • Create the virtual network in the same resource group as the storage account.
      • Recommended size: DS2 (increase the size if the domain controller will host more domain objects)
      • Use an automatically generated VNet.
      • Follow the steps to install AD DS.
    3. Enable Azure AD Domain Services: Note that this only works on a V1 VNet, while the rest of the deployment described below requires a V2 VNet. In order to allow communication between the cluster nodes and the domain controller, you will need to deploy VNet peering (you can also use a quickstart template to deploy VNet peering).
  5. Set up the file server cluster nodes. You can do this by deploying the Windows Server 2016 Storage Spaces Direct (S2D) SOFS cluster Azure template or by following steps 6-11 to deploy manually.
  6. To manually set up the file server cluster nodes:
    1. Create the first node:
      1. Create a new virtual machine using the Windows Server 2016 image. (Click New > Virtual Machines > Windows Server 2016. Select Resource Manager, and then click Create.)
      2. Set the basic configuration as follows:
        • Name: my-fsn1
        • VM disk type SSD
        • Use an existing resource group, the one that you created in step 3.
      3. Size: DS1, DS2, DS3, DS4, or DS5 depending on your user needs (see table at beginning of these instructions). Ensure premium disk support is selected.
      4. Settings:
        • Storage account: Choose the storage account you created in step 3.
        • High Availability - create a new availability set. (Click High Availability > Create new, and then enter a name (for example, s2d-cluster). Use the default values for Update domains and Fault domains.)
    2. Create the second node. Repeat the step above with the following changes:
      • Name: my-fsn2
      • High Availability - select the availability set you created above.
  7. Attach data disks to the cluster node VMs according to your user needs (as seen in the table above). Set host caching to None.
  8. Set IP addresses for all VMS to static.
    1. In the resource group, select a VM, and then click Network interfaces (under settings). Select the listed network interface, and then click IP Configurations. Select the listed IP configuration, select static, and then click Save.
    2. Note the domain controller (my-dc for our example) private IP address (10.x.x.x).
  9. Set primary DNS server address on NICs of the cluster node VMs to the my-dc server. Select the VM, and then click Network Interfaces > DNS servers > Custom DNS. Enter the the private IP address you noted above, and then click Save.
  10. Create an Azure storage account to be your cloud witness. (If you use the linked instructions, stop when you get to "Configuring Cloud Witness with Failover Cluster Manager GUI" - we'll do that step below.)
  11. Set up the S2D file server. Connect to a node VM, and then run the following Windows PowerShell cmdlets.

    1. Install Failover Clustering Feature and File Server Feature on the two file server cluster node VMs:

      $nodes = ("my-fsn1", "my-fsn2")
      icm $nodes {Install-WindowsFeature Failover-Clustering -IncludeAllSubFeature -IncludeManagementTools} 
      icm $nodes {Install-WindowsFeature FS-FileServer} 
    2. Validate cluster node VMs and create 2-node SOFS cluster:

      Test-Cluster -node $nodes
      New-Cluster -Name MY-CL1 -Node $nodes –NoStorage –StaticAddress [new address within your addr space]
    3. Configure the cloud witness. Use your cloud witness storage account name and access key.

      Set-ClusterQuorum –CloudWitness –AccountName <StorageAccountName> -AccessKey <StorageAccountAccessKey> 
    4. Enable Storage Spaces Direct.

    5. Create a virtual disk volume.

      New-Volume -StoragePoolFriendlyName S2D* -FriendlyName VDisk01 -FileSystem CSVFS_REFS -Size 120GB 

      To view information about the cluster shared volume on the SOFS cluster, run the following cmdlet:

    6. Create the scale-out file server (SOFS):

      Add-ClusterScaleOutFileServerRole -Name my-sofs1 -Cluster MY-CL1
    7. Create a new SMB file share on the SOFS cluster.

      New-Item -Path C:\ClusterStorage\Volume1\Data -ItemType Directory
      New-SmbShare -Name UpdStorage -Path C:\ClusterStorage\Volume1\Data

You now have a share at \\my-sofs1\UpdStorage, which you can use for UPD storage when you enable UPD for your users.

© 2017 Microsoft