Load Balancer avec HAProxy

Ce tutoriel décrit la création d’un load balancer pour les Connection Server Horizon ou App Volumes Manager.
Nous utiliserons la distribution Linux de VMware : Photon OS 5.0, ainsi que le load balancer open source : HAProxy.

Prérequis :
Photon OS 5.0 OVA x86_64 lien
2 GB de RAM / 16 GB HDD
Une adresse IP


Déployer l’OVA sur l’infrastructure vSphere

Une fois l’appliance déployée, allumer celle-ci.
L’appliance est en DHCP, se connecter en SSH avec le compte root et le password changeme.
Changer le mot de passe (obligatoire).

Lancer la mise à jour des packages avec la commande tdnf upgrade -y

Désactiver le DHCP sur la carte Ethernet en éditant le fichier /etc/systemd/network/99-dhcp-en.network
Mettre DHCP=no

Pour définir une adresse IP fixe sur la machine virtuelle, créer un fichier /etc/systemd/network/10-static-en.network
Ajouter le contenu suivant :

[Match]
Name=eth0
[Network]
Address=<AdresseIP_de_HAProxy>/24     
Gateway=<AdresseIP_Gateway>
DNS=<AdresseIP_DNS>
[DHCP]
UseDNS=false

Après avoir créé un fichier de configuration avec une extension .network, il faut exécuter la commande chmod pour définir les droits sur 644 :

chown systemd-network:systemd-network /etc/systemd/network/10-static-en.network

Créer un nouveau fichier nommé /etc/sysctl.d/55-keepalived.conf
Ajouter le contenu suivant :

#Enable IPv4 Forwarding
net.ipv4.ip_forward = 1
#Enable non-local IP bind
net.ipv4.ip_nonlocal_bind = 1

Editer le fichier /etc/systemd/scripts/ip4save
Ajouter les 4 lignes suivantes :

-A INPUT -p icmp -m icmp --icmp-type 8 -j ACCEPT
-A INPUT -p tcp --dport 80 -j ACCEPT
-A INPUT -p tcp --dport 443 -j ACCEPT
-A INPUT -p tcp --dport 8404 -j ACCEPT

Installer HAProxy avec la commande tdnf install haproxy -y

Créer et chrooter un nouveau répertoire pour HAProxy :

mkdir /var/lib/haproxy
chmod 755 /var/lib/haproxy

Renommer le fichier exemple de configuration HAProxy :

mv /etc/haproxy/haproxy.cfg /etc/haproxy/haproxy.old

Créer un nouveau fichier (avec vi ou touch) /etc/haproxy/haproxy.cfg
Copier le contenu suivant et modifier les champs surlignés :

# HAProxy configuration

                #Global definitions
                global
                chroot /var/lib/haproxy
                stats socket /var/lib/haproxy/stats
                 daemon

                defaults
                 timeout connect 5s
                 timeout client 30s
                 timeout server 30s

                ### Configuration des statistiques ###
                userlist stats-auth
                 group admin   users admin
                 user admin insecure-password Horiz0n
                 group ro users stats
                 user stats insecure-password ReadOnly
                frontend stats-http8404
                mode http
                bind <IP_HAProxy>:8404
                default_backend statistics
                backend statistics
                mode http
                stats enable
                stats show-legends
                stats show-node
                stats refresh 30s
                acl AUTH http_auth(stats-auth)
                acl AUTH_ADMIN http_auth_group(stats-auth) admin
                stats http-request auth unless AUTH
                stats admin if AUTH_ADMIN
                stats uri /stats
                ######

                ### Horizon Connection servers ###
                frontend horizon-http
                mode http
                bind <IP_HAProxy>:80
                # Redirect http to https
                redirect scheme https if !{ ssl_fc }

                frontend horizon-https
                mode tcp
                bind <IP_HAProxy>:443
                default_backend horizon
                backend horizon
                mode tcp
                option ssl-hello-chk
                balance source
                server CS1 <IPConnSrv1>:443 weight 1 check inter 30s fastinter 2s downinter 5s rise 3 fall 3
                server CS2 <IPConnSrv2>:443 weight 1 check inter 30s fastinter 2s downinter 5s rise 3 fall 3
######

Taper la commande suivante pour que HAProxy soit persistent après chaque reboot :

systemctl enable haproxy.service

Redémarrer l’appliance Photon OS :

reboot

