Impossible d'utiliser kdump ou kexec pour les machines virtuelles de Linux sur Hyper-V

Traductions disponibles Traductions disponibles
Numéro d'article: 2858695 - Voir les produits auxquels s'applique cet article
Agrandir tout | Réduire tout

Symptômes

Envisagez le scénario suivant :
  • Vous avez un ordinateur Windows qui a le rôle Hyper-V installé.
  • Vous installez Linux sur une machine virtuelle de Hyper-V sur l'ordinateur.
  • Vous configurez kdump sur la VM Linux. le VM Linux possède déjà les pilotes Linux Integration Services, prédéfinis ou installés manuellement.
Si la machine virtuelle Linux se bloque dans ce scénario, le fichier de vidage du noyau Linux n'est pas généré comme prévu.

Cause

Ce problème se produit parce que Hyper-V ne peut pas héberger deux connexions simultanées à partir du même pilote synthétique qui s'exécute dans une machine virtuelle.

Lorsque kdump est configuré sur une machine virtuelle Linux qui utilise le pilote de stockage synthétiques Linux Integration Services (également connu sous le nom storvsc), le noyau kexec est configuré pour utiliser le même pilote. Si la machine virtuelle Linux se bloque, le pilote de stockage synthétiques qui est hébergé dans le noyau kexec tente d'ouvrir une connexion au fournisseur de stockage de Hyper-V. Toutefois, Hyper-V ne parvient pas à établir la nouvelle connexion en raison de la connexion préexistante sur le même pilote de stockage sur la machine virtuelle Linux en panne. Par conséquent, le noyau kexec ne peuvent pas vider le c?ur de la machine virtuelle Linux en panne.

Résolution

Pour résoudre ce problème, configurez le noyau kexec en utilisant le pilote de stockage Linux standard. Cette configuration doit être effectuée après que la fonctionnalité kdump est activée sur une machine virtuelle Linux. L'idée de base consiste à désactiver le pilote de stockage Linux Integration Services, puis activez le pilote de stockage Linux standard dans le noyau de kexec en utilisant le paramètre de prefer_ms_hyper_v à des endroits stratégiques.

Le paramètre prefer_ms_hyper_v peut être utilisé pour contrôler le comportement du pilote de stockage Linux standard. Lorsque ce paramètre est défini sur 1 et l'exécution de la machine virtuelle Linux sur Hyper-V, le pilote de stockage Linux standard se désactive et le pilote de stockage Linux Integration Services vous permet de contrôler les périphériques de stockage. En définissant le paramètre prefer_ms_hyper_v sur 0, le pilote de stockage Linux standard est autorisé à fonctionner. Car le pilote de stockage Linux standard ne nécessite pas une connexion à Hyper-V, le noyau kexec pouvez faire un dump core.

Différentes distributions de Linux ont légèrement différents mécanismes pour spécifier la valeur de prefer_ms_hyper_v. La section suivante décrit comment le paramètre peut être défini pour plusieurs distributions Linux populaires.

Red Hat Enterprise Linux (RHEL) 5.9

Dans RHEL 5.9, vous devez passer le paramètre prefer_ms_hyper_v via un argument de ligne de commande du noyau du module de ide_core qui est intégré dans le noyau RHEL 5.9. Par défaut, ce paramètre est initialisé à 1, et dans ce cas, la machine virtuelle Linux afin d'éviter l'utilisation du module de ide_core s'il s'exécute dans un environnement Hyper-V. Les administrateurs doivent définir la valeur du paramètre prefer_ms_hyper_v sur 0 pour que le pilote ide_core devient opérationnel au cours du processus de démarrage du noyau kexec. Pour cela, en modifiant le contenu de /etc/kdump.conf.

Pour modifier le contenu de /etc/kdump.conf, procédez comme suit :
  1. Exécutez la commande suivante pour configurer les kdump pour écrire dans un répertoire local :

    / var/panne du chemin d'accès
  2. Les pilotes Linux Integration Services dans /etc/kdump.conf sur liste noire. Cela empêche les pilotes le chargement dans le noyau kexec. Pour ce faire, exécutez la commande suivante :

    liste de blocage hv_vmbus hv_storvsc hv_utils hv_netvsc hid_hyperv
  3. Configurer la valeur de délai d'attente du disque en exécutant la commande suivante :

    disk_timeout 100
  4. Après les modifications nécessaires, le fichier /etc/kdump.conf ressemble à ceci :
    / var/panne du chemin d'accès
    makedumpfile de core_collector - c--message-niveau 1 - d 31
    liste de blocage hv_vmbus hv_storvsc hv_utils hv_netvsc hid_hyperv
    disk_timeout 100
  5. Modifier le contenu du fichier /etc/sysconfig/kdump comme suit :
    • Ajouter ou modifier la ligne suivante pour inclure la prefer_ms_hyperv = 0 argument :

      KDUMP_COMMANDLINE_APPEND = "irqpoll maxcpus = 1 reset_devices ide_core.prefer_ms_hyperv=0"
    • Après les modifications nécessaires, le fichier /etc/sysconfig/kdump ressemble à ceci :
      KDUMP_COMMANDLINE = ""

      # Cette variable nous permet d'ajouter des arguments à la ligne de commande kdump en cours
      # Que pris à partir de deux KDUMP_COMMANDLINE ci-dessus, ou à partir / proc/cmdline

      KDUMP_COMMANDLINE_APPEND = "irqpoll maxcpus = 1 reset_devices ide_core.prefer_ms_hyperv=0"

Red Hat Enterprise Linux (RHEL) 6.4

Au point 6.4 RHEL, vous devez passer le paramètre prefer_ms_hyper_v pour le module du pilote ata_piix . Pour cela, en modifiant le contenu du fichier /etc/kdump.conf.

