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:
- 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
- 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
- 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
- >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:
- 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
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 🙂
Hi Gino,
I try to release it next week. I need to make some small adjustments and need to write some documentation around it.
Regards, Arjan
Hoi Arjan,
Is your arm template for SOFS allready available?
Regards, Jurgen
Hi Jurgen,
You can find the templates here: https://github.com/arjanvroege/Azure_ARM_Templates/tree/master/RDS/Templates
Regards, Arjan
How much does this ‘CLOUD-ONLY’ RDS ENVIRONMENT cost in Azure? Can you provide us with some specifics on this?
Hi Joe,
You can use the Azure Cost Calculator the get the actual pricing of this RDS solution within Azure: https://azure.microsoft.com/en-us/pricing/calculator/.
Regards, Arjan
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.
Thanks,
Joe