PI Services

Le blog des collaborateurs de PI Services

Hyper-V – Gestion dynamique de la mémoire (en approche)

Ça y est, la gestion dynamique de la mémoire sous Hyper-V arrive !

Cette fonctionnalité permettra d’allouer plus de mémoire vive qu’il n’y en a de réellement disponible. En effet, il n’est pas possible actuellement de démarrer une machine virtuelle si la mémoire vive demandée n’est pas disponible.

Cette amélioration autorisera une meilleure utilisation de la mémoire disponible (pas de mémoire vive allouée non utilisée) et donc une meilleure consolidation des serveurs (très pratique pour les environnements de développements/tests).

La fonctionnalité sera mise à disposition avec le SP1 de Windows Server 2008 R2.

Pour plus d’information, vous pouvez vous rendre sur le blog de l’équipe « virtualisation » de Microsoft :

http://blogs.technet.com/virtualization/archive/2010/03/18/dynamic-memory-coming-to-hyper-v.aspx

Hyper-V – Performance des disques virtuels

Microsoft a mis en ligne un livre blanc sur les performances des différents types de disques virtuels (vhd) que l’on peut rencontrer dans Hyper-V, à la fois sous Windows 2008 et 2008 R2.

Les tests sont réalisés à l’aide d’IOMeter sur différents types de disques VHD (fixe, dynamique et de différenciation) et physiques (pass-through).

Sont également évoqués les avantages/inconvénients des différentes possibilités, le temps de création, l’impact de la taille de block, ainsi que les différentes limitations.

Le document est téléchargeable ici:

http://download.microsoft.com/download/0/7/7/0778C0BB-5281-4390-92CD-EC138A18F2F9/WS08_R2_VHD_Performance_WhitePaper.docx

Hyper-V V2 – Débrancher un disque externe hébergeant des VMs

Contexte

Il va de soit que cette situation ne doit pas se produire dans un environnement de production. En revanche, il en est autrement pour les environnements de test/maquette utilisé entre autre pour faire des présentations.

Il s'agit en effet bien souvent (comme moi) d'ordinateur portable sur lesquels un disque externe a été ajouté pour répondre à des problématiques d'espace disque voir même de performance (utilisation de disque eSata/SSD? par exemple).

Problématique

Les personnes dans ce cas ont toutes été confrontées à la problématique de débrancher proprement le disque externe sans endommager les machines virtuelles (hyper-v) hébergées dessus.

En effet, non seulement le débranchement violent du disque est à proscrire, mais l'utilisation du "Safely Remove Hardware and Eject Media" ne fonctionne pas car un processus y accède toujours! :

image

image

Que faire?

Solution

Commencer par arrêter ou mettre en état sauvegardé les machines virtuelles hébergées sur le disque. (devais-je vraiment le préciser ? ;-) )

Ensuite, aller dans les services Windows, puis arrêter le service "Hyper-V Virtual Machine Management":

image

ATTENTION: Le service va être automatiquement redémarré après quelques secondes. Ne perdez pas de temps à lire cette phrase :-)

La/les consoles Hyper-V ont perdues la connexion (c’est normal), mais ne vous inquiétez pas les machines virtuelles actives restantes fonctionnent toujours.

image

Procéder à la déconnexion propre du périphérique et là, plus aucune résistance (sous réserve de ne pas avoir d’autre processus actif sur le disque):

image

Vous pouvez redémarrer le service s’il ne s’est pas automatiquement redémarré:

image

De retour dans la console de management d’hyper-v, vous retrouvez l’ensemble des machines virtuelles active ou non des disques restants, et celles qui étaient hébergées sur le disque retiré apparaitrons en Saved-Critical (comportement normal, ne vous inquiétez pas).

En espérant que ce post vous a été utile, je vous souhaite une bonne présentation ou un bon maquettage ;-)

Hyper-V – Nouvelle version de Offline Virtual Machine Servicing Tool

Une nouvelle version de l’outil d’installation des correctifs sur les machines virtuelles en mode hors ligne est sorti. Il s’agit de la version 2.1 que l’on peut télécharger ici.

Pour rappel, cet outil permet de maintenir les machines virtuelles éteintes à jour au niveau des correctifs, afin d’éviter les éventuels problèmes de sécurités au prochain redémarrage.

