Stanislas Quastana's blog on TechNet

Windows Server 2012, Windows 8, Cloud Privé, System Center, DirectAccess, sécurité des Systèmes d Information

Windows Server 2012 - Dépanner Live Migration - erreurs 0x8009030D, 0x8009030E, 0x80072746

Windows Server 2012 - Dépanner Live Migration - erreurs 0x8009030D, 0x8009030E, 0x80072746

  • Comments 5

La Live Migration a subi de nombreuses améliorations entre Windows Server 2008 R2 et Windows Server 2012. Parmi les grosses nouveautés disponibles dans Hyper-V édition Windows Server 2012, il y a le Live Migration Shared Nothing qui permet le déplacement à chaud d’une machine virtuelle entre 2 serveurs (ou entre un serveur et un Cluster, ou entre 2 Clusters) n’ayant pas de stockage partagé.

Ayant eu l’occasion de configurer cette fonctionnalité de nombreuses fois, je suis rapidement tombé sur un cas générant un bon message d’erreur comme on aimerait en voir moins souvent. Et cet article a pour objectif de vous expliquez le pourquoi de cette erreur et comment la résoudre.

La bonne nouvelle c’est que ce message d’erreur est très classique et que sa résolution est faisable une fois qu’on a compris la cause du problème.

Dans quelles conditions obtient-on ce message d’erreur ?

ce  message d’erreur s’obtient dès qu’on veut déclencher un “live migration shared nothing” d’une machine virtuelle d’un serveur Hyper-V sur lequel l’administrateur n’a pas ouvert de session locale (ou de session Bureau à Distance d’administration) vers un autre serveur Hyper-V

Exemple : je suis connecté en RDP au serveur HyperSpeed-2 depuis lequel j’exécute la console de gestion d’Hyper-V. Dans celle-ci j’ai ajouté 2 autres serveurs (HyperSpeed-1 et HyperSpeed-3).

Je cherche à faire une live migration d’une machine virtuelle exécutée sur HyperSpeed-1 sur HyperSpeed-2 via l’assistant de déplacement :

Ici je choisi un déplacement de machine virtuelle

Serveur hyper-V de destination : HyperSpeed-2

Ici le but est de déplacer l’ensemble des fichiers de la VM du serveur HyperSpeed-1 vers le serveur HyperSpeed-2

Et là le fameux message d’erreur fait son apparition :

Virtual machine migration operation failed at migration source.

Failed to establish a connection with host ‘HYPERSPEED-2’ : no credentials are available in the security package (0x8009030E)

Failed to authenticate the connection at the source host : no suitable credentials available

Si on regarde les évènements dans les journaux on trouve 3 messages d’erreurs

Event ID 22040 : Failed to receive data for a Virtual Machine migration: an existing connection was forcibly closed by the remote host (0x80072746)

Event ID 20402 : The Virtual Machine Management Service failed to authenticate the connection for a Virtual Machine Migration at the destination host. An existing connection was forcibly closed by the remote host (0x80072746)

 

Event ID 20400 : The Virtual Machine Management Service blocked a connection request for a Virtual Machine migration from client address ‘10.166.2.84’. An existing connection was forcibly closed by the remote host (0x80072746)

Pourquoi ce message d’erreur ?

Si on crée une machine virtuelle, les informations de sécurité (crédentials) de l’administrateur sont utilisées sur l’hyperviseur distant.

Par contre quand on déplace une machine virtuelle depuis un serveur hyper-V distant (qui est donc considéré comme l’hôte source dans la Live Migration), certaines opérations impliquent directement cet hôte distant. Cet hôte source va chercher à utiliser les crédentiels de l’administrateur pour déplacer la machine virtuelle vers un hôte de destination et cela va être un échec (d’où le message d’erreur obtenu) car le serveur hôte source n’a pas le droit d’utiliser les crédentiels d’un administrateur. Il lui manque simplement le droit de déléguer les crédentiels de l’administrateur. Et c’est ici qu’intervient la délégation Kerberos contrainte (Kerberos Constrained Delegation)

