Windows Server 2016 Hyper-V: plus sécurisé, mais pas plus rapide

Avec Windows Server 2016, Microsoft a introduit une longue liste d'améliorations à Hyper-V. Outre les ajouts fonctionnels tels que la prise en charge des conteneurs, la virtualisation imbriquée et l'augmentation des limites de mémoire et de processeur virtuel, vous trouverez un certain nombre de nouvelles fonctionnalités, notamment des points de contrôle de niveau production et la possibilité d'ajouter à chaud de la mémoire et des adaptateurs réseau, qui facilitent l'administration.

Mais l'objectif principal de Microsoft dans la version Hyper-V 2016 semble avoir été d'améliorer la sécurité. En fait, j'irais jusqu'à dire que la nouvelle fonctionnalité tueur d'Hyper-V est constituée de machines virtuelles protégées, qui fonctionnent avec le chiffrement BitLocker et un service de tuteur pour garantir que les machines virtuelles ne fonctionnent que sur des hôtes autorisés.

Si une fonctionnalité Hyper-V 2016 me poussait à mettre à niveau, ce serait la fonctionnalité VM protégée. Mais la capacité d'allouer plus de mémoire aux machines virtuelles de génération 2 et la possibilité d'ajouter à chaud de la mémoire et des adaptateurs réseau aux hôtes de virtualisation sont également des atouts importants.

Un domaine dans lequel Hyper-V 2016 ne peut pas s'améliorer est les performances des machines virtuelles. En fait, mes tests d'évaluation Sandra d'une machine virtuelle Windows Server 2012 R2 sur Hyper-V 2012 R2 par rapport à Hyper-V 2016 indiquent un pas en arrière. Je n'appellerais en aucun cas ces résultats définitifs, mais gardez-le à l'esprit lorsque vous commencez à évaluer Windows Server 2016 Hyper-V pour vos propres charges de travail.

Le processus de configuration Hyper-V

Aux fins de cet examen, j'ai mis à niveau un serveur Windows Server 2012 R2 existant vers Windows Server 2016. Pour la plupart, le processus de mise à niveau était presque identique à celui de l'installation de Windows Server 2012 R2. La différence était que l'assistant d'installation affiche un message d'avertissement vous indiquant que les mises à niveau de Windows Server ne sont pas recommandées et que vous devez effectuer une nouvelle installation. L'assistant d'installation ne vous empêchera pas d'effectuer une mise à niveau sur place, mais vous devez cliquer sur un bouton de confirmation pour accuser réception du message d'avertissement.

J'ai avancé avec le processus de mise à niveau (même si j'ai depuis effectué plusieurs installations propres) parce que je voulais voir ce qui se passerait. En outre, le serveur que j'ai mis à niveau exécutait une installation propre de Windows Server 2012 R2. J'avais installé le rôle Hyper-V et créé des machines virtuelles, mais je n'avais installé aucun logiciel supplémentaire (à part les correctifs Microsoft) ni activé des paramètres de configuration anormaux.

Le processus de mise à niveau de Windows Server s'est très bien déroulé. Tous mes paramètres de système d'exploitation existants ont été préservés et mes machines virtuelles sont restées fonctionnelles après la mise à niveau. De plus, le gestionnaire Hyper-V semblait encore tout à fait familier. Bien que Microsoft ait introduit un certain nombre de nouvelles fonctionnalités Hyper-V dans Windows Server 2016, le gestionnaire Hyper-V a très peu changé. Les administrateurs ayant déjà une expérience Hyper-V sont sûrs de se sentir comme chez eux lorsqu'ils utilisent la nouvelle version.

Déploiement des mises à niveau de cluster Hyper-V

Bien que j'aie initialement effectué une mise à niveau sur place d'un seul hôte Hyper-V, Microsoft prend également en charge les mises à niveau progressives des déploiements Hyper-V en cluster. Cela signifie que les serveurs exécutant Windows Server 2016 Hyper-V peuvent être ajoutés aux clusters Hyper-V Windows Server 2012 R2 existants et émuler essentiellement les hôtes Hyper-V Windows Server 2012 R2, leur permettant ainsi de participer pleinement au cluster. Les machines virtuelles Windows Server 2012 R2 Hyper-V peuvent être migrées en direct vers des nœuds Windows Server 2016 Hyper-V, permettant ainsi une mise à niveau du système d'exploitation de cluster sans mettre aucune des machines virtuelles hors connexion.

