Lors de la mise au point d’une maquette sur un poste portable, il est pratique d’avoir en local des templates au format VHD. Dans ce post nous verrons comment créer des templates au format VHD ainsi que comment les déployer à l’aide d’HYPER-V.
Créer un template au format VHD
Tout d’abords il faut créer une machine virtuelle avec l’OS désiré pour le template, il est également pertinent de passer les derniers patchs ainsi que d’installer la dernière version des services d’intégrations HYPER-V. Il est également possible d’installer des applications qui seront utiles au master.
- Un fois la VM prête pour être transformée en template, il serait judicieux d’éteindre la VM et d’en copier le VHD (avant l’exécution du sysprep) afin de pouvoir recréer le Template si celui-ci venait à être mis à jour.
- Après avoir démarré la VM, il faut maintenant exécuter le sysprep sur celle ci en prenant bien soir de cocher la case generalize afin de générer un nouvel SSID lors de l’utilisation du template.
- Une fois la VM éteinte, il faut en copier le VHD vers l’emplacement souhaité, il est par ailleurs préférable d’ ajouter l’attribut Read-Only au VHD généré.
Utiliser un template VHD dans HYPER-V
En utilisant HYPER-V, il est très simple de déployer un OS à l’aide d’un VHD, pour ce faire il suffit de suivre l’assistant de création d’une machine virtuelle et une fois arrivé à la page Connect Virtual Hard Disk il faut utiliser un VHD existant et ne pas laisser HYPER-V en créer un automatiquement :
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
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:
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
Redémarrer ensuite Windows 2008 (R2). Hyper-v est à nouveau actif
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"
Depuis la sortie de Hyper-V, une fonctionnalité, et non des moindre, manquait à l’appel : un convertisseur de machines virtuelles du format Virtual Server / Virtual PC vers le format Hyper-V.
En effet, si les disques durs virtuels de Virtual Server 2005 (.vhd) sont compatibles avec Hyper-V, ce n’est pas le cas des fichiers de configuration (.vmc). Pour chaque serveur à migrer, il était donc nécessaire de recréer la configuration de chacun des serveurs à migrer.
Développé par Matthijs Ten Seldam, l’outil VMC2HV palie ce manque d’Hyper-V et permet de convertir simplement les VMs de Virtual Server et de les intégrer dans Hyper-V.
Voici un petit éventail des possibilités du produit :
- Import des fichiers VMC de Virtual PC 2007 et Virtual Server 2005
- Création de machine virtuelle sur un Hyper-V local
- Création de machine virtuelle sur un Hyper-V distant
- Validation d'un disque virtuel et de fichiers ISO en local
- Edition d'image de disque virtuel (vhd, vfd, iso)
- Echange du premier disque SCSI avec le premier disque IDE
- Configuration de l'adresse MAC statique
- Configuration du mode de fonctionnement des cartes réseaux (Emulation ou matériel)
- Configuration du nombre de processeur virtuel et du controle de ressource.
- Configuration des paramètres de gestion
- Configuration des ports COM
- Configuration de l'ordre d'amorcage des périphériques
- Configuration du chemin alternatif des machines virtuelles
- Aide intégrée au format CHM
- Disponible en version x86 et x64.
L’outil est disponible gratuitement à l’adresse suivante :
http://cid-7edf4c4ce8729f83.skydrive.live.com/self.aspx/Public/VMC2HV