Cette nouvelle version est désormais compatible avec SCVMM 2008 R2 et supporte les solutions de mises à jour suivantes:

  • - Windows Server Update Services (WSUS) 3.0 SP1 ou SP2
    - System Center Configuration Manager 2007 SP1, Configuration Manager 2007 R2 ou Configuration Manager 2007 SP2.

image

Voici un schéma sur le fonctionnement de l’outil:

image

Hyper-V V2 – Installation d’une machine virtuelle Red Hat Enterprise


Commencer par créer une machine virtuelle vierge.

Démarrer ensuite la machine virtuelle avec les sources d’installations (ici, Red Hat Enterprise Linux 5)

Pré-requis


Les drivers mentionnés dans cet article nécessitent une compilation. Pour cette raison et pour vous simplifier la tâche, cocher l’installation des outils de développement lors de l’installation du système d’exploitation:

image

Suivre l’assistant d’installation, puis, se loguer une fois l’installation terminée:

Redhat - Hyper-V - 1Redhat - Hyper-V - 2 

Installation des Linux Integrated Component


Une fois la session ouverte, insérer les composants d’intégrations d’Hyper-V dans la machine virtuelle. Il s’agit d’un fichier ISO (LinuxIC v2.iso) disponible ici:

Pour Hyper-V V2 (Windows 2008 R2): http://www.microsoft.com/downloads/details.aspx?familyid=C299D675-BB9F-41CF-B5EB-74D0595CCC5C&displaylang=en

(Le fichier téléchargé “Linux_IC_v2.exe” est auto-extractible)

Extraire le fichier téléchargé et monter le fichier ISO résultant (LinuxIC v2.iso) sur la machine virtuelle (cd-rom)

image

Le contenu doit alors apparaitre automatiquement dans la session ouverte:

Redhat - Hyper-V - 3 - LinuxIC

Sélectionner les fichiers/dossiers présents puis, faire un clic droit et ”copy”

image

Sur le “bureau”, ouvrir le “home” de l’utilisateur. Ici, le compte utilisateur est “Redhat”, il s’agit donc du raccourcit “Redhat’s home”:

image

Créer ensuite un nouveau dossier: (clic droit “Create Folder”)

image

Donner par exemple pour nom “LinuxIC”.

ATTENTION, éviter de choisir un nom avec des espaces. Le script d’installation en Perl risque de ne pas les gérer.

Coller ensuite les fichiers précédemment copiés dans le nouveau dossier: (clic droit, “Paste”)

image

Sur le script Perl (setup.pl), faire un clic droit puis “Properties”

image

Aller ensuite dans l’onglet Permissions et cocher la case “Allow executing file as program”:

image 

Pour installer les drivers, ouvrir un terminal. Pour cela, faire un clic droit sur le “bureau”, puis “Open Terminal”:

image

Aller dans le dossier précédemment créé (LinuxIC) à l’aide de la commande “cd LinuxIC/”:

image

Elever les droits d’exécution pour la suite des commandes. Pour cela, taper “su”, puis saisir le mot de passe root:

image

S’assurer ensuite que “/sbin” soit présent dans la “variable d’environnement” “$PATH”:

pour afficher le contenu de la variable d’environnement, saisir

echo $PATH

Pour ajouter un chemin, saisir “export PATH=$PATH:<nouveauChemin>”. Dans notre cas, il s’agit de:

export PATH=$PATH:/sbin

image

Lancer ensuite l’installation des drivers à l’aide de la commande

./setup.pl drivers

image

patienter pendant l’installation.

Redémarrer la machine virtuelle à l’aide de la commande “shutdown –r now” ou à l’aide du menu “System”, ”Shut down…” puis “Restart” pour les allergiques aux terminaux ;-)

image

Patienter pendant l’arrêt…

image

puis le redémarrage…

image

Ouvrir une session au redémarrage:

image

puis, ouvrir un terminal de manière à vérifier la présence des services en saisissant la commande:

/sbin/lsmod | grep vsc

NB: “| grep vsc” n’est pas obligatoire. Cela permet de restreindre l’affichage aux lignes contenants la chaine “vsc” (équivalent de la commande “find” sous dos)

clip_image002

et en vérifiant la présence de:

netvsc, storvsc, blkvsc et vmbus