Au cours de la rédaction de cet examen, j'ai déployé un cluster à trois nœuds de serveurs Windows Server 2012 Hyper-V, puis j'ai ajouté un nœud Windows Server 2016 Hyper-V. J'ai pu joindre avec succès le nœud au cluster et migrer en direct les machines virtuelles entre les deux versions Hyper-V différentes. En bref, le processus de mise à niveau du cluster roulant a fonctionné sans problème.

J'ai terminé ma mise à niveau de cluster au cours d'un après-midi, mais Microsoft permet une coexistence à long terme entre les versions Hyper-V au sein d'un cluster. La coexistence à long terme sera sûrement plus facile maintenant que Microsoft a réorganisé le gestionnaire Hyper-V, afin qu'il puisse être utilisé simultanément avec plusieurs versions Hyper-V. À partir du Gestionnaire Hyper-V dans Windows Server 2016, vous pouvez également gérer Hyper-V sur Windows Server 2012 et Windows Server 2012 R2.

Un inconvénient du nouveau gestionnaire Hyper-V: étant donné que Microsoft fournit désormais des mises à jour aux services d'intégration Hyper-V via le processus normal de gestion des correctifs, l'option de déploiement des services d'intégration semble avoir été supprimée. L'installation des services d'intégration via Windows Update semble être une progression, mais il ne serait pas gênant d'avoir l'ancienne méthode disponible comme solution de secours.

Notez qu'une fois que tous vos nœuds de cluster exécutent Windows Server 2016 Hyper-V et que vous avez mis à jour le niveau fonctionnel du cluster (une action administrative délibérée que vous exécutez via PowerShell), vous perdrez la possibilité d'ajouter des nœuds Windows Server 2012 R2 au grappe. Après avoir mis à jour le niveau fonctionnel du cluster, il n'y a pas de retour en arrière.

Machines virtuelles protégées

Bien que beaucoup de travail ait été accompli au fil des ans pour protéger les VM contre les menaces extérieures, les machines virtuelles (y compris celles sur des plates-formes concurrentes telles que VMware, Xen et KVM) sont restées vulnérables aux compromissions d'un administrateur non autorisé. Rien n'empêche un administrateur de copier une machine virtuelle entière sur une clé USB et de sortir avec elle. Bien sûr, il était auparavant possible de chiffrer des disques durs virtuels, mais un administrateur autorisé peut facilement annuler tout chiffrement au niveau de la VM.

Dans Windows Server 2016 Hyper-V, la fonctionnalité de machine virtuelle protégée crypte les disques et l'état d'une machine virtuelle d'une manière qui empêche quiconque autre que les administrateurs de machine virtuelle ou de locataire de démarrer la machine virtuelle ou d'accéder à son contenu. La fonctionnalité fonctionne en tirant parti d'une nouvelle fonctionnalité Windows Server appelée Host Guardian Service, qui détient les clés pour chiffrer et déchiffrer les machines virtuelles protégées.

Le service Host Guardian vérifie si l'hôte Hyper-V est autorisé ou «attesté» à exécuter la machine virtuelle. C'est vrai: les administrateurs peuvent restreindre les machines virtuelles protégées, de sorte qu'ils ne s'exécuteront que sur des hôtes spécifiques qui réussissent le test d'attestation. Cela signifie que si un administrateur non autorisé devait copier une VM protégée sur un lecteur flash, la copie de la VM serait inutile pour l'administrateur. La machine virtuelle ne pourrait pas s'exécuter en dehors de l'organisation et son contenu serait inaccessible car les clés nécessaires pour déchiffrer la machine virtuelle sont protégées par le service Host Guardian.

Le service Host Guardian prend en charge deux modes d'attestation différents, appelés attestation approuvée par l'administrateur et attestation approuvée par TPM. L'attestation approuvée par l'administrateur est le plus simple des deux modes à déployer, mais pas aussi sécurisée que l'attestation approuvée par TPM. Les hôtes de confiance administrateur sont basés sur l'appartenance au groupe de sécurité Active Directory, tandis que les hôtes de confiance TPM sont basés sur l'identité du TPM et même sur les vérifications de démarrage et d'intégrité du code.

