Ce document décrit dans une première partie l’installation d’une distribution CentOS sur nos machines Hyper-V. Dans une deuxième étape je décris la façon d’installer le "Linux Integration Components for Windows Server 2008 Hyper-V R2" (Linux IC v2) afin d’améliorer les performances réseaux et monter le NAS iSCSI comme périphérique de stockage.
Installation de CentOS
L’installation se fait par le gestionnaire de serveur -> Rôles -> Hyper-V -> Gestionnaire Hyper-V -> Le serveur (cf image 1)

Dans Nouveau -> Ordinateur virtuel
Un assitant se lance pour déterminer : (cf image 2)
le nom et l’emplacement du sytème
la taille mémoire
le réseau virtuel
le disque dur de stockage dont l’image iso de la distribution CentOS en CD

Cet assistant présente un résumé des options choisies (cf image 3)

Il est nécessaire pour procéder à une net install d’ajouter un matériel : la carte réseau héritée virtuel.
Une fois ce paramétrage terminé, on se connecte à la vm (bouton droit de la souris -> connecter) puis clic sur bouton Démarrer
Le grub de centos se lance, choisir une installation en mode text.

Puis c’est du grand classique pour qui connait l’installation de CentOS
Pour l’installation j’ai choisi en mode réseau Http avec le mirroir de l’in2p3 http://mirror.in2p3.fr/ . Voir la liste des mirroirs le plus proche sur le site de centos
Une installation par défaut de serveur GUI prend une douzaine de minutes

Une fois l’installation terminée, arréter la vm centos, pour modifier l’ordre d’amorçage ( clic bouton droit sur la machine -> paramètres -> BIOS ) ou bien enlever le CD d’install de CentOS (clic bouton droit sur la machine -> paramètres -> Lecteur de DVD : aucun) . Relancer la vm comme précédemment.
Finir l’installation au firstboot.
Procéder à la mise à jour du système : yum update
_Rebooter pour prendre en compte le nouveau noyau
à ce niveau nous avons une machine opérationnelle, et pouvons procéder à quelques tests de performance réseau.
A l’aide du programme nc nous faisons quelques transfert de fichiers entre deux machines du réseau pour avoir un étalon.
[root@baudelaire ~]# nc -l 12345 > /dev/null
[root@aragon tmp]dd ibs=1k obs=1k count=100000 < /dev/urandom > /tmp/100meg
[root@aragon tmp]# time nc -4 baudelaire 12345 < /tmp/100meg
real 0m0.875s
user 0m0.017s
sys 0m0.259s
Puis entre notre invité et une des machines
[root@kipling ]# nc -l 12345 > /dev/null
[root@aragon tmp]# time nc kipling 12345 < ./100meg
real 0m11.971s
user 0m0.018s
sys 0m0.200s
Nous voyons que les performances ne sont pas au rendez vous sur la vm pour un réseau Gigabit
Nous pouvons commencer à ajouter les modules d’intégration à Hyper-V.
Installation des Linux Integration Components
Télécharger Le composant chez MicroSoft à cette adresse [1]]
La Documentation en PDF indique que c’est destiné à Suse, cependant ceci fonctionne aussi sur Redhat.
Le composant est sous forme d’un fichier ISO. il suffit donc de l’attacher à notre VM comme CDROM dans Hyper-V
Puis sur la machine vm centOS on monte ce CD et on copie les fichiers :
[root@kipling ]# mkdir -p /mnt/cdrom
[root@kipling ]# mount /dev/cdrom /mnt/cdrom/
[root@kipling ]# mkdir /opt/linux_ic_v2
[root@kipling ]# cp -pr /mnt/cdrom/* /opt/linux_ic_v2/
Installation des outils de compilation et des sources nécessaire
[root@kipling ~]# yum install kernel-devel gcc
[root@kipling ~]# cd /opt/linux_ic_v2/
[root@kipling linux_ic_v2]# ./setup.pl drivers
Checking if required components are installed...done.
Installing Linux integration components (vmbus, enlightened ide, enlightened scsi and network drivers) for Hyper-V...
Building vmbus driver...done.
Building blkvsc driver...done.
Building storvsc driver...done.
Building netvsc driver...done.
Installing vmbus driver...done.
Installing blkvsc driver...done.
Installing storvsc driver...done.
Installing netvsc driver...done.
Updating module dependencies. This may take a while...done.
Installing various udev rules and scripts...done.
Updating initrd image...
Backing up /boot/initrd-2.6.18-164.6.1.el5.img to /boot/initrd-2.6.18-164.6.1.el5.img.backup0
Done. Updated /boot/initrd-2.6.18-164.6.1.el5.img
Updating grub conf file...
Done.
Installing vmbus startup script...
*** The drivers have been installed successfully.*** [ OK ]
Arrêt de l’invité CentOS.
Configuration dans hyper-V des cartes . Toujours dans Paramètres :
Supprimer la carte réseau héritée
Ajouter une carte réseau virtuelle
Démarrer l’invité
Au redémarrage, le système a une carte réseau seth0
[root@kipling ]# ifconfig
lo Link encap:Boucle locale
inet adr:127.0.0.1 Masque:255.0.0.0
adr inet6 : ::1/128 Scope:Hôte
UP LOOPBACK RUNNING MTU:16436 Metric:1
RX packets:8 errors:0 dropped:0 overruns:0 frame:0
TX packets:8 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 lg file transmission:0
RX bytes:560 (560.0 b) TX bytes:560 (560.0 b)
seth0 Link encap:Ethernet HWaddr 00:15:5D:48:DC:10
inet adr:147.210.72.60 Bcast:147.210.72.255 Masque:255.255.255.0
adr inet6 : fe80 ::215:5dff:fe48:dc10/64 Scope:Lien
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:396 errors:0 dropped:0 overruns:0 frame:0
TX packets:95 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 lg file transmission:1000
RX bytes:71656 (69.9 KiB) TX bytes:15055 (14.7 KiB)
Vérifier que les nouveaux modules sont bien chargés :
[root@kipling ]# lsmod |grep vsc
netvsc 73704 0
storvsc 66824 0
blkvsc 70440 3
vmbus 86120 3 netvsc,storvsc,blkvsc
scsi_mod 196697 5 scsi_dh,storvsc,blkvsc,libata,sd_mod
Refaisons le test de performance :
[root@kipling ]# nc -l 12345 > /dev/null
[root@aragon tmp]# time nc 147.210.72.60 12345 < ./100meg
real 0m0.878s
user 0m0.010s
sys 0m0.326s
Les résultats sont équivalents à des machines natives sur le réseau Gigabit.
La suite, update kernel de la distribution
Lors de la mise à jour de la distribution le kernel est passé à la version : 2.6.18-164.11.1.el5 et surprise impossible de booter sur ce noyau avec un messsage d’erreur sybilin : "ne peut accéder à /dev/root" . Pas de panique
Lors du boot, il est possible de choisir son noyau, et éditer les paramètres de boot, ici il suffit d’enlever la partie hda=noprobe hdb=noprobe de la ligne du kernel et le boot se passe correctement.
puis on refait l’opération d’installation des Linux Intégration Components de MS sur ce nouveau noyau.
On reboot avec les paramètres initiaux et ca fonctionne.
Activer DKMS
Anthony Pawlowski me signale que Microsoft a sorti une KB pour le kernel panic qui apparaît après une mise à jour par un yum si on installe les « Linux Integration Services ».
il s’agit d’activer le Dynamic Kernel Module Support (DKMS) avant de faire un update noyau.
document créé le 7 décembre 2009, mis à jour le 2 février 2010.
auteur : Jean-Noël Chardron