Ce mécanisme connu depuis Windows 2000, permet à un client (request service) de déléguer l’authentification à un second service en informant le KDC (Kerberos Key Distribution Center) que le second service est autorisé à agir en son nom.

Dans le cas qui nous concerne (la Live Migration), la délégation Kerberos contrainte doit être configurée pour 2 services sur le serveur HyperSpeed-1 :

  • CIFS (Common Internet File System) est utilisé par HyperSpeed-1 (hôte source) pour accéder à HyperSpeed-2 (hôte destination) et créer les fichiers et répertoires.
  • Microsoft Virtual System Migration Service sert comme son nom l’indique à la migration. Ce service gère en autre les migrations de machines virtuelle ainsi que la réplication de VM.

Configurer la délégation Kerberos contrainte

Toute d’abord dans les propriétés d’Hyper-V concernant la Live Migration, passer en mode Kerberos

Ouvrir la console Active Directory Users and computers, et aller dans les propriétés d’HyperSpeed-1

Faire un bon redémarrage des serveurs Hyper-V (oui ça ne fait pas de mal)

ET là ça fonctionne beaucoup mieux ! même vous risquez de tomber potentiellement sur une nouvelle erreur en cas de déplacements multiple. Mais ça je le traiterai dans un prochain article Winking smile

 

   Ressources complémentaires

 

Pour tester Windows Server 2012, vous pouvez télécharger gratuitement la version d’évaluation disponible sous la forme :
- d'une image ISO :
http://aka.ms/jeveuxwindows2012

- d'un fichier VHD avec un système préinstallé : http://aka.ms/jeveuxwindows2012

 
-
Stanislas Quastana -

Comments
  • Bonjour,

    J'ai fait des tests et j'ai rencontrer cette même erreur ce matin (mais j'ai trouvé sur le technet la résolution des délégations 20 min avant de voir votre post) :-).

    Par contre, j'aimerais faire un gros lab sur mon laptop... en utilisant hyper-v de Windows 8.

    Sur celui-ci j'ai déjà installé 2x W2012 server (mgnt + dc) et 2 hyper-v server 2012. Il n'est apparemment pas possible de lancer les vm dans l'hyper-v lui même étant une vm dans hyper-v de Windows 8 (chaud ok mais ça marche sur VMware Workstation...)

    J'ai bien investigué quelques peu sur le net sans résultats probants, auriez-vous plus d'info ?

    Merci d'avance.

    Julien

  • Bonjour. Ceci n'est pas possible avec Hyper-V dans Windows 8 / 2012.   Et à part le cas du lab de test, il n'y a aucun intérêt de virtualiser des machines de type hyperviseur.

    Et effectivement VMware Workstation ou Fusion sous Mac permette d'exposer les instructions Intel-VT à la VM permettant notamment l'installation dans une VM du rôle Hyper-V

  • Vraiment dommage, merci pour la réponse.

    Au fait sympa la présentation avec votre collègue aux Techdays de Lausanne !

  • Bonjour,

    la manipulation peut devenir très fastidieuse en présence de plusieurs serveurs HyperV (imaginons 20 serveurs !!!). N'y a t-il pas moyen d'éviter cela ? Et toujours dans ce cas il faut tous les redémarrer après la manipulation ? L'ensemble de l'opération me semble très lourd.

    J'attend avec impatience le prochain article,  j'ai le problème avec les déplacements multiples :)

    Merci pour toutes les infos de ce blog !!

  • Dès que le nombre d'hyperviseur commence à augmenter, il est clair qu'il vaut mieux automatiser / scripter la configuration. Pour cela le script disponible à l'adresse suivante (blogs.technet.com/.../configuring-kerberos-constrained-delegation-for-hyper-v-management.aspx) peut être utile ou servir de base à une version plus évoluée.

    De même, au delà de quelques serveurs, l'utilisation de System Center Virtual Machine Manager 2012 SP1 est recommandée (dans ce cas, je ne suis pas certain qu'il soit nécessaire de faire la configuration KDC car je crois qu'on peut le faire de manière centralisée lors de l'installation de l'agent VMM.. à confirmer)

Page 1 of 1 (5 items)
Leave a Comment
  • Please add 3 and 7 and type the answer here:
  • Post