En plus de son processus de configuration plus complexe, l'attestation de confiance TPM a certaines exigences matérielles. Les hôtes protégés doivent prendre en charge TPM 2.0 et UEFI 2.3.1 ou version ultérieure. En revanche, l'attestation approuvée par l'administrateur n'a pas d'exigences matérielles importantes au-delà de celles nécessaires pour exécuter Hyper-V.

Bien que la majeure partie de la couverture médiatique relative à la sécurité Hyper-V 2016 se soit concentrée sur les machines virtuelles protégées, Microsoft a introduit d'autres améliorations de sécurité. Par exemple, Hyper-V prend désormais en charge le démarrage sécurisé pour certaines machines virtuelles Linux. Selon Microsoft, les versions Linux prises en charge incluent Ubuntu 14.04 et versions ultérieures, Suse Linux Enterprise Server 12 et versions ultérieures, Red Hat Enterprise Linux 7.0 et versions ultérieures et CentOS 7.0 et versions ultérieures.

Une autre amélioration importante de la sécurité est la prise en charge du chiffrement de disque du système d'exploitation basé sur BitLocker dans les machines virtuelles de génération 1. Cette amélioration particulière de la sécurité n'a pas beaucoup retenu l'attention de la presse, mais elle est significative en raison du nombre de machines virtuelles de génération 1 exécutées dans des environnements de production. Après tout, les machines virtuelles de génération 2 ne sont prises en charge que pour une utilisation avec des systèmes d'exploitation invités spécifiques. Bien que la liste des systèmes d'exploitation invités pris en charge ait augmenté au fil des ans, certains déploiements Linux qui pourraient éventuellement fonctionner sur des machines virtuelles de génération 2 continuent de fonctionner sur des machines virtuelles de génération 1, simplement en raison de l'incapacité de changer la version de la machine virtuelle.

Conteneurs Windows

L'une des principales fonctionnalités introduites dans Windows Server 2016 est les conteneurs, dont il existe deux types. Les conteneurs Windows Server partagent un noyau de système d'exploitation avec l'hôte (et tout autre conteneur qui pourrait s'exécuter sur l'hôte), tandis que les conteneurs Hyper-V utilisent l'hyperviseur et un système d'exploitation invité léger (Windows Server Core ou Nano Server) pour fournir un niveau supérieur d'isolement. Considérez les conteneurs Hyper-V comme des machines virtuelles légères.

