8. VDI : RemoteFX et Dynamic Memory
Nous en avons parlé plus tôt dans cet article, Microsoft introduit dans le Service Pack 1 de Windows Server 2008 R2 et Windows 7, un ensemble de technologies entièrement dédiées à VDI. Le but est de donner des arguments puissants en ce qui concerne la virtualisation des postes de travail mise à disposition au travers de centre de données et ce afin de clairement rivaliser avec son concurrent VMWare. Jusqu’à présent, lorsque vous virtualisiez un système d’exploitation, il n’était pas possible de bénéficier des fonctionnalités d’expérience utilisateur comme l’interface Aero. Avec l’arrivée du Service Pack 1, Microsoft introduit la fonctionnalité RemoteFX (issue du rachat de Calista en 2008) permettant de bénéficier des fonctionnalités de calculs graphiques du serveur à l’intérieur d’une machine virtuelle. L’utilisateur ne voit ainsi aucune différence entre une machine physique et virtuelle.
Le Service Pack 1 de Windows Server 2008 R2 introduit aussi une nouveauté dédiée à Hyper-V appelée Dynamic Memory. Cette fonctionnalité permet de configurer une machine virtuelle afin que la quantité de mémoire assignée à la VM s’ajuste en fonction de ses besoins pendant son exécution. Il y a donc une notion d’allocation dynamique de la mémoire au système d’exploitation. Ceci permet d’augmenter le nombre de machines virtuelles sur une machine physique. Le but est d’assurer que la mémoire est distribuée de façon optimale entre les différentes machines virtuelles.
8.1 Installation du Service Pack 1
Cette partie est légèrement superflue étant donné le niveau requis pour installer un Service Pack, néanmoins je tiens à la détailler en rappelant certaines choses.
Avant d’appliquer le Service Pack, veillez à faire une sauvegarde de la machine. Ceci inclut une sauvegarde des données et du système au travers des différents outils mis à disposition par Microsoft. Pour sauvegarder les données de l’état utilisateur, vous pouvez utiliser Windows Easy Transfer (inclus dans Windows) ou User State Migration Tool (USMT). Vous pouvez effectuer une sauvegarde parla fonctionnalité Sauvegarde et Restauration de Windows. Pour le serveur, vous pouvez utiliser System Center Data Protection Manager.
Une fois la sauvegarde faite, procurez-vous le Service Pack 1 dans l’architecture souhaitée pour votre système par le biais du centre de téléchargement de Microsoft, de Windows Update, ou de WSUS.
Note : A l’heure où cet article est écrit, le SP1 n’est pas disponible. Il n’existe aucune version Bêta disponible au public.
Rappel : Depuis Windows Vista, les sources de Service Pack sont similaires pour la version cliente ou serveur du système d’exploitation concerné. Ainsi les sources du Service Pack 1 de Windows 7 fonctionnent aussi pour Windows Server 2008 R2.
Lancez ensuite l’installeur et lisez les recommandations. Acceptez ensuite le contrat de licence et lancez l’installation (vous pouvez choisir de laisser le processus redémarrer la machine quand il en a besoin)
Après de multiples redémarrages, l’installeur vous signale l’installation avec succès du service pack 1 du système d’exploitation.
Vous pouvez vérifier la version du système (Build 7601) par le biais de la commande winver ou du panneau de configuration « Système » :
8.2 Implémentation de RemoteFX
Le but de RemoteFX (issue du rachat de Calista en 2008) est de permettre à la machine virtuelle de bénéficier des fonctionnalités de calculs graphiques du serveur.
Les pré requis nécessaires à l’implémentation de cette technologie sont lourds et importants. Il y a très peu de chance que vous puissiez mettre en place cette technologie en utilisant des postes de travail conventionnels.
Voici la liste des pré requis :
- Assurez-vous que le serveur qui héberge le rôle RD Virtualization Host (ainsi que le rôle Hyper-V) dispose d’un processeur Intel EPT ou AMD NPT ou disposant des capacités SLAT (Second Level Address Translation).
- Assurez-vous que le serveur qui héberge le rôle RD Virtualization Host (ainsi que le rôle Hyper-V) dispose d’un processeur graphique (GPU) qui est compatible avec DirectX 9.0 et qui dispose d’un minimum d’1 GB de RAM dédié à la vidéo. Microsoft estime que chaque machine virtuelle consomme approximativement 200MB de RAM de la carte vidéo. Le nombre de machines virtuellesisposant de la fonctionnalité RemoteFX dépend donc des capacités de la carte vidéo.
- Assurez-vous que le serveur qui héberge le rôle RD Virtualization Host dispose d’une carte vidéo à un seul processeur graphique (GPU). L’utilisation d’une carte graphique à plusieurs processeurs graphiques (GPU) n’est pas supportée dans cette version. Si le serveur dispose d’une carte vidéo embarquée, désactivez-la dans le BIOS.
- Assurez-vous d’avoir téléchargé et installé les derniers drivers pour la carte graphique de votre serveur RemoteFX. Microsoft déconseille l’utilisation des drivers inclus dans Windows Server 2008 R2
- Si vous utilisez une carte ATI, assurez-vous que le package Catalyst ou Crossfire n’est pas installé.
- Si vous utilisez une carte NVidia, n’utilisez pas le driver en version 196.75. Microsoft rappelle qu’une alerte a été émise par NVidia concernant cette version.
- Assurez-vous que la fonctionnalité Hyper-threading est activé sur le serveur hébergeant le rôle RD Virtualization Host.
- Si vous utilisez une machine virtuelle Windows 7 SP1 x86, vous devez allouer au minimum 1024MB de mémoire pour pouvoir bénéficier de RemoteFX. Pour une machine virtuelle Windows 7 SP1 x64, vous devez lui attribuer 2048 MB de mémoire.
- Le système d’exploitation de la machine virtuelle doit bien entendu utiliser le client RemoteFX. Pour cela, vous devez lui installer le Service Pack 1 de Windows 7.
- Enfin, assurez-vous que la connexion réseau entre le client et le serveur hébergeant le rôle RD Virtualization Host est une connexion 10Mbps minimum avec un temps de latence inférieur à 20ms afin d’assurer la fluidité des effets graphiques.
Note : Il n’est pas nécessaire d’installer le Service Pack 1 sur le reste de l’infrastructure comme sur les serveurs Remote Desktop Web Access ou Remote Desktop Connexion Broker ou Remote Desktop Session Host.
Installation du service RemoteFX
Dès lors que le Service Pack 1 est installé sur les machines virtuelles servant dans le pool de bureaux virtuels ou dans les bureaux virtuels personnels ainsi que sur le serveur hébergeant le rôle RD Virtualization Host, connectez-vous sur ce serveur et ouvrez la console Server Manager. Dirigez-vous dans l’arborescence « Roles => Remote desktop Services ». Dans la partie « Role Services », on peut observer l’apparition d’un nouveau service « RemoteFX ».
Cliquez sur « Add Role Services » pour ouvrir l’assistant d’ajout. Cliquez ensuite sur la case « RemoteFX » et passez à l’écran de confirmation.
L’installation de ce composant ne nécessite pas le redémarrage de la machine. Une fois l’installation terminée, on peut observer l’apparition d’un service « VmHostAgent » ou « Remote Desktop Virtualization Host Agent » :
Activation de la RemoteFX sur la machine virtuelle
Une fois le composant serveur correctement installé, ouvrez la console « Hyper-V Manager ». Ouvrez ensuite les propriétés de la machine virtuelle sur laquelle vous souhaitez activer la fonctionnalité. Pour rappel, celle-ci doit disposer d’un client RemoteFX incluant l’utilisation de Windows 7 SP1 ou plus récent. Cliquez ensuite sur « Add Hardware ». Sélectionnez « RemoteFX 3D Video Adapter » et cliquez sur « Add » pour ajouter la carte graphique virtuelle.
Une fois ajoutée, vous pouvez configurer la résolution ainsi que le nombre d’écrans maximum supportés. Vous pouvez autoriser l’utilisation de 4 écrans simultanés. La résolution est limitée à 1920*1200.
Notez qu’il n’est possible d’attribuer qu’un nombre d’écran limité pour une résolution spécifique :
Résolution maximum |
Nombre maximum d’écrans |
1024 x 768 |
4 |
1280 x 1024 |
4 |
1600 x 1200 |
3 |
1920 x 1200 |
2 |
Si vous tentez d’attribuer un nombre supérieur d’écran à la limite définie pour la résolution, ceci résulte en une erreur.
Lorsqu’on tente de se connecter à une machine virtuelle disposant du client RemoteFX, on peut voir que l’interface Aero Glass est activée (barre de tâches transparente) :
RemoteFX répond ainsi aux attentes du marché en offrant un système d’exploitation virtuel disposant des capacités complètes que l’on peut retrouver sur une machine physique. Cette fonctionnalité risque d’encourager l’adoption de la technologie VDI de Microsoft en entreprise
8.3 Configuration de la fonctionnalité Dynamic Memory
L’autre nouveauté apportée par le Service Pack 1 de Windows Server 2008 R2 est Dynamic Memory. Cette fonctionnalité concerne l’hyperviseur : Hyper-V. Elle permet de configurer une machine virtuelle afin que la quantité de mémoire assignée à la VM s’ajuste en fonction de ses besoins pendant son exécution. Il y a donc une notion d’allocation dynamique de la mémoire au système d’exploitation. Ceci permet d’augmenter le nombre de machines virtuelles sur une machine physique. Le but est d’assurer que la mémoire est distribuée de façon optimale entre les différentes machines virtuelles. Le système d’exploitation virtuel doit aussi être en capacité de gérer cette arrivée de mémoire alors qu’il est en cours d’exécution. Les systèmes d’exploitation supportant cette fonctionnalité sont les suivants :
-
Windows Server 2008 R2 Edition Entreprise (32-bit et 64-bit)
-
Windows Server 2008 R2 Edition Datacenter (32-bit et 64-bit)
-
Windows 7 Edition Intégrale (32-bit et 64-bit)
-
Windows 7 Edition Entreprise (32-bit et 64-bit)
-
Windows Server 2008 Edition Entreprise (32-bit et 64-bit)
-
Windows Server 2008 Edition Datacenter (32-bit et 64-bit)
-
Windows Vista Edition Intégrale (32-bit et 64-bit)
-
Windows Vista Edition Entreprise (32-bit et 64-bit)
-
Windows Server 2003 R2 Edition Entreprise (32-bit et 64-bit)
-
Windows Server 2003 R2 Edition Datacenter (32-bit et 64-bit)
-
Windows Server 2003 Edition Entreprise (32-bit et 64-bit)
-
Windows Server 2003 Edition Datacenter (32-bit et 64-bit)
Avant d’activer la fonctionnalité « Dynamic Memory » sur une machine virtuelle, vous devez vous assurer que celle-ci dispose des derniers composants d’intégration Hyper-V.
Pour activer « Dynamic Memory », ouvrez la console Hyper-V Manager. Ouvrez ensuite les propriétés de la machine virtuelle sur laquelle vous souhaitez activer la fonctionnalité. Cliquez ensuite sur « Memory ». Vous pouvez utiliser l’attribution de mémoire classique et antérieure au SP1 de Windows Server 2008 R2 en utilisant l’allocation Statique.
Pour activez DM, cochez « Dynamic ». On distingue ensuite quatre paramétrages :
-
Initial memory ou “Startup RAM”. Ceci représente le montant de mémoire requis pour démarrer la machine virtuelle (voir tableau ci-dessous). Cette valeur doit être assez importante pour permettre au système virtuel de démarrer mais aussi bas que possible pour permettre des performances optimales avec l’allocation dynamique de mémoire. La machine virtuelle ne se verra jamais assigner un niveau de mémoire inférieur à la valeur de démarrage.
-
Maximum memory ou “Maximum RAM”. La machine virtuelle ne sera pas autorisée à utiliser plus de mémoire que le montant spécifié dans ce champ. Vous pouvez décider d’allouer jusqu’à 64 GB de mémoire à une machine virtuelle.
-
Memory buffer. Le tampon de mémoire (pourcentage) indique combien de mémoire doit être assigné à la machine virtuelle comparé au montant de mémoire nécessaire aux applications, services, et charge de travail de la machine virtuelle. Le buffer n’est pas maintenu s’il n’y a plus assez de mémoire disponible sur le serveur pour donner à chaque machine virtuelle la mémoire demandée.
-
Memory priority. Cette valeur reflète comment la mémoire sera distribuée entre les machines virtuelles s’il n’y a plus assez de mémoire physique disponible sur le serveur pour donner à chaque machine virtuelle la mémoire demandée. Une machine virtuelle disposant d’une priorité importante se verra attribuée plus de mémoire qu’à une machine virtuelle avec une priorité plus faible avec les paramétrages similaires. En augmentant la priorité de mémoire d’une machine virtuelle permettra d’assurer que la mémoire physique disponible assignée à la machine virtuelle le sera avant qu’elle en ait besoin.
Pour chaque système d’exploitation, Microsoft recommande les données suivantes :
Système d’exploitation |
Mémoire requise |
Mémoire recommandé |
Mémoire intiale (avec DM activé) |
Windows Server 2008 R2 Enterprise Edition |
512MB |
N/A |
512MB |
Windows Server 2008 R2 Datacenter Edition |
512MB |
N/A |
512MB |
Windows 7 Ultimate Edition |
1GB |
N/A |
512MB |
Windows 7 Enterprise Edition |
1GB |
N/A |
512MB |
Windows Server 2008 Enterprise Edition |
512MB |
1GB |
512MB |
Windows Server 2008 Datacenter Edition |
512MB |
1GB |
512MB |
Windows Vista Ultimate Edition |
512MB |
1GB |
512MB |
Windows Vista Enterprise Edition |
512MB |
1GB |
512MB |
Windows Server 2003 R2 Enterprise Edition |
128MB |
256MB |
128MB |
Windows Server 2003 R2 Datacenter Edition |
512MB |
1GB |
128MB |
Windows Server 2003 Enterprise Edition |
128MB |
256MB |
128MB |
Windows Server 2003 Datacenter Edition |
512MB |
1GB |
128MB |
Une fois le système démarré, on remarque qu’il démarre avec le montant de mémoire spécifié. Deux nouvelles colonnes sont apparues :
-
« Current Memory » affiche la quantité de mémoire attribuée à un instant donné.
-
« Memory Available » affiche le pourcentage de mémoire disponible sur le système d’exploitation de la machine virtuelle.
Après avoir fait varier les paramètres « Memory Buffer » et « Memory Priority », on remarque que la quantité de mémoire allouée à la machine virtuelle passe de 512MB à 2048MB.
Customization de Dynamic Memory pour de meilleures performances
Microsoft donne quelques recommandations et customisations, si vous avez active Dynamic Memory et que vous n’êtes pas satisfait des performances :
-
Augmenter la taille du fichier de pagination du système d’exploitation de la machine virtuelle.
-
Augmenter le paramètre Memory Buffer de la machine virtuelle. L'augmentation de la mémoire tampon se traduira par plus de mémoire attribuée à la machine virtuelle par rapport à la quantité de mémoire réellement nécessaire par les applications et les services en cours d'exécution dans la machine virtuelle.
-
Augmenter le montant initial de mémoire (Initial Memory) pour la machine virtuelle.
Certaines applications attribuent des montants fixes de la mémoire basés sur la quantité de mémoire disponible lorsque l'application démarre pour la première. Ces applications fonctionnent mieux avec des valeurs plus élevées pour la mémoire initiale.
Revenir au plan : http://microsofttouch.fr/blogs/js/pages/microsoft-virtual-desktop-infrastructure-vdi-sous-tous-ses-angles.aspx