HAProxy est désormais opérationnel.

Si une erreur 421 Unknown apparaît lors de la connexion d’un client via le load balancer, il est nécessaire d’activer la redirection d’hôte et d’ajouter l’adresse IP ou le nom d’hôte du HAProxy sur chaque Connection Server dans la Console Horizon.

Pour vérifier l’état du service HAProxy, utiliser la commande suivante :

systemctl status haproxy.service

Pour obtenir les statistiques de HAProxy, se connecter à l’URL suivante avec le mot de passe défini dans le fichier /etc/haproxy/haproxy.cfg :

http://<AdresseIP_HAProxy>:8404/stats

MàJ : Nvidia vGPU Software 16.2

Voici les nouveautés apportées par cette version :

  • Support de Horizon 2309
  • Mises à jour de sécurité : consultez le Bulletin de sécurité : Pilote d’affichage GPU NVIDIA – Octobre 2023, publié peu de temps après la date de sortie de cette mise à jour et répertorié sur la page NVIDIA Product Security
  • Diverses corrections de bugs

Màj : Horizon 2309

Principales nouveautés :

Horizon 2309

  • Load Balancing CPA en fonction de la charge
  • Création de bureaux virtuels à partir de disques persistants détachés
  • Amélioration de l’optimisation média Microsoft Teams
  • Autorisation Lecture/Ecriture pour le SDR
  • Amelioration de Blast Extreme avec le pilote Indirect
  • Prise en charge des machines physiques Linux

App Volumes 2309

  • Fast Attach pour les Packages VMDK (vSphere 8.0 Update 2 requis)
  • Support de Amazon AppStream 2.0

Unified Access Gateway 2309

  • Ajout de statistiques d’utilisation du disque dans les logs journaux à des fins de dépannage
  • Amélioration des logs
  • Mise à jour de Java et de Photon OS

Dynamic Environment Manager 2309

  • Configuration dynamique de la redirection des lecteurs de stockage Horizon pour les utilisateurs
  • Support de la configuration d’emplacements sans politique dans les paramètres basés sur ADMX
  • Possibilité d’appliquer les paramètres du registre sans que les utilisateurs aient accès aux outils d’édition du registre.

Se connecter en tant qu’utilisateur actuel demande un password

Sur le client Horizon, il est possible de se connecter à un Connection Server sans avoir à entrer un utilisateur/mot de passe.

En activant l’option “Se connecter en tant qu’utilisateur actuel“, le client Horizon peut réutiliser les credentials Windows pour s’authentifier.

Si la connexion demande toujours un mot de passe, il est probable que la fonctionnalité ne soit pas activée côté serveur.

Pour l’activer, il faut se rendre sur la console Horizon.

Dans Paramètres, cliquer sur Serveurs, aller sur l’onglet Serveurs de connexions.

Modifier le serveur de Connexion et aller sur l’onglet Authentification

Cocher la case Autoriser l’ouverture de session en tant qu’utilisateur actuel

La prise en compte est immédiate !

Intel GPU Flex Series

Dans le monde de l’accélération graphique VDI, il existe une alternative aux GPU Nvidia couramment utilisés dans les bureaux virtuels: les GPU Intel Data Center GPU Flex Series.

Depuis Avril 2023, VMware Horizon supporte le codec AV1 exploité par les GPU Flex Series.

Il existe actuellement deux modèles, Flex 140 et 170, compatibles Horizon 8 et vSphere 8.0.

Contrairement aux GPU Nvidia, les GPU Flex Series ne nécessitent pas de licence, ce qui permet de réduire le TCO et simplifie le management.

Benchmark Intel

Intel® Data Center GPU Flex 140 offre un débit de transcodage des médias 5 fois supérieur à celui de NVIDIA A10 sur HEVC 1080p60 avec une consommation d’énergie réduite de moitié. Et un débit de décodage multiplié par 2 à la moitié de la puissance du NVIDIA A10 sur HEVC, AV1, AVC, VP9.1

https://www.intel.fr/content/www/fr/fr/products/docs/discrete-gpus/data-center-gpu/flex-series/overview.html

Pour rappel, les vGPU ne sont pas uniquement dédiés aux workloads avec des applications graphiques, ils permettent également d’accélérer les outils de productivité (Microsoft Teams, Office 365, WebGL, Youtube, ..) et déchargent le CPU de l’encodage du protocole Blast.

