Comme Veeam continue de faire des progrès avec deux plateformes de virtualisation, je me disais qu’il était temps de trouver comment utiliser Microsoft Hyper-V dans mon environnement de test. Je voulais savoir s’il était possible de virtualiser à l’intérieur d’une machine virtuelle VMware. Les solutions présentées par Veeam ont beaucoup de succès sur des ordinateurs portables en environnement de test avec VMware Workstation nesté par exemple. On avait souvent un serveur ESX nesté, vCenter, DC et les applis Veeam qui tournaient sur un seul portable et je voulais savoir si on pouvait y ajouter Hyper-V.
On m’a longtemps dit que c’était impossible, jusqu’à il y a quelques mois où j’ai entendu une rumeur affirmant que cela serait possible quand ESXi 5 sortirait. J’ai aussi entendu que ESXi 5 tournant sur Intel Nehalem ou sur Intel Core i7 permettrait d’avoir des hyperviseurs nestés sur lesquels tourneraient également des machines virtuelles 64bit nestées. Donc d’abord je me suis assuré d’avoir cette architecture Intel, ou son équivalent AMD, sur mon système avant d’avoir un nouveau portable. J’ai également réussi à mettre en place un environnement de test avec la même architecture que celle que j’utilise quand je suis en déplacement pour les évènements.
Quelqu’un m’a envoyé des liens sur Twitter vers des blogs qui m’ont aidé à commencer ma quête:
http://www.vcritical.com/2011/07/vmware-vsphere-can-virtualize-itself/#comment-12442
http://www.virtuallyghetto.com/2011/07/how-to-enable-support-for-nested-64bit.html
Mais la version GA de ESXi était sortie avant que je n’ai eu l’occasion de tester. J’ai trouvé pas mal d’indications sur ces blogs, mais comme les autres qui ont essayé, je n’obtenais que des écrans noirs en suivants les instructions des posts. Peu importe les informations supplémentaires que je donnais, cela ne voulait pas fonctionner. Je ne me laissais pas abattre et je décidais d’essayer quelque chose de différent. J’ai installé VMware Workstation 8 à la place de ESXi 5 et j’ai réussi à faire tourner Hyper-VM nesté. A partir de là, je savais que mon matériel serait compatible avec Hyper-V nesté. Les posts du blog cités plus haut disaient que pour le faire fonctionner il fallait une option de CPU/BIOS qui s’appelle Intel EPT. Maintenant je lis que si vous avez Nehalem/Core i7, vous devez également avoir Intel EPT et les posts du blog suggéraient qu’il fallait l’activer dans le BIOS. Par contre, je n’ai trouvé cette option dans aucun de mes BIOS système.
En testant pour voir ce qui fonctionnait, j’ai décidé d’utiliser Windows 2008 R2 Standard et d’activer Hyper-V en tant que rôle plutôt que d’installer Hyper-V comme programme autonome. J’ai fait ça uniquement pour me faciliter la vie, mais le produit Hyper-V autonome est également une option parfaitement viable.
Nester Hyper-VM sur VMware Workstation 8
Voici donc les étapes à suivre pour créer une MV Microsoft Hyper-V sur VMware Workstation 8 et je vous expliquerai après comment le faire sur ESXi 5 :
1. Créez une nouvelle MV avec version matérielle 8
2. Donnez-lui 4 GB de RAM, 2 x vCPUs et environ 80-100 GB d’espace disque en fonction du nombre de MVs que vous voulez nester sous Hyper-V.
3. Les instructions vous font croire qu’il faut prendre l’option VMware ESX en tant qu’OS invité… STOP ! SURTOUT PAS ! Sélectionnez Windows 2008 R2 x64.
4. Lorsque c’est fait, ajoutez un autre NIC à la MV utilisée comme réseau virtuel Hyper-V,
5. Dans les paramètres VM > CPU, assurez-vous d’avoir l’option pour passer à travers l’option Intel VT-x/EPT.
6. Assurez-vous d’avoir défini la MV pour booter à partir de Windows 2008 R2 x64 media ISO.
7. Avant de redémarrer, vous devez éditer le fichier de configuration .vmx et ajouter le paramètre: hypervisor.cpuid.v0 = “FALSE”
8. Maintenant redémarrez et installez Windows 2008 R2 x64.
9. Une fois que c’est fait, ouvrez Server Manager et cliquez sur « Add Role »..
10. Sélectionnez et installez l’option Hyper-V. Vous saurez à ce moment si votre système fonctionne correctement et s’il passe l’option Intel EPT, car si ce n’est pas le cas, vous serez bloqué.
11. Vous devez aussi sélectionner l’adaptateur réseau utilisé pour le réseau virtuel.
12. Maintenant, installez Hyper-V, puis redémarrez.
13. Une fois que c’est fait, ouvrez Server Manager, descendez jusqu’à Hyper-V et connectez-vous au serveur local.
14. Maintenant créez et installez une machine virtuelle.
Une fois que c’est fait, vous devriez être en mesure de l’utiliser normalement, même si c’est lent.
Nester Hyper-VM avec ESXi 5
Maintenant, la même chose avec ESXi 5 ; c’est plus compliqué, même si certaines étapes sont les mêmes.
1. Avant tout, vous devez ajouter une entrée dans le fichier /etc/vmware/config qui se trouve dans le mode support technique de votre ESXi 5. J’ai activé SSH via le profil de sécurité dans le client vSphere. Puis j’ai utilisé PuTTY SSH pour accéder au système ESXi.
2. A partir de là, j’ai lancé la commande suivante qui est nécessaire pour pouvoir nester des hyperviseurs:
# echo 'vhv.allow = "TRUE" ' >> /etc/vmware/config
Faites attention à bien utiliser les guillemets simples et doubles dans la ligne de commande
3. Maintenant, créez une machine virtuelle en version matérielle 8, avec 4GB (autant que vous pouvez), 2 x vCPUs, 2 vNICs ou plus et 100GB d’espace disque virtuel.
4. Avant de redémarrer la MV et d’installer Hyper-V, nous devons d’abord ajouter deux lignes au fichier configuration des machines virtuelles .vmx
Vous pouvez essayer de le faire via le client vSphere dans les paramètres de votre machine virtuelle > Paramètres de configuration, bien que j’ai eu plus de réussite en passant par une ligne de commande
Pour les ajouter en utilisant la ligne de commande, retournez dans SSH > remplacez le répertoire d’installation où votre MV Hyper-V est installée
# echo 'vhv.allow = "TRUE" ' >> /etc/vmware/config
Dans mon exemple, le fichier de configuration s’appelle Hyper-V.vmx. Saisissez les commandes suivantes :
# echo 'monitor.virtual_exec = "hardware" ' >> Hyper-V.vmx
# echo 'hypervisor.cpuid.v0 = "FALSE" ' >> Hyper-V.vmx
5. Maintenant dans les options de la VM > Options > CPU/MMU Virtualization assurez-vous que vous avez l’option pour passer Intel EPT.
6. Maintenant dans la zone d’options > CPUID Mask, cliquez sur Advanced
7. Ajoutez le niveau de masque CPU ECX suivant : —- —- —- —- —- —- –H- —-
8. Maintenant, installez Hyper-V ou Windows 2008 R2 et activez le rôle Hyper-V.
9. Et c’est tout bon!
Astuces/Conseils
Voici quelques conseils de la part de Ricky pour éviter d’être bloqué en cours de route :
- Dans ma partie système, l’OS doit être redémarré pendant l’installation de Microsoft Hyper-V. Lorsque vous redémarrez après l’installation d’Hyper-V, l’écran est bleu… MAIS PAS DE PANIQUE parce que l’écran bleu n’apparaît pas lorsqu’on utilise Hyper-V
- Avec mon serveur et mon portable, je n’avais aucun moyen pour déterminer si mes systèmes avaient Intel EPT ou pas. Il fallait donc voir si VMware passait Intel EPT sans problèmes et si Hyper-V le détectait. La révélation pour moi a été quand j’ai essayé VMware Workstation la première fois et que ça a fonctionné du premier coup. J’ai lu des tas de choses sur ce sujet, mais mon instinct me disait qu’il fallait Nehalem ou Core i7 et une carte-mère compatible Intel VT. Je pense que c’est plus sûr comme ça. J’ai lu qu’il fallait Intel VT –x2, ce que je n’ai pas (je ne pense pas en tout cas) donc c’était trompeur… Je mettrai à jour ce post, si j’arrive à réduire le champ de recherches.
- Rappelez-vous que nester un hyperviseur signifie que ça va tourner très, très lentement… Par contre, installer un hyperviseur nesté dans un datastore sur disque SSD permet un large gain de vitesse.
- Les 2 blogs postés plus haut présentent 2 méthodes pour créer la MV avec la version matérielle 4/7 ou la version 8. J’ai d’abord commencé avec la version matérielle 8, sans grande motivation. Tout ce que j’obtenais était un écran noir. J’ai essayé de bricoler en utilisant les deux méthodes et ça a marché.
- Le groupe de ports sur lequel réside la machine Hyper-V nestée doit être en mode Promiscuous : Accept
- Sur un des blogs, une note suggérait que saisir les entrées manuellement dans les fichiers de config (au lieu d’utiliser le GUI) les rendait plus stables. C’est ce que j’ai remarqué également et c’est pour ça que j’ai modifié les fichiers config dans une session shell avec putty.
Télécharger gratuitement Veeam Backup & Replication for Hyper-V