Pour modifier le contenu de /etc/kdump.conf, procédez comme suit:
  1. Configurer kdump pour écrire dans un répertoire local :

    / var/panne du chemin d'accès
  2. Ajouter des modules supplémentaires ata_piix, sr_mod, sd_mod :

    extra_modules ata_piix sr_mod sd_mod
  3. Pilotes Linux Integration Services de listes de blocage dans etc/kdump.conf. Cela empêche les pilotes de se charger dans le noyau kexec :

    liste de blocage hv_vmbus hv_storvsc hv_utils hv_netvsc hid_hyperv
  4. Ajoutez le paramètre options pour passer le paramètre dans le module ata_piix :

    Options ata_piix prefer_ms_hyperv = 0
  5. Configurer la valeur de délai d'attente de disque afin qu'il cesse de répondre (se bloquer) :

    disk_timeout 100
  6. Après les modifications nécessaires, le fichier /etc/kdump.conf ressemble à ceci :
    / var/panne du chemin d'accès
    makedumpfile de core_collector - c--message-niveau 1 - d 31
    extra_modules ata_piix sr_mod sd_mod
    liste de blocage hv_vmbus hv_storvsc hv_utils hv_netvsc hid_hyperv
    Options ata_piix prefer_ms_hyperv = 0
    disk_timeout 100

Ubuntu 12.04(.x)

Sous Ubuntu 12.04 (.x), vous devez passer le paramètre prefer_ms_hyper_v pour le pilote ata_piix . Pour cela, en modifiant le contenu du fichier /etc/init.d/kdump.

Pour modifier le contenu du fichier /etc/init.d/kdump, ajoutez ata_piix. prefer_ms_hyper_v = 0 pour les options de ligne de commande kdump :
do_start {} {
?.
?.
APPEND = "$APPEND kdump_needed maxcpus = 1 irqpoll reset_devices ata_piix.prefer_ms_hyperv=0"
?
}

SUSE Linux Enterprise Server (SLES) 11 SP2(x)

Dans les distributions de SLES 11 SP2(x), vous devez passer le paramètre prefer_ms_hyper_v pour le pilote ata_piix . Pour cela, vous pouvez modifier le contenu du fichier /etc/sysconfig/kdump comme suit :

Ajouter ata_piix.prefer_ms_hyper_v=0 à KDUMP_COMMANDLINE_APPEND :

KDUMP_COMMANDLINE_APPEND="ata_piix.prefer_ms_hyperv=0"

Après les modifications nécessaires, le fichier /etc/sysconfig/kdump ressemble à ceci :

KDUMP_COMMANDLINE_APPEND="ata_piix.prefer_ms_hyperv=0"

Plus d'informations

KDUMP doit être configuré de manière standard qui est suggérée par les distributions de Linux.

Les produits tiers mentionnés dans cet article sont fabriqués par des sociétés indépendantes de Microsoft. Microsoft n'offre aucune garantie, même implicite, concernant les performances ou la fiabilité de ces produits.

Propriétés

Numéro d'article: 2858695 - Dernière mise à jour: mardi 25 juin 2013 - Version: 2.0
Les informations contenues dans cet article s'appliquent au(x) produit(s) suivant(s):
  • Microsoft Hyper-V Server 2008 R2
  • Microsoft Hyper-V Server 2008 R2 Service Pack 1
  • Windows Server 2008 R2 Standard
  • Windows Server 2008 R2 Enterprise
  • Windows Server 2008 R2 Datacenter
  • Windows Server 2008 R2 for Itanium-Based Systems
  • Windows Server 2008 R2 Service Pack 1
  • Windows Storage Server 2008 R2
  • Windows Storage Server 2008 R2 Essentials
  • Microsoft Hyper-V Server 2012
  • Windows Server 2012 Foundation
  • Windows Server 2012 Release Candidate
  • Windows Server 2012 Standard
  • Windows Storage Server 2012 Standard
  • Windows Storage Server 2012 Workgroup
Mots-clés : 
kbmt KB2858695 KbMtfr
Traduction automatique
IMPORTANT : Cet article est issu d'une traduction automatique réalisée par un logiciel Microsoft et non par un traducteur professionnel. Cette traduction automatique a pu aussi être révisée par la communauté Microsoft grâce à la technologie Community Translation Framework (CTF). Pour en savoir plus sur cette technologie, veuillez consulter la page http://support.microsoft.com/gp/machine-translation-corrections/fr. Microsoft vous propose en effet des articles traduits par des professionnels, des articles issus de traductions automatiques et des articles issus de traductions automatiques révisées par la communauté Microsoft, de manière à ce que vous ayez accès à tous les articles de notre Base de connaissances dans votre langue. Il est important de noter que les articles issus de la traduction automatique, y compris ceux révisés par la communauté Microsoft, peuvent contenir des erreurs de vocabulaire, de syntaxe ou de grammaire. Microsoft ne pourra être tenu responsable des imprécisions, erreurs, ainsi que de tout dommage résultant d?une traduction incorrecte du contenu ou de son utilisation par les clients.
La version anglaise de cet article est la suivante: 2858695
L'INFORMATION CONTENUE DANS CE DOCUMENT EST FOURNIE PAR MICROSOFT SANS GARANTIE D'AUCUNE SORTE, EXPLICITE OU IMPLICITE. L'UTILISATEUR ASSUME LE RISQUE DE L'UTILISATION DU CONTENU DE CE DOCUMENT. CE DOCUMENT NE PEUT ETRE REVENDU OU CEDE EN ECHANGE D'UN QUELCONQUE PROFIT.

Envoyer des commentaires

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com