À ce jour, j'ai passé du temps à expérimenter les deux types de conteneurs. Mon évaluation: bien que les conteneurs semblent fonctionner comme annoncé, leur utilisation est associée à une courbe d'apprentissage abrupte. Les conteneurs doivent être créés et gérés en ligne de commande (par opposition à l'utilisation du gestionnaire Hyper-V) via la syntaxe de commande Docker, qui est très différente des autres environnements de ligne de commande tels que PowerShell.

Je pense que les conteneurs s'avéreront pertinents pour les administrateurs Windows, mais je recommande fortement de passer du temps dans un environnement de laboratoire à s'habituer à Docker et à ses nombreuses nuances avant de déployer des conteneurs en production.

Questions de performance

Dans le but de tester les performances de Windows Server 2016, j'ai mis en ligne un nouveau serveur, exécutant une nouvelle installation de Windows Server 2012 R2 Hyper-V. Ce serveur était équipé d'un matériel bas de gamme et vieillissant, mais étant donné que l'objectif était de vérifier les performances relatives, un matériel à la pointe de la technologie n'était pas vraiment nécessaire.

Avec le nouveau serveur Hyper-V Windows Server 2012 R2 en ligne, j'ai créé une machine virtuelle de génération 2 exécutant Windows Server 2012 R2. L'hôte et les systèmes d'exploitation invités ont été entièrement corrigés, et ma VM de test était la seule machine virtuelle présente sur l'hôte.

Une fois le nouveau système d'exploitation invité opérationnel, j'ai installé Sandra 2016 dans la machine virtuelle pour évaluer les performances de la machine virtuelle. Je m'intéressais principalement aux performances du processeur, du stockage, de la mémoire et du réseau. 

Avec un ensemble de mesures de base en main, j'ai mis à niveau l'hôte Hyper-V vers Windows Server 2016. Microsoft déconseille les mises à niveau sur place, mais j'ai choisi d'en effectuer une plutôt qu'une installation propre afin de garder mon environnement de test aussi cohérent que possible sur tous les tests.

Une fois la mise à niveau terminée, j'ai démarré la machine virtuelle, qui exécutait toujours Windows Server 2012 R2. Ensuite, j'ai tenté de mettre à niveau les services d'intégration Hyper-V sur la machine virtuelle, mais Microsoft a supprimé l'option de le faire manuellement. Les services d'intégration sont désormais fournis via Windows Update.

Après avoir entièrement corrigé l'hôte Windows Server 2016 Hyper-V, j'ai répété les tests de référence dans le but de voir si la nouvelle version d'Hyper-V donnerait des gains de performances. En fait, le contraire s'est avéré vrai. Ma VM a constaté une baisse significative des performances.

Pour mon dernier test, j'ai effectué une mise à niveau sur place du système d'exploitation invité vers Windows Server 2016. J'ai entièrement corrigé le nouveau système d'exploitation invité et répété mes tests de référence une dernière fois. Cette fois, les performances de ma machine virtuelle se sont largement améliorées, mais pas tout à fait au niveau de la machine virtuelle Windows Server 2012 R2 d'origine exécutée sur un hôte Windows Server 2012 R2, et quelques tests ont vu les performances diminuer davantage.

J'ai listé les métriques que j'ai comparées et les résultats ci-dessous.

Test Sandra 2016 Hôte Windows Server 2012 R2 et machine virtuelle Windows Server 2012 R2 Hôte Windows Server 2016 et machine virtuelle Windows Server 2012 R2 Hôte Windows Server 2016 et machine virtuelle Windows Server 2016

Arithmétique du processeur (performances natives agrégées)

27,73 GOPS

20,82 GOPS

26,31 GOPS

Bande passante de cryptographie

435 Mbps

390 Mbps

400 Mbps

Bande passante entre les cœurs du processeur

2,12 Go / s

2,08 Go / s

2 Go / s

Disques physiques (score du lecteur)

975,76 Mo / s

831,9 Mbps

897 Mbps

E / S du système de fichiers (score de l'appareil)

242 IOPS

238 IOPS

195 IOPS

Bande passante mémoire (performances de la mémoire agrégée)

10,58 Go / s

10 Gbit / s

10 Gbit / s

Débit de transaction mémoire

3 MTPS

3 MTPS

2,92 MTPS

Réseau LAN (bande passante de données)

7,56 Mbps

7,21 Mbps

7,16 Mbps

Comme vous pouvez le voir, selon mes tests Sandra, la machine virtuelle Windows Server 2012 R2 ne fonctionnait pas aussi bien sur Windows Server 2016 Hyper-V que sur la version précédente d'Hyper-V. J'ai exécuté chaque benchmark plusieurs fois (alors que l'hôte était inactif) dans le but de m'assurer que mes métriques étaient exactes. Les performances de la machine virtuelle se sont améliorées lorsque le système d'exploitation invité a été mis à niveau vers Windows Server 2016, mais pas au niveau de l'invité Windows Server 2012 R2 s'exécutant sur Windows Server 2012 R2 Hyper-V.

Naturellement, vous devriez prendre ces résultats de référence (et tout autre) avec un grain de sel. Les benchmarks ne reflètent pas toujours la réalité, et ces résultats ne représentent qu'un seul ensemble de tests sur une configuration matérielle. De plus, je suis prêt à donner à Microsoft le bénéfice d'un doute car les métriques ont été capturées sur un hôte qui avait été mis à niveau à partir d'une version précédente de Windows Server, plutôt que sur un hôte exécutant une installation propre.

Votre seul test significatif des performances de Windows Server 2016 Hyper-V sera vos charges de travail réelles sur votre matériel réel. Compte tenu des résultats des tests Sandra, vous voudrez surveiller de près les performances d'Hyper-V 2016.