pascals.blog

Pascal Sauliere | Microsoft France | Infrastructure, sécurité, cloud, et plus si affinités

Ubuntu Server 10.4 dans Hyper-V avec les drivers Hyper-V

Ubuntu Server 10.4 dans Hyper-V avec les drivers Hyper-V

  • Comments 7
  • Likes

Mise à jour octobre 2013 : les choses ont bien changé depuis cet article de 2010. Les drivers Hyper-V sont maintenant activés par défaut dans la plupart des distributions Linux et aucune manipulation n'est maintenant nécessaire. Plus d'information dans cet article.


En juillet dernier, Microsoft annonçait la mise à disposition du code source des drivers pour Linux dans l’environnement de virtualisation Hyper-V. Dans la pratique, la version 2.6.32 du noyau Linux contient maintenant les drivers pour les composants synthétiques d’une machine virtuelle Hyper-V, à savoir le VMBus, le stockage, et le réseau. Dans le détail, il s’agit des modules hv_vmbus, hv_storvsc, hv_blkvsc et hv_netvsc : ces modules sont décrits dans cet article.

Afin de sortir des configurations “supportées officiellement”, j’ai testé l’activation de ces modules dans le nouvel Ubuntu Server 10.4, fourni récemment avec le noyau 2.6.32. Pour cela j’ai trouvé cet article qui explique comment activer ces modules, et dont je m’inspire donc largement.

Activation des modules

Dans un premier temps il faut faire en sorte que les modules Hyper-V soient chargés au démarrage. Pour ce faire, modifier le fichier /etc/initramfs-tools/modules et ajouter les 4 lignes suivantes :

hv_vmbus
hv_storvsc
hv_blkvsc
hv_netvsc

Puis, mettre à jour l’image initramfs :

$ sudo update-initramfs –u

Enfin, configurer le réseau en modifiant le fichier /etc/network/interfaces de façon à configurer l’interface réseau nommée seth0. En effet, une carte réseau synthétique s’appellera sethn, au lieu de ethn pour la carte réseau “legacy”.

Par exemple pour une configuration DHCP, ajouter ceci dans /etc/network/interfaces :

auto seth0
iface seth0 inet dhcp

ou, pour une adresse IP statique :

auto seth0
iface seth0 inet static
address adresse_ip
netmask masque
gateway adresse_passerelle

Il ne reste plus qu’à redémarrer, et à vérifier le bon chargement des drivers à l’aide de la commande :

$ lsmod | grep hv_

Test de la procédure

Pour mon test, j’ai utilisé Hyper-V de Windows Server 2008 R2, et Ubuntu Server 10.4 32 bits (ubuntu-10.04-server-i386.iso).

Etant donné que j’ai configuré la VM avec une carte réseau synthétique, celle-ci n’est pas détectée lors de l’installation. Ce n’est pas grave, elle le sera lorsque l’on aura effectué les étapes décrites précédemment après l’installation.

Erreur : aucune carte réseau détectée
Sur ce message d’erreur, choisir <Continue>.

Une fois la machine virtuelle installée et démarrée, les étapes décrites ci-dessus sont assez simples à mettre en œuvre :

initramfs

interfaces

Après un redémarrage (sudo reboot), nous avons bien le réseau actif sur la carte synthétique seth0, ainsi que les autres drivers chargés :

Réseau et drivers Hyper-V

Voilà de quoi exécuter des serveurs Linux sous Hyper-V avec des performances correctes. Reste à attendre l’intégration dans le noyau Linux des prochaines fonctionnalités (multi processeurs, synchronisation d’horloge et arrêt intégré) –ces fonctionnalités sont pour l’instant disponibles dans la beta des services d’intégration 2.1, pour SUSE Linux Enterprise Server et Red Hat Enterprise Linux.

Comments
  • Bonjour,

    Juste une précision, ceci ne fonctionne pas avec la version serveur 64 bits ...

  • Bonjour,

    Dans mon cas, pas de problème avec Ubuntu Server 10.04 64 bits.

    Par contre:

    - impossible d'effectuer un upgrade kernel sans corrompre la partition / systématiquement. Faut-il désactiver les drivers Hyper-V avant ?

    - les drivers réseau ne fonctionnent pas avec Ubuntu Server 10.04.1

  • Bonjour,

    J'ai besoin d'un Linux pour un truc bien précis et franchement. Ce n’est pas encore aujourd'hui que je vais changer d'avis sur Linux.

    Entre les versions a gratuite de 600mb à 18gb à télécharger et les versions à 2.000$ (pour/avec du support) qui prenne en charge Hyper-V de base.

    J'ai perdu 2 jours à chercher des infos et en test.

    En gros tous les tutos sont fait pour des utilisateurs avertis. Car entre les demi-commandes et les command not found.

    Il n’y a pas grand chose qui fonctionne comme dans les tutos.

    En se qui me concerne ceci ne fonctionne pas.

    Bav,

    Nico

  • Bonjour,

    J'ai réussi a faire fonctionner avec la version 64bits...

    Par contre après un apt-get upgrade, le réseau disparais ...

    J'ai essayer de régénérer les modules avec un update-initramfs -u -k all, mais pas mieux et le ifconfig -a ne me donne plus seth0 mais eth0 et impossible de trouver la définition de celui ci dans le /etc/network/interfaces ...

    Si vous avez une idée, je suis preneur.

  • Zut ca passe plus avec la  10.10 ....

  • Bonjour,

    Après m'ettre arraché les cheveux, j'ai trouvé,

    Depuis la 10.4.3, il ne faut plus appeler la carte syntehique "sethn" mais bien "ethn".

    Cela fonctionnera.

    Et voila.

  • Si je peux ajouter une suggestion, il est bon à savoir qu'il existe des kernel non génériques dans la distribution ubuntu disponibles sur le dépôt officiel dont le "virtual" qui est spécialement compilé pour les machines virtuelles

Your comment has been posted.   Close
Thank you, your comment requires moderation so it may take a while to appear.   Close
Leave a Comment