Comment mettre en place une ferme RDS
- Mise à jour le 08 nov. 2024
De nos jours, il est plutôt courant de voir des environnements RDS en entreprise. Généralement et pour les petites structures (moins de 30 utilisateurs) un seul serveur peut s'avérer suffisant. Mais dans le cas ou un grand nombre d'utilisateurs doivent se connecter, des ralentissements peuvent se faire sentir malgré le gonflement de la configuration matérielle (CPU et RAM), de plus, il pourra s'avérer compliquer de faire évoluer son architecture dans le cas ou le nombre d'utilisateurs venait à augmenter.
Donc, si l'on souhaite mettre en place une solution évolutive et qui pourra soutenir la charge d'un très grand nombre de connexions simultanées, il sera nécessaire de mettre en place une ferme RDS qui consiste en la séparation des différents services (broker, serveur de licence, hote de session etc…) en plusieurs serveurs. Cela permettra en plus de créer une pool de serveurs RD Session Host qui se chargeront d'accueillir les utilisateurs. Et c'est justement ce que nous allons voir dans l'article ci-dessous.
Architecture Ferme RDS
Voici l'architecture que l'on va mettre en place.

Installation (broker.std.local)
On pourra au choix installer notre architecture RDS en ligne de commande PowerShell ou depuis l'interface graphique.
Installation depuis l'interface graphique
Ajout des serveurs
Dans un premier temps nous allons déclarer nos serveurs RDS dans notre gestionnaire de serveur.
- Depuis le Gestionnaire de serveur faire un clic droit sur Tous les serveurs > Ajouter des serveurs :

- Ajouter les serveurs :

Installation
- Toujours depuis le Gestionnaire de serveur aller dans Gerer > Ajouter des rôles et fonctionnalités :

- A l'apparition de la première fenêtre, cliquer sur Suivant :

- Choisir Remote Desktop Services installation :

- Choisir un mode déploiement standard :

- Choisir Session-based dektop deployment :

- Cliquer sur Suivant :

- Ajouter le serveur broker :

- Ajouter de nouveau le serveur broker comme serveur RD Web Access :

- Puis ajouter le(s) serveur(s) RDS comme serveurs hotes :

- Cocher le Redémarrage automatique et cliquer sur Déployer pour lancer l'installation :

Installer avec PowerShell
- Installer les Services RDS avec PowerShell :
PS C:\> Add-WindowsFeature -Name RDS-Connection-Broker,RDS-Licensing,RDS-RD-Server -IncludeManagementTools -Restart
- Déployer RDS avec PowerShell :
PS C:\> Import-Module RemoteDesktop
PS C:\> New-RDSessionDeployment -ConnectionBroker broker.std.local -WebAccessServer broker.std.local -SessionHost rds01.std.local
Post-Install
Une fois les services RDS installés, nous pouvons passer à la configuration.
Serveur de Licences (broker.std.local)
- Depuis le Server Manager aller dans Remote Desktop Services > Overview et cliquer sur l'icône RD Licensing pour ajouter un Serveur de licence :

- Choisir le serveur broker comme serveur de licence RD :

- Cliquer sur Ajouter :

- A la fin de l'installation, Fermer :

Ajout des serveur Hôtes de Session
- Depuis la fenêtre de Vue d'Ensemble du Déploiement, faire un clic droit sur RD Session Hosts et cliquer sur Add RD Session Servers :

- Et les autres serveurs RDS :

- Cocher la case pour Redémarrer les services distants et cliquer sur Ajouter :

- Une fois installé fermer la fenêtre :

Mettre en place le partage du dossier des profils utilisateur (rdsprofiles.std.local)
- Faire un clic droit sur le dossier User_Profiles et cliquer sur Propriétés :

- Activer le partage comme ici :

Créer une Collection
- Depuis la fenêtre de Vue d'Ensemble du Déploiement, faire un clic droit sur RD Session Hosts et cliquer sur Créer une collection de sessions :

- Cliquer sur Suivant :

- Donner un nom à la Collection :

- Ajouter les Serveurs RDS à la Collection :

- Préciser le groupe utilisateurs qui sera autoriser à se connecter à notre ferme RDS :

- Préciser le dossier partagé que l'on a précédemment mis en place sur le serveur RDSPROFILES :

- Cliquer sur Créer :

- Puis fermer le fenêtre une fois toutes les opérations terminées :

Ajouter les entrées DNS (AD Server)
⚠️ Notez que le nouveau nom d'hôte doit être identique au nom de la collection précédement défini. Dans cet exemple : RDSfarm⚠️- Depuis un serveur Active Directory, ouvrir le Gestionnaire DNS :

- Depuis la zone de recherche directe, ajouter de nouvelles entrées de type hôte (A) :

- Exemple ici avec trois serveurs Session Host :

Alternative à l'ajout des entrées DNS (Client)
Il existe une autre manière d'informer le broker sur quelle collection l'on souhaite se connecter. Pour cela il faut personnaliser une icône RDP. La façon la plus simple de le faire est de modifier un fichier RDP avec Notepad.

Une fois ouvert, vérifiez si des lignes contenant les termes "loadbalanceinfo," "full address," "gatewayhostname," "use redirection server name," ou "alternate full address" sont présentes. Si une ou plusieurs lignes existes, supprimez-les.
Ensuite, ajoutez les lignes suivantes et mettez à jour les informations en fonction de vos propres serveurs et noms de collection :
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
Enregistrez le fichier modifié et ouvrez l'icône RDP.
Clients RDS
Avec une entrée DNS
- Le client utilisera l'entrée DNS rdsfarm (le nom de la collection) pour se connecter à l'un des RDS Session Host :

Alternative, sans entrée DNS
- Le client utilisera l'icône RDP précédemment créée pour se connecter à l'un des RDS Session Host :

Forcer la connexion sur un hôte RDS spécifique
Comme expliqué précédemment, la mission du broker sera de répartir aléatoirement les utilisateurs sur les différents serveurs hôtes de session. L'objectif étant d'équilibrer la charge de l'ensemble des sessions utilisateurs. Toutefois, en tant qu'administrateur, dans le cas par exemple de l'installation d'un nouveau logiciel, il peut s'avérer utile d'avoir la possibilité de choisir le serveur sur lequel on se connecte. L'architecture de la ferme RDS permet cela, voyons ci-dessous comment cela se passe.
- Imaginons ici que l'on souhaite se connecter au serveur RDS02, ayant pour adresse IP 192.168.1.201. Depuis la fenêtre exécuter d'un PC Windows, entrez la commande suivante :
mstsc /v:192.168.1.201 /admin
