Découverte de Microsoft HyperV 2012 R2 Core
Installation de l’hyperviseur Microsoft HyperV Core 2012 R2 et configuration pour la gestion à distance via la console HyperV, la console MMC, Powershell et le bureau à distance. Activation des fonctionnalitées RemoteFX.
1. Présentation
Installation de la version Core Hyper-V de Windows 2012 R2 , celui-ci est gratuit. (http://technet.microsoft.com/library/hh833684.aspx).
Voici un petit comparatif des solutions de virtualisation Tomshardware.fr Comparatif virtualisation : les solutions gratuites
Attention il n’y a pas d’interface graphique sur le serveur,la gestion se fait à la ligne de commande via Powershell. Une console texte se lance à la connexion au serveur qui permet d’aider à paramétrer quelques éléments essentiel. Ensuite pour le reste il s’agit soit de la console ou avec des outils de gestion distant ( MMC, console Hyper-V ou System Center ..) . Par contre les performances sont bien meilleur en mode core que graphique.
2. Récupération et installation
- Récupérer l’iso sur le site Microsoft
- Graver ou booter via usb (voir article comment créer une clé usb d’installation d’un système windows ? )
- Installer le serveur comme un système normal
- Ensuite au premier boot on défini via la console texte :
- les paramètres du compte administrateur local
- le nom du serveur
- les paramètres réseaux
- on effectue les mises à jour windows update
- on active l’accès bureau à distance
- et on peut activer la réponse au “ping”
Voici un petit guide Microsoft pour Windows 2008 pour configurer votre serveur en mode core fraichement installé via la ligne de commande : Guide pas à pas de l’option d’installation Server Core de Windows Server 2008
3. Installation et configuration des outils de gestion distant
3.1 Installation de la console HyperV de gestion distante
Installation de la console client sous Windows 8.1. La console HyperV 2012 n’est pas compatible avec Windows 7 pour l’instant.
Connexion à la console HyperV | |
---|---|
Capture | Descriptions |
Aller dans le Panneau de configuration → Programme et fonctionnalité → Activer ou désactiver des fonctionnalités Windows. Cocher Outils d'administration Hyper-V Suite à l’installation vous retrouver la console Hyper-V Manager installé, vous pouvez essayé de vous connecter mais il y a de grande chance que cela ne fonctionne pas. Il y a quelques pré-requis nécessaire. | |
D’abord il est nécessaire que votre compte local ou de domaine de l’utilisateur de votre machine cliente soit connu de HyperV. Loguez vous à l’hyperv par la console local et via le menu console rajout votre compte dans le groupe administrateur local de l’HyperV (choix 3 )Si votre compte est hébergé sur un domaine AD : domaine\login ou si workgroup indiquer juste le login et mot de passe associé identique au client.Ensuite vous pouvez ressayer de vous connecter via la console HyperV de votre client vous devriez pouvoir rajouter votre serveur et le faire reconnaître. | |
Mais cela n’est pas fini car la console a toujours encore des problèmes de connexion au niveau RPC. Pour les régler il va falloir télécharger un script hvremote.wsh de configuration voir ici ou faire une recherche sur google.En gros suivant les cas il y a des commandes à exécuter pour déverrouiller ou changer les droits pour permettre l’accès. Nous allons prendre le cas ou le poste client et le serveur ne sont pas dans un domaine mais en workgroup. Il va falloir exécuter les commandes suivante : Sur le serveur: cscript hvremote.wsh /add:login (rajoute le compte en admin de HyperV)Sur le client: cscript hvremote.wsh /anondcom:grant (autoriser les connexions DCOM anonyme)Si cela ne fonctionne toujours pas voir les points suivants: -Vérifier si votre serveur et station ne sont pas connectées en NAT au niveau réseau (virtual box par exemple préférer l’accès par pont) -Vérifier que le serveur le poste se ping par leur nom nebios. Si besoin rajouter dans c:\windows\system32\drivers\etc\hosts votre machine cliente sur le serveur et sur votre client le serveur HyperV-Désactiver temporairement le parfeu de votre poste client pour vérifier qu’il ne bloque rien | |
Connexion via le bureau à distance |
3.2 Connexion via le bureau à distance
3.3 Connexion via une console MMC
Il nous reste maintenant à autoriser les accès à distance par la MMC. Pour cela il faudra autoriser des règles du firewall et démarrer un service sur l’hyperviseur.
- Dans un premier temps on se connecte à l’HyperV via le bureau à distance par exemple
- Ensuite d’autoriser les accès via les commande powershell suivante :
Cmd Powershell | A faire sur | Description |
---|---|---|
Enable-NetFirewallRule -DisplayGroup “Remote Event Log Management” | Serveur | Pour autoriser l’accès aux log distant |
Enable-NetFirewallRule -DisplayGroup “Remote Volume Management” Set-Service vds -StartupType “auto” Start-Service vds | Serveur | Activation du gestionnaire disque + règle firewall |
Enable-NetFirewallRule -DisplayGroup “Remote Volume Management” | Client | Autorisation Firewall pour le gestionnaire disque |
4. Activation de remotefx
RemoteFX permet à un poste client qui se connecte via le bureau à distance sur une machine hébergé par HyperV d’avoir accès à une accélération 3D, flash, Video, Silverlight, Aero. La carte graphique du serveur HyperV doit être compatible.
4.1 Activation des rôles sur l’HyperV
Pour la prise en charge de cet fonction il est nécessaire d’activer 3 rôles supplémentaires. Dans la version core nous devons utiliser powershell pour installer ces fonctions
- VmHostAgent
mais 2 autres rôles dépendes donc ils seront installés également
- Remote-Desktop-Services
- ServerMediaFoundation
Pour se faire on va enter la commande suivante dans la console Powershell du serveur:
DISM /online /enable-feature /featurename=VmHostAgent /all
4.2 Installation du pilote de la carte graphique sur l’HyperV
Pour déterminer le pilote graphique en cours
Get-WmiObject -Class Win32_VideoController
Il s’agit normalement du pilote générique fourni par Windows qui ne prend pas en charge la fonctionnalité. Il est donc nécessaire de récupérer le modèle de votre carte graphique.
Ensuite de télécharge le package du driver sur le site du constructeur de la carte (ici nvidia), on décompacte, on transfert sur le serveur hyperV et on lance la commande:
PS C:\NVIDIA\Display.Driver> pnputil -i -a .\nv_dispi.inf Microsoft PnP Utility Processing inf : nv_dispi.inf Successfully installed the driver on a device on the system. Driver package added successfully. Published name : oem0.inf Total attempted: 1 Number successfully imported: 1
Pour plus d’informations sur la gestion des drivers via Powershell reportez vous à : http://technet.microsoft.com/en-us/library/jj647787.aspx
Ensuite il ne reste plus qu’a revérifier si le driver est bien prise en compte :
Get-WmiObject -Class Win32_VideoController
4.3 Installation de la carte graphique sur nos VM et utilisation
Ensuite pour pouvoir utiliser la fonctionnalité il faut ajouter sur chaque machine via la console HyperV ou via powershell la carte RemoteFX 3D Adapter. Pour Powershell depuis le serveur :
Get-VM # pour lister nos VM Add-VMRemoteFx3dVideoAdapter -VMName "NomDeMaVM"
Si vous avez l’erreur suivante : Hyper-V was unable to find S3 Display et que la carte n’apparait pas dans ajout de matériel dans la console Hyper-V. Il est problème que vous utilisez des VM de génération 2, attention RemoteFx ne fonctionne que sur les machines de génération 1 !! J’ai effectué l’installation sur une VM Windows 8.1 Entreprise configurer en génération 1.
Ensuite il ne vous reste plus qu’a vous connecter via le bureau à distance à la votre VM :
- Dans le gestionnnaire de préphérique vous verrez normalement apparaitre la carte
- Au niveau de la console HyperV dans les paramètres de l’HyperV section GPU Physique vous devez voir le nombre et la mémoire graphique utilisée par vos VM.
5. Configuration du stockage
5.1 Rajout d’un disque iSCSI
Pour rajouter un disque externe iSCSI qui peut être partagé par nos deux hyperviseurs dans le cadre d’un cluster par exemple. Vous avez plusieurs possibilités :
- Utiliser un NAS (ex Sygnology ) qui permet de créer des disques iSCSI
- Utiliser l’utilitaire iSCSI target 3.3 de Microsoft pour créer un target sur serveur de stockage.
Ensuite après avoir crée vos disques (1 pour le stockage des VM assez important et un autre de 1Go pour le quorum du cluster) Sur l’hyperviseur il faut activer le service iSCSI et accéder à l’interface de configuration des targets de nos disques. Pour cela il suffit de lancer:
iscsicpl
Après avoir renseigner vos paramètres il va falloir:
- mettre en ligne
- initialiser
- formater
- et enfin attribuer une lettre disque.
Pour cela on peut le faire avec
diskpart
en ligne de commande sur le serveur ou bien avec une console MMC distante avec le gestionnaire de disque plus graphique.
Suite à la création de mon volume j’ai rencontré par la suite un petit problème d’accès à celui-ci :
Diskpart has encountered an error: The media is write protected. DISKPART> attributes disk Current Read-only State : Yes Read-only : Yes
Mon disque était passé en lecture seul pour le remettre en écriture il suffit d’effacer le paramètre read-only via la commande :
DISKPART> attributes disk clear readonly
5.2 Configuration et installation de MPIO
Si l’on souhaite activer la fonctionnalité MPIO qui permet d’accéder aux disques iSCSI par plusieurs chemins. Cela peut être utile avec 2 cartes réseaux d’avoir une tolérance de panne en cas de coupure de l’un des chemins réseaux. Il est d’abord nécessaire d’activer la fonctionnalité via la commande :
Install-WindowsFeature -Name Multipath-IO
Puis ensuite de lancer l’utilitaire de configuration via la commande :
mpiocpl.exe
Ensuite dans l’onglet ‘Discover Multi-Paths’ on coche ‘Add support for ISCSI devices’ un redémarrage sera ensuite nécessaire.
6. Astuces
6.1 Convertir un fichier vdi en vhd puis vhdx
D’abord pour convertir votre fichier vdi (virtualbox vers vhd)
C:\Program Files\Oracle\VirtualBox> (Pour Windows, fonctionne également pour Linux)
VBoxManage.exe clonehd Disque.vdi Disque.vhd --format vhd
Puis ensuite depuis HyperV par exemple en Powershell convertir en vhdx
Convert-VHD -Path 'Chemin\Disque.vhd' -DestinationPath 'Chemin\Disque.vhdx' -VHDType Dynamic
Il ne vous reste plus qu’a importer les disques sous HyperV et de les attacher à vos machines.
6.1 Quelques commandes powershell utiles à la gestion
Pour réduire la taille d’un disque vhdx dynamique.
Voici un guide rapide des tâches à effectuer sur un serveur Core 2012 Quick Reference for Server Core Tasks
7 Problèmes rencontrées
Boot HyperV: Suite à un rajout de disque iSCSI le serveur ne boot plus. La réparation de boot du serveur via le DVD d’installation a bien fonctionné. Mais au redémarrage impossible de relancer mes machines virtuel. Le message d’erreur indique que l’hyperviseur n’est pas en fonction.
PS C:\Users\test> start-vm SRV2012DC start-vm : 'SRV2012DC' failed to restore virtual machine state. (Virtual machine ID 0C1E6745-513D-42E9-B350-BB57693E5BD9) Virtual machine 'SRV2012DC' could not be started because the hypervisor is not running (Virtual machine ID 0C1E6745-513D-42E9-B350-BB57693E5BD9). The following actions may help you resolve the problem: 1) Verify that the processor of the physical computer has a supported version of hardware-assisted virtualization. 2) Verify that hardware-assisted virtualization and hardware-assisted data execution protection are enabled in the BIOS of the physical computer. (If you edit the BIOS to enable either setting, you must turn off the power to the physical computer and then turn it back on. Resetting the physical computer is not sufficient.) 3) If you have made changes to the Boot Configuration Data store, review these changes to ensure that the hypervisor is configured to launch automatically.
Effectivement problème 3 pour moi celui-ci se lance au boot mais la réparation du boot a fait perdre le paramètre. Pour vérifier via bcdedit /enum , l’entrer indiquant à l’hyperviseur de se lancer n’était plus présente. Pour la rajouter il suffit simplement de faire :
bcdedit /set hypervisorlaunchtype auto
Ensuite après le reboot tout est entré dans l’ordre.