netvsc” permet le support du driver synthétique* pour la carte réseau.
storvsc” permet le support des drivers synthétiques* pour les contrôleurs SCSI et disques.
blkvsc” permet le support des drivers synthétiques* IDE et améliore le démarrage.
vmbus” permet la communication entre la machine virtuelle et le serveur Hyper-V hôte.

* également appelé générique

ça y est, les Linux IC (Lunix Integrated Component) sont installés.

Cependant, vous avez du vous apercevoir que la souris n’est pas encore gérée, autrement dit elle n’est pas capable de sortir du contexte de la machine virtuelle lorsque le curseur est déplacé au delà de la zone!

C’est normal, les Linux IC n’intègrent pas les drivers souris. Il faut les installer manuellement en commençant par les télécharger chez Xen…

Installation des drivers souris


ATTENTION: L’installation des drivers souris (InputVSC) nécessitent au préalable l’installation des Linux Integrated Component (Linux IC) détaillé ci-dessus.

Aller sur le site du projet “Satori” de “Xen”:

http://www.xen.org/download/satori.html

Télécharger le fichier “inputvsc.iso” puis le « monter » dans la machine virtuelle:

image

image

Le contenu du fichier ISO doit alors s’afficher dans la machine virtuelle.

Reproduire les étapes précédentes, à savoir, copier les sources d’installations en local, modifier les droits pour l’exécution sur le script Perl local…

image

image

Ouvrir ensuite un terminal (si le précédent est fermé), se rendre dans le dossier où vient d’être copié le contenu du CD-ROM (fichier ISO) et effectuer une élévation de droit (su):

image

ATTENTION: Avant de procéder à l’installation, vous devez procéder à l’installation du package RPM suivant (le plus récent et pour la plateforme en question):

xorg-x11-server-sdk-xxxx.rpm

Si vous disposez du fichier RPM, simplement double cliquer dessus pour l’installer et saisir le mot de passe du compte root pour l’installer:

image

Cliquer sur “Apply”

image

Patienter pendant l’installation du package…

image

et cliquer sur OK en fin d’installation:

image

Retourner dans le terminal, et s’assurer que /sbin soit présent dans la “variable d’environnement” PATH à l’aide de la commande

echo $PATH

Le cas échéant, l’ajouter:

export PATH=$PATH:/sbin

 

Installer ensuite les drivers souris à l’aide de la commande:

./setup.pl inputdriver

et patienter pendant l’installation du driver de la souris…

image

L’installation est terminée. La souris est maintenant synchronisée avec celle du serveur hôte Hyper-V:

image

A noter qu’au stade actuel du développement du driver, j’ai constaté une désynchronisation entre le curseur du serveur hôte et celui de la machine virtuelle. En effet, ce dernier se déplace plus rapidement que celui du serveur hôte!

Ce comportement rappel certaine carte iLo de certains serveurs et peu s’avérer gênant, surtout dans le cas inverse (curseur hôte plus rapide).

En attendant une version plus aboutie des drivers souris, j’espère que cet article vous aura aidé.

Je tiens à préciser que cet article a été orienté pour les personnes ayant peu ou pas de connaissance en environnement Unix/Linux.

Hyper-V - Réactivation d’hyper-v dans bcdedit

Si l’enregistrement bcdedit pointe vers un Windows 2008 R2 (par exemple en vhd) utilisant hyper-v, il est possible que le message d’erreur ci-dessous apparaisse lors du démarrage d’une machine virtuelle:

2) depuis 2008 R2, pb avec hyper-v - set hypervisor auto start bcdedit 1

Il faut alors modifier l’entrée bcdedit correspondant à Windows 2008 (R2) de manière a redémarrer automatiquement hyper-v.

Saisir la commande suivante sous Windows 2008 (R2) dans une invite de commande (en administrateur):

bcdedit /set hypervisorlaunchtype auto

3) depuis 2008 R2, pb avec hyper-v - set hypervisor auto start bcdedit 2

Redémarrer ensuite Windows 2008 (R2). Hyper-v est à nouveau actif

Hyper-V - Linux Integration Components pour Hyper-V

Les composants Linux pour les machines virtuelles Hyper-V sont téléchargeables sur Microsoft Connect:
https://connect.microsoft.com/SelfNomination.aspx?ProgramID=1863&pageType=1&SiteID=495