Équilibrage DRS des VM vGPU

Depuis vSphere 8.0 U2, il est désormais possible d’utiliser la fonctionnalité de Load Balancing de vSphere DRS pour équilibrer sur le cluster les machines virtuelles disposant d’un vGPU.
La migration des VMs est automatisée lors de la mise en mode maintenance d’un hôte ESXi.

Pour activer cette fonctionnalité, il est nécessaire d’ajouter deux variables dans les paramètres avancés de DRS :
PassthroughDrsAutomation = 1
LBMaxVmotionPerHost = 1

Ce paramétrage va permettre de migrer les VMs dont le temps de blocage dû au VMotion (stun time) n’excède pas 100 secondes.

Pour les machines virtuelles vGPU dont les temps de stun dépassent la « limite de temps de stun vMotion » (100 secondes par défaut), il est possible d’ajouter l’option avancée de cluster DRS suivante :

Option : VmDevicesStunTimeTolerated
Valeur :  (100 secondes par défaut)

⚠️ A l’heure actuelle, la documentation de Nvidia GRID 16 précise qu’il faut configurer DRS en mode Manuel ou Partiellement automatisé…

MàJ : vSphere 8.0 Update 2

L’update 2 de vSphere 8 apporte une nouveauté concernant la gestion des GPU avec le matériel virtuel version 21 :

Le nombre maximum de vGPU par machine virtuelle passe à 16 !

Upgrade en 2306 : Error 421 Unknown

Lors de l’upgrade d’un Pod Horizon vers la version 2306, il est possible que vous obteniez une erreur 421 lors de l’accès HTML5, sur le client Horizon ou sur la console Horizon.

Ce problème impactera aussi la mise à jour des serveurs de Connection Replica car une erreur LDAP s’affichera pendant l’upgrade.
La commande repadmin confirmera également les erreurs de réplication.

LDAP n’est pas prêt pour une mise à niveau. Des problèmes de réplication sont associés au serveur.
LDAP is not ready for an upgrade

Pour résoudre ce problème, il est nécessaire d’ajouter une variable dans le fichier locked.properties de chaque Connection Server.

Ce fichier se trouve dans le dossier C:\Program Files\VMware\VMware View\Server\sslgateway\conf du Connection Server. Si celui-ci n’existe pas, il est nécessaire de le créer.

Ajouter la variable suivante :
portalHost.1=fqdn_du_connectionserver.domaine.local

Si un Load Balancer est utilisé, ajouter également :
balancedHost=url_du_loadbalancer.domaine.local

Depuis la 2306, la syntaxe suivante est possible :
balancedHost.1=xxxx.com
balancedHost.2=xxxx.domain.com
portalHost.1=192.168.0.0

>> Pas de limite au nombre de portalHost ou balancedHost.

Redémarrer le service VMware Horizon View Connection Server pour appliquer les changements.

MàJ : Unified Access Gateway 2306.1

Correctifs mineurs pour la version 2306 de l’UAG

Principales nouveautés :

  • Problème de vérification de la révocation entraînant le rejet d’un certificat de serveur principal valide lorsque la validation étendue du certificat de serveur est activée.
  • Lorsqu’une session de poste de travail Horizon est authentifiée via TrueSSO, que l’utilisateur verrouille le poste de travail et tente de revenir au poste de travail, le rétablissement de la session échoue.
  • Si une session est inactive pendant un certain temps, Unified Access Gateway ne parvient pas à extraire les artefacts SAML du JWT, ce qui peut nécessiter la réauthentification des applications.
  • L’authentification RADIUS demande parfois plusieurs fois le mot de passe pour terminer l’authentification.
  • Impossible d’accéder aux sites internes à partir des applications utilisant le SDK Tunnel.

MàJ : Nvidia vGPU Software 16.1

Cette version fait partie de la branche LTS (fin de support : Juillet 2026)

Voici les nouveautés apportées par cette version :

  • Options de l’API NVML et de la commande nvidia-smi pour contrôler le scheduling des vGPUs time-sliced
  • Support de SUSE Linux Enterprise Server 12 SP5
  • Support des GPUs suivants :
    • Nvidia L40S
    • Nvidia RTX 5000 Ada

Téléchargement sur le site Nvidia Enterprise : lien

Page 2 of 11

Fièrement propulsé par WordPress & Thème par Anders Norén