rss logo

How set up a Windows RDS Farm architecture

Microsoft logo

Nowadays, it is quite common to see RDS environments in companies. Generally for smaller organizations (with fewer than 30 users) a single server is sufficient. However, in the case of a larger number of concurrent users, performance issues may arise despite increasing hardware configuration. Upgrading the architecture in case of user expansion can also become complicated.

Therefore, if you want to establish a scalable solution capable of handling a significantly high number of simultaneous connections, it becomes necessary to set up an RDS Farm. This involves segregating various services (broker, license server, session host, etc.…) across multiple servers. It also allows you to create a pool of RD Session Host servers to handle user load. In the following article, we will explore this setup in detail.

RDS Farm Architecture

Here is the architecture that we will put in place.

Windows rds farm architecture
RDS Farm Architecture.

Install (broker.std.local)

We can either install our RDS architecture from the PowerShell command line or from the graphical interface.

Install from GUI

Add servers to managed

  • From Server Manager do a right click to All Servers > Add Servers :
  • Add Servers :

Install

  • Still from Server Manager go to Manage > Add Roles and Features :
  • At the first windows click Next :
  • Choose Remote Desktop Services installation :
  • Choose Standard deployment :
  • Select Session-based dektop deployment :
  • Simply click Next :
  • Add the broker server :
  • Also add the broker server as the RD Web Access server :
  • Now add the RDS servers as Hosts servers :
  • Check the Restart the destination box and click Deploy to install :

Install with PowerShell

  • Install RDS Services via PowerShell :
PS C:\> Add-WindowsFeature -Name RDS-Connection-Broker,RDS-Licensing,RDS-RD-Server -IncludeManagementTools -Restart
  • Then deploy via PowerShell :
PS C:\> Import-Module RemoteDesktop
PS C:\> New-RDSessionDeployment -ConnectionBroker broker.std.local -WebAccessServer broker.std.local -SessionHost rds01.std.local

Post-Install

Once installed we need to configure.

RD Licensing (broker.std.local)

  • From Server Manager go to Remote Desktop Services > Overview and click to RD Licensing icon to add a Licensing Server :
  • Select the broker server as the RD Licensing server :
  • Click Add :
  • Then Close :

Adding RD Session Host Servers

  • From the Deployment Overview, do a right click to RD Session Host and click to Add RD Session Servers :
  • Add the others RDS servers :
  • Check the Restart remote computers box and click to Add :
  • Once installed we can close the Window :

Set Users Profiles Share (rdsprofiles.std.local)

  • Do a right click on the User_Profiles folder and go to Properties :
  • Then set the share as shown here :

Create Collection

  • From the Deployment Overview, do a right click to RD Session Host and click to Create Session Collection :
  • Click Next :
  • Give a name to the RDS Collection :
  • Add the RDS Servers to the Collection :
  • Specify the user groups that should connect to the RDS farm :
  • Specify the folder share that we previously set up on the RDSPROFILES server :
  • Click Create :
  • Then Close once all operations are terminated :

Add DNS entry (AD Server)

⚠️Note that the new host name should be the same as the collection name previously defined. In this example : RDSfarm⚠️
  • Open the DNS Manager console from an Active Directory server :
  • From the domain zone, add new Host (A) DNS entries :
  • For example with three RDS Session Host :

Alternative to DNS Entry (Client)

There is another way to inform the server about the collection we want to connect to. It involves customizing an RDP icon. The simplest way to do this is to edit a RDP file with Notepad.

RDP desktop icon with a Windows Notepad

Once opened, check if you already have any lines containing "loadbalanceinfo," "full address," "gatewayhostname," "use redirection server name," or "alternate full address." If any of these lines exist, remove them.

Next, add the following lines and update the information based on your own server and collection names:

loadbalanceinfo:s:tsv://MS Terminal Services Plugin.1.RDSFarm full address:s:broker.std.local gatewayhostname:s:broker.std.local use redirection server name:i:1 alternate full address:s:broker.std.local

Save the modified file, and open the RDP icon.

Client Connection

With DNS entry

  • The client will use the rdsfarm dns entry to connect to one of the RDS Session Host :
remote desktop connection window

Alternative, without DNS entry

  • The client will use the RDP icon previously created to connect to one of the RDS Session Host:
remote desktop connection window
Creative Commons License
This work is licensed under a Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License.

Contact :

contact mail address