Attention, ces composants n’intègrent pas les drivers souris, autrement dit, la souris ne “sort” pas de la fenêtre. Pour les télécharger, il faut aller ici :

http://www.xen.org/download/satori.html

NB: j’ai constaté des petits problèmes de déphasage des curseurs entre le serveur hôte et la machine virtuelle avec la version actuelle des drivers souris.

BCDEDIT - Redéclarer un vhd dans bcdedit

Beaucoup de blog expliquent déjà comment installer un système d’exploitation dans un fichier vhd.

Cependant, si le système d’exploitation “maître” n’est pas installé dans un VHD est que celui-ci doit être réinstallé (par exemple, Windows 7 RC à réinstaller, et 2008 R2 dans un VHD), son entrée bcdedit sera supprimée et il va falloir le réintégrer.

Ce post explique comment redéclarer l’enregistrement bcdedit d’un Windows 2008 R2 en vhd après une réinstallation du système d’exploitation “maitre” (Windows 7):

Depuis le système d'exploitation opérationnel (dans mon cas Windows 7 RTM), lancer la commande

diskpart

puis, en fonction de l'emplacement du fichier .vhd correspondant à l'OS à rattacher, saisir les commandes suivantes:

select vdisk file=d:\dossier\fichier.vhd
attach vdisk
exit

Le contenu du vhd doit désormais être visible depuis l'explorateur de fichier.

Maintenant que le vdisk est monté, il est nécessaire de l'ajouter (le déclarer) dans le bcdedit.

On commence par créer une nouvelle entrée dans le boot en dupliquant l'entrée courante:

bcdedit /copy {current} /d "Nom du système d'exploitation à afficher au boot"

effectuer un copier/coller du CLSID correspondant à cette entrée. (éventuellement relancer la commande bcdedit de manière à réafficher le CLSID)

enfin, saisir

bcdedit /set {le CLSID} device vhd=[d:]\dossier\fichier.vhd
bcdedit /set {le CLSID} osdevice vhd=[d:]\dossier\fichier.vhd
bcdedit /set {le CLSID} detecthal on

ou {le CLSID} est à remplacer par le CLSID copié ci-dessus.
Attention: les crochets autour de la lettre du disque ([d:]) sont obligatoires.

Il est maintenant possible de redémarrer la machine. La nouvelle entrée apparaitra dans le menu.

Attention: si le .vhd héberge un Windows 2008 (R2) avec hyper-v, une étape supplémentaire sera nécessaire. Voir mon post "réactivation d’hyper-v dans bcdedit"

VMM2008R2 – Gérer un hôte Hyper-V R2 en Workgroup à l’aide de Virtual Machine Manager 2008 R2

Ce tutoriel décrit les différentes étapes permettant de gérer un serveur Hyper-V “version 2” ou Hyper-V R2 situé en workgroup à l’aide de Virtual Machine Manager 2008 R2.

N.B. : La procédure décrite est également valide pour gérer un serveur Hyper-V “version 1” à l’aide de VMM 2008 (ou de VMM 2008 R2).

Déploiement de l’agent VMM

La première étape consiste à déployer l’agent VMM localement sur le serveur Hyper-V (l’agent ne sera donc pas “poussé” depuis la console VMM contrairement à la procédure habituelle avec un serveur Hyper-V en domaine).

Pour commencer, il faut copier les sources de VMM 2008 localement sur le serveur Hyper-V, puis exécuter l’installeur du produit (il est évidemment possible d'exécuter le programme à partir d’un partage réseau ou d’une image ISO).

Les premières pages de l’assistant d’installation de l’agent sont tout à fait classiques (contrat de licence, répertoire d’installation…) et peuvent être validées rapidement.

 image

image

image

image

La page Configuration settings permet de définir les ports de communication entre le serveur VMM et l’agent. Par défaut le serveur VMM se connecte au serveur Hyper-V sur les ports 80 et 443 (cf. capture d’écran ci-dessous).

image 

Dans la page Security File Folder, la case This host is on a perimeter network doit impérativement être côchée. Vous devez ensuite remplir les champs suivants :

  • Emplacement du “fichier de sécurité”
  • Clé de chiffrement du fichier de sécurité

Le fichier de sécurité contient l’intégralité des informations touchant à la configuration de l’agent VMM (Nom ou IP du serveur Hyper-V, ports de communication, credentials…). La clé de chiffrement permet de sécuriser le contenu du fichier en le chiffrant.

Remarque : Malgré le chiffrement des données au sein du fichier, Microsoft recommande de le supprimer définitivement une fois la procédure terminée pour des raisons de sécurité.

image

Vous devez ensuite spécifier la valeur qui devra être utilisée au sein du serveur VMM pour joindre le serveur Hyper-V (nom du serveur ou adresse IP).

N.B. : Il est conseillé d’utiliser le nom d’hôte pour des raisons évidentes d’évolutivité (il sera ensuite possible de modifier l’adresse IP du serveur Hyper-V sans incidence sur la gestion des machines virtuelles).

image

image

Après quelques minutes l’agent est installé et opérationnel sur le serveur Hyper-V R2 en workgroup.

image 

Ajout de l’hôte Hyper-V R2 en workgroup dans la configuration VMM 2008 R2

L’étape suivante consiste à ajouter l'hôte Hyper-V en workgroup au sein de la console VMM 2008 R2.

Pour cela il convient de lancer l’assistant Add host situé dans le menu de droite de la console MMC (cf. capture d’écran ci-dessous).

image

Il faut ensuite choisir la seconde option pour ajouter un serveur de virtualisation situé en groupe de travail (option Windows Server-based host on a perimeter network).

image

Les informations suivantes doivent êtres saisies dans l’encadré Host Details :

  • Nom NetBIOS du serveur Hyper-V ou adresse IP
  • Clé de chiffrement (la clé définie lors du déploiement de l’agent)
  • Chemin vers le fichier de sécurité précédemment généré (“security file”)

N.B. : Avant de passer à la suite, il faut charger les informations contenues au sein du fichier de sécurité à l’aide du bouton Add.

image

Une fenêtre identique à celle ci-dessous doit normalement être obtenue (il est possible d’ajouter simultanément plusieurs nouveaux hôtes Hyper-V en répétant la procédure d’ajout de fichier de sécurité).

image

Le groupe d’hôtes dans lequel sera placé le nouveau serveur Hyper-V doit spécifié dans la page Configuration Settings.

N.B. : Il n’est pas utile de côcher l’option Reassociate host with this Virtual Machine Manager server hormis lors d’une migration depuis une version précédente de Virtual Machine Manager (VMM 2007 ou 2008) vers VMM 2008 R2.

image

La dernière option de l’assistant propose de définir l’emplacement de stockage par défaut des machines virtuelles sur cet hôte (ici la lettre de lecteur V:\ a été retenue).

image

La dernière page de l’assistant permet d’exécuter la tâche d’ajout de l’hôte Hyper-V mais aussi de voir le script Powershell généré ! Cette possibilité est très intéressante par plusieurs aspects :

  • Elle permet de mieux comprendre le fonctionnement de l’application en mettant en valeur la liste des commandes PowerShell jouées lors de chaque action dans la console MMC
  • Elle permet de gagner énormément de temps lors de la réalisation de scripts destinés à automatiser la gestion des machines virtuelles (car on peut facilement générer des exemples de code à partir de la console).

image 

A titre informatif, voici le script PowerShell exécuté pour ajouter un hôte Hyper-V en workgroup :

$EncryptionKey = get-credential
$VMHostGroup = Get-VMHostGroup -VMMServer localhost | where {$_.Path -eq "All Hosts\Hyper-V"}

Add-VMHost -VMMServer localhost -ComputerName "PAR-HV-2" -Description "" -RemoteConnectEnabled $true -VmPaths "V:\" -EncryptionKey $EncryptionKey -SecurityFile "C:\PAR-HV-2_SecurityFile.txt" -Reassociate $false -RunAsynchronously -PerimeterNetworkHost -VMHostGroup $VMHostGroup

Durant l’exécution de la commande Add-VMHost, il est possible de visualiser l’état d’avancement de la configuration à l’aide de la section Jobs de la console VMM (cf. capture d’écran ci-dessous).

image

A l’issue de cette procédure le serveur Hyper-V doit être pleinement administrable à partir de la console VMM.

En espérant que ce rapide pas-à-pas vous sera utile !