The hypervisor is not running

De même que nous l’avons fait à la sortie de XenServer 5, nous avons testé Hyper-V Server 2008 R2 (disponible depuis le 01.09.2009). Cette version est la réponse de Microsoft à la gratuité d’ESXi et de XenServer car dans “Hyper-V Server 2008 R2″ il n’y a pas “Windows”, donc c’est gratuit.

Rassurez vous, il y a des gros bouts de Windows dedans quand même. Peut être même un peu trop, et c’est ce qui nous a amené à rédiger ce post. Il ne sera pas question d’analyses de performance ni de comparaison de fonctionnalités, juste d’un aperçu du pèlerinage qu’à été l’installation de 3 serveurs motivé à la base par la curiosité de testé Live Migration et Cluster Shared Volumes (CSV). Malgré tout, il y a eu quelques bonnes surprises…

Chauffe Marcel !

Tout d’abord voici le détail de la configuration de test :

  • Châssis IBM BladeCenter-E  86773RG
  • 3x lames IBM HS21 8853L2G avec 8Go de RAM
  • 3x cartes SAN Q-Logic 4GB SFF (option IBM)
  • 2x switch FC Brocade 4GB (option IBM)
  • Fabric SAN (EMC Symmetrix DMX 3 + Switch Brocade)

L’installation de l’hyperviseur Microsoft fut un peu plus longue que celui de Citrix ou encore de VMware mais ce n’est qu’un détail. Une fois l’installation terminé, en guise de console d’administration locale, on a le droit à ça :

C’est pas glorieux mais ça fera l’affaire pour mettre la couche IP et faire le reste en RDP.

Ayant eu droit à quelques déboires avec ce script lors de la configuration réseau, voici une petit liste de commandes qui nous a permis de contourner le problème :

netsh winhttp set proxy <server:port>
netsh interface ip show config
netsh interface ip set address “<Local Area Connection>” static <ip> <netmask> <gateway>
netsh advfirewall firewall set rule group=”Remote Volume Management” new enable=yes
netsh interface ip add dns “<Local Area Connection>” <ip>
Start /w ocsetup FailoverCluster-Core

Après renommage et débridage du firewall pour l’accès via MMC (+2 reboot), il ne faut pas oublier d’inscrire le Windows 2008 core (qui se cache derrière) dans un domaine Active Directory (+1 reboot). Car pour accéder à la fonction Live Migration, il faut un cluster MSCS et que pour avoir un cluster MSCS, il faut un domaine AD :

All servers in the cluster must be in the same Active Directory domain

Sachant qu’il est impossible d’utiliser XP ou 2003 pour administrer Hyper-V (RSAT oblige…) , nous décidons d’utiliser une VM Windows 2008 (non R2) fraichement installée. Premier message d’erreur :

Google+Kb MS+reboot, on commence la config réseau. Séquence humour, chaque modification de network se traduit par une coupure de quelques secondes :

On passe à la console Failover Cluster Management, nouvelle erreur :

Explication sur un forum MS :

You cannot use a non-R2 Windows Server 2008 computer to control the Failover Cluster console in a R2 Windows Server 2008 computer.

C’est bon à savoir. Nous voila donc parti pour installer une RC de Windows 7 (32 bit) car nous venions d’apprendre la dispo du RSAT pour 7.

Nouvelle erreur dans la Failover Cluster console :

Explications d’MS :

If you will be using a computer with a 32-bit operating system to remotely manage a computer running Hyper-V Server that has failover clustering enabled, you must enable 32-bit support for failover clustering on the computer running Hyper-V Server. You can do this with the following command:  dism /online /enable-feature /featurename: FailoverCluster-Core-WOW64

Faisons ça sur nos 3 serveurs (pour R2, la bonne commande est “dism /online /enable-feature /featurename:FailoverCluster-Core-WOW64″)…

Nous pouvons maintenant configurer le stockage. Ayant l’habitude des cluster MSCS 2003, nous configurons les LUN de la même façon coté SAN.

Malheureusement, pour un cluster 2008 R2 il est nécessaire que les LUN supportent le SCSI-3 Persistent Reservation. Donc pas de validation du cluster pour le moment.

Google à nouveau, nous ne tardons pas à tomber sur la réponse : il faut envoyer une commande à la baie car ce flag ne fait pas parti de ceux par défaut :

set device 122E attribute=SCSI3_persist_reserv ;
set device 1873 attribute=SCSI3_persist_reserv ;
symconfigure -sid 432 -v -f SCSI3_persist_reserv  commit

Toujours la même erreur car par défaut une baie DMX présente une LUN (ID 0) supplémentaire (vcmdb) permettant de communiquer directement avec elle. Le test de SCSI-3 PR se faisant sur la première LUN visible pas l’OS, la validation du cluster échoue systématiquement. Il est impossible de modifier cette LUN car elle n’est que virtuelle. Plan A :

The vcmdb must be made invisible to disk management [...] this can be accomplished by right-clicking the disk in Device Manager and selecting disable.

Hyper-V Server 2008 R2 étant une version core, nous tentons de le faire en remote. Erreur :

Réponse sur Google : Il faut activer une policy (gpedit en remote + gpupdate /force) :

+ désactivation du firewall :

netsh firewall set opmode disable

Et ça n’a servi à rien car le Device Manager est en Read Only, même sur une version core (à moins que nous n’ayons pas googlé assez…) :

Plan B : on masque la vcmdb du FA, ce qui impactera tous les hosts connectés dessus. On est plus à ça près !

unmap dev 0040 from dir 3B:0;
unmap dev 0040 from dir 14B:0;
symconfigure -sid 432 -v -f UNmap_VCMDB commit

Cette fois, c’est bon (merci Manu) !

Une fois le cluster OK, on passe à la création du CSV (qui n’est pas au gout de tout le monde), suivi par la création de la VM. Il faut savoir que les volumes CSV sont accessibles via des pointeurs dans C:\ClusterStorage\ :

On démarre la VM :

Traduction d’MS sur un post regroupant le top des messages-d’erreur-qui-ne-veulent-rien-dire : Il fallait bien sûr activer le “NX bit” dans le BIOS des serveurs (Hyper-V, tout comme XenServer, ne font que du Hardware Assit).

Au passage, Hyper-V R2 ne gère toujours pas le failover SAN ni Ethernet  nativement, il faut donc s’assurer que le constructeur fournisse bien les drivers et applicatifs compatiblent 2008 core (CLI uniquement). Dans notre cas, il a fallu utiliser cette commande pour l’installation des pilotes Q-Logic :

pnputil -i -a “driver.inf”

Et utiliser une licence “PowerPath” d’EMC pour la gestion du failover FC. Et ça, ce n’est pas gratuit.

On peux maintenant tester Live Migration :

Et ça marche ! Par contre, pas plus d’un par host simultanément  :

Et la console de la VM ne suit pas le mouvement :

Globalement, le mécanisme de migration à chaud semble bien maitrisé. Nous avons fait quelques migrations sur une VM stressée sans problème.

A titre de comparaison, il nous a fallu moins de 2 heures (sans google, ni admin guide) pour monter 2 XenServer et XenCenter, pour faire un XenMotion d’une VM sur un datastore NFS…

Au menu des petits plus, il y a la possibilité de choisir l’emplacement des snapshots et l’ordre de boot en GUI :

Passons maintenant à LA bonne surprise d’Hyper-V R2 : la fonction “Connectivity Fault Tolerance” de CSV

CSV est un genre d’add-on à NTFS qui permet à plusieurs serveurs d’écrire sur la même partition et donc d’avoir plusieurs VM, managées par plusieurs Hyper-V, sur le même volume (grosse lacune d’Hyper-V “R1″ qui obligeait à avoir autant de LUN que de VM). CSV ne transformant pas NTFS, un des serveurs à le rôle de “coordinator node” qui gère les requêtes d’écriture des metadata :

Lorsque la connectivité SAN est perdue sur un des noeuds, le flux de data est encapsulé dans du SMB v2 et transporté par le réseau au “coordinator node”. Nous l’avons testé en coupant les ports fibres d’un des serveurs hébergeant une VM, la bascule se fait en quelques secondes sans downtime :

Le failback est automatique (et peut être forcé) quelques secondes après le retour du SAN, toujours sans downtime. Cette fonction semble très mure mais nous restons septique quant à son application sur des serveurs hébergeant plusieurs dizaines de VM.

Conclusion : Hyper-V Server 2008 R2 manque encore cruellement d’ergonomie, du support NFS et surtout d’un client d’administration unique compatible avec 2008 (non R2) et XP/2003. Et je ne parle pas d’une MMC pleine à craquée de composants avec lesquels il faut jongler pour chaque opération.

Malgré tout, nous laissons encore une chance à l’usine à gaz au produit et ne manquerons pas de vous donner nos impressions sur SCVMM R2 et sa fonction “Quick Storage Migration“.

Tags: ,

15 Responses to “The hypervisor is not running”

  1. Tres bien… Génial. Il y a encore des gars qui ont du l’humour…

    Et vous étiez combien et pendant combien de temps? A vous amuser comme ca?

    Ce devrais être inscrit dans le livre des mérites.

    Vladan

  2. A la décharge de MS -mias ça n’excuse pas la complexité relative du produit-, le produit est gratuit et procure du HA + migration à chaud efficacement.
    Le problème d’Hyper-V est qu’il repose sur du FailOver Cluster, outil préhistorique dans sa gestion et pourtant, ô combien puissant.
    Le jour où MS nous sort un Cluster-Design à la DRS (aussi simple!), on aura enfin une véritable évolution et on fera moins peur aux admins et aux décideurs.
    Car vous n’avez pas parlé du Cluster mode à appliquer en fonction du nombre de noeud (Witness, MNS, D&MNS, Shared), ni des manips à effectuer côté ClusterMgr lorsqu’on rencontre des soucis sur une ressource, ni du scripting qu’il faut mettre en place pour affiner le mode de gestion du Cluster (Par exemple en cas de perte d’une NIC publique)

    Cela étant, encore un très bon article -un peu dur :) ?- sur Hyper-V Server 2008 R2.

  3. Un peu long surtout :)
    Ce que je reproche le plus à MS c’est de n’avoir pas conçu le produit dans son ensemble. Ils n’ont fait que rajouter une fonction d’hyperviseur à Windows. Et si t’as pas un admin guide (et google) tu peux rien faire…

  4. Totalement d’accord avec toi sur ce point. Pour l’anecdote, un client a tenté de me démontrer qu’Hyper-V était un hyperviseur type 2 car il s’installait concrètement “par dessus Windows 2008″…
    Qu’est-ce que tu peux essayer de faire derrière ça? :)

  5. Lui conseiller un “meilleur” hyperviseur ? ;)

  6. C’est exactement mon impression… La couche de virtualization n’est qu’un add-on a un OS monolithique, ca resemble a du bricolage pour rester dans la course et compter sur le marketing pour avoir des parts de marche du nouvel air de la virtualization. Avouez quand meme que l’invention du ring -1 est genial d’un point de vue marketing loool. Bref la ou d’autres ecrivent l’histoire MS s’entete a nous refourguer son OS maison alors qu’on attend tous un nouveau ‘Windows 3.1′…

  7. Hmm, disons que ça me parait logique de vendre du Windows avec, personne n’est dérouté sur le produit du coup, le dev évolue en meme temps que l’OS Serveur et ça permet à certains de dire qu’ils peuvent installer quelquechose d’autre sur la partition parente, quitte à ne pas suivre les best-practices et à mutualiser encore plus les rôles. Cela étant, un petit serveur de fichiers ou un DNS secondaire sur la PP, ça se discute largement… Si tu prends le produit tel qu’il est, Hyper-v Server R2 fait mal à ESXi par contre ;)

  8. L’hyperviseur ne doit pas avoir d’autre fonction, ça rend le “service” dépendant de la machine sur lequel il est à l’inverse d’une VM. ESXi est justement développé dans cet optique.

  9. Je tentais pas de te convaincre ^^ et la comparaison avec ESXi n’était que pour le mettre en face de Hyper-V Server.
    Mais pour le coup, après avoir installer un Windows 2008 Hyper-V en full, c’est tentant de faire tourner autre chose dessus :) (Un peu comme de voir une NIC avec juste un CoS qui tourne dessus, tu te dis bah c’est un peu du gachis mince, je mettrai bien un autre truc dessus….. :) :) :) )
    En tous cas, j’ai très souvent la demande de la part des clients qui demande si on peut pas juste mettre un petit rôle par dessus, ça les aide à rationnaliser les coûts liés à leur infra :)

  10. C’est bien légitime mais tellement dangereux…
    J’ai entendu dire que certains installaient des bases oracle sur ESX, il était temps que ça cesse :D

  11. C’est souvent ça. Trouver l’équilibre juste pour ne pas surcharger une machine.

    Mais tellement impossible de faire tourner une role par serveur – selon Microsoft.

    Dommage que nos amis AngloSaxons ne peuvent pas participer à la discussion… -:)

  12. Au risque de me faire flame par les visiteurs de ce site, je vais quand même donner mon retour d’expérience sur Hyper-V.

    Je suis tombé sur cet article alors que je venais tout juste de venir un PoC (Proof of Concept) sur Hyper-V en cluster failover sur W2K8 Datacenter R2 avec SAN FC 2Gb. Jusque là, je n’ai rencontré aucun problème de mise en place de solution pour mon premier PoC.

    En lisant votre article, je me suis donc décidé à me lancer sur un second PoC avec donc 2 nœuds en Hyper-V Server 2008 R2, clustering failover activé + attachement SAN par iScsi sur du Netapp FAS250 (Oui j’aime me faire du mal ;D )

    Je m’étais donc préparer à rencontrer énormément de problèmes à la lecture de votre article.Étonnamment, tout s’est déroulé sans une seule erreur. Certes l’installation de Hyper-V Server 2K8 R2 est un peu longue (plus longue que l’OS en version complète !)

    Bilan :

    -Installation des Hyperviseurs => OK, un peu long mais ok
    -Config réseau => OK, le script a fonctionné nickel
    -Intégration au domaine => OK
    -Ajout d’un compte de domaine en admin local=> OK
    -Autorisation d’accès pour gestion à distance => OK
    -Attachement SAN en iScsi => OK (il faut juste connaitre l’outil qui s’appelle "iscsicpl.exe" pour gagner un peu de temps via l’interface graphique)
    -Création du cluster => OK, aussi simple que sur Win2K8 complete install

    A ce stade, j’ai donc un cluster 2 noeuds avec 2 LUNs (1 pour le quorum, 1 pour les VHDs) en CSV pour permettre le HA des VMs.
    Niveau réseau, j’ai 4 interfaces réseaux par nœud (1 pour le switch virtuel des VMs, 1 pour l’admin, 1 pour heartbeat même si ca ne sert plus trop vu que le heartbeat utilise n’importe quelle eth dispo, 1 pour le iscsi sur switch 1Gb)

    Fonctionnellement parlant, aucun problème (sans faute pour un produit GRATUIT).

    Maintenant niveau création VM. Je connais déjà Hyper-V donc pas de pb, je fais ma première VM et dans l’optique de garder un Hyperviseur en HA à moindre cout, je me suis dit que j’allais mettre du linux en VM. Mais là je me retrouve confronté au problème de réseau. Hyper-V ne propose que des cartes héritées pour la connectivité des linux à l’exception de Suse évidemment… Impossible donc de déplacer une VM d’un nœud à l’autre avec ce type de carte.

    Je fais donc le test avec un Win7 virtualisé pour vérifier qd même que mon cluster fonctionne. Quelques minutes d’install plus tard, le test est concluant. La migration de VM sans coupure de service fonctionne.

    Pour la perte de connexion sur la Console VM, c’est normal, elle est liée au noeud qui héberge la VM. Si vous prenez la main sur le Win7 par le biais d’une connexion RDP, vous constaterez que la session reste connectée pendant la bascule.

    Au final et de mon point de vue ce produit n’a que peu d’intérêt dans la mesure où les versions payantes de l’OS 2K8 offrent des licences VMs dès la version standard. Là on a certes du HA sur une version gratuite mais sans la possibilité de continuer sur cette voie avec des OS libres. On en revient donc à devoir payer les licences M$ des OS qu’on mettra en HA. Un calcul à faire pour savoir quelle sera la solution la moins onéreuse.

    Voilà, je ne remets pas en question le fait que vous ayez pu rencontrer des problèmes (On fait de l’informatique) mais je souhaitais témoigner en temps que personne convaincu que cette plateforme de virtualisation sera d’ici quelques temps (année?) la référence en virtualisation d’environnement Microsoft. Les perfs des VM Windows sur Hyper-V n’ont qd même rien à voir avec le reste…

    @+

  13. Merci pour votre retour d’XP !
    C’est rassurant de constater que dans certaines circonstances tout se passe pour le mieux :)

    Par contre, j’ajouterai qu’MS devrait quand même étoffer sa liste d’admin guide et whitepapers. cf l’Hyper-V Server 2008 Configuration Guide de 15 pages…

    Pour ma part, la perte de la connexion à la VM n’est pas normale, elle peut être expliquée mais pas justifiée ;)

  14. [...] l’initiateur logiciel iSCSI d’ESX comme failover au Fibre Channel, un peu comme “Connectivity Fault Tolerance” de CSV mais en mieux car contrairement à SMB, iSCSI est fait pour ça. Ce post n’a semble [...]

  15. [...] à fait honnête, depuis notre découverte d’Hyper-V R2, nous étions resté sur l’idée que le backup des VM sur CSV nécessitait un Hardware VSS [...]

Leave a Reply