How to Deploy your ‘Cloud-Only’ RDS environment – Part 3


In this series of blogposts I’m showing you how you can deploy your ‘Cloud-Only’ RDS environment. This environment consists of as much PaaS services as possible and all components are hosted on Microsoft Azure. In the first blogpost I’ve explained how to create and prepare Azure AD Domain Services together with the corresponding Virtual Networks. In the second post I described the deployment of all Remote Desktop Services resources and roles through an Azure ARM template and explained how the initial configuration can be done from this template. In this blogpost I want to focus on providing high-available storage for hosting the User Profile disks. Since the GA of Windows Server 2016 we can use Storage Spaces Direct for this. So this blogpost describes the deployment and configuration of a Storage Spaces Direct Cluster from an Azure ARM template.

In the pre-Windows 2016 era we had to use 3rd party software for providing high available storage on Microsoft Azure. But with the release of Windows Server 2016 we can now use Storage Spaces Direct on Azure to provide high available storage. The great news is stat Storage Spaces Direct is also supported on Remote Desktop Services 2016. So finally the high available storage solution without the need to using 3rd party solutions is here. Combined with the announcement that you can use a Cloud Witness this is one of the biggest improvements (for me) within Windows Server 2016. Again I want to deploy all components with an ARM template and I want to configure the cluster and storage spaces direct with a custom script extension. So the deployment should be fully automated. Let’s start with describing the components needed:

  • 1 Standard Storage account for the Cloud Witness;
  • 2 Premium Storage accounts for the data disks of the Storage Spaces Direct Cluster nodes (each VM needs its own Premium Storage Account);
  • 2 Virtual Machines which will act as Storage Spaces Direct Cluster nodes;
  • Custom Script extension which will do the following:
    • Install the needed Windows Roles and features
    • Create the Cluster
    • Create and configure the Cloud Witness
    • Create the Storage Spaces Direct parts
    • Add the Scale-out-File Server role to the cluster
    • Create the Scale-out-File Server Share

The script I created is based on the great blogpost of Claus Joergensen which you can find here. Note: This blogpost is created for Windows Server 2016 TP5. I had to make a couple of small adjustments to make it work for Windows Server 2016 RTM.

Use the following steps to deploy a Storage Spaces Direct cluster on Microsoft Azure:

  1. First we need to define a set of paramaters needed for the deployment of the cluster. The parameters need to be added to the ARM template within Visual Studio 2016

  2. Next is to define a couple of variables which are needed for the creation of the resources. Note: I’m only showing and focusing on the variables needed for the Storage Spaces Direct cluster

  3. The Next steps is to define the recources itself:

    Standard and Premium Storage Accounts

    Availability Set for the cluster nodes

    Network Interfaces for the cluster nodes

    Virtual Machine Resources

  4. >When all resources are added to the template the next step is to create the ‘Custom Script’ extension for configuring the Storage Spaces Direct cluster. If you want to know more about the extension please take a look at the second post of the series:

  5. As you can see I’m using an external script for configuring the Storage Spaces direct, this script is hosted on Github. Note: At this moment I do not want to share the script publicly because this is part of my session on a dutch IT-Pro event ExpertsLive on the 22th of November. So If you want to know more about the script please come to my session or send me a mail. After the 22nd of November I will share the script publicly.

After a deployment of the above parts the Storage Spaces Direct cluster is created. See below the screenshots of the created cluster:

Cluster with Cloud Witness

Storage Spaces Direct Cluster

Storage Spool Configuration

Scale-Out-File Server User Profile Disk Share

7 thoughts on “How to Deploy your ‘Cloud-Only’ RDS environment – Part 3

  1. Gino van Essen

    Hi Ajran, the Experts Live session about RDS was great!! When you gonna share the script? I am very curious and want to start testing 🙂

  2. ok thanks for the reply. I was wondering what it cost you for your setup. The calculator requires a lot of guessing and estimating and with your actual deployment, I want to know the cost please.


Leave a Reply

This site uses Akismet to reduce spam. Learn how your comment data is processed.