Fichier de vidage de mémoire endommagé lorsque vous essayez d’obtenir un fichier de vidage de mémoire complète à partir d’une machine virtuelle qui s’exécute dans un environnement de cluster
Cet article fournit une solution à un problème où un fichier de vidage de mémoire endommagé est généré lorsque vous essayez d’obtenir un fichier de vidage de mémoire complète à partir d’une machine virtuelle.
Numéro de base de connaissances d’origine : 2913486
Symptômes
Vous disposez d’une machine virtuelle qui s’exécute dans un environnement de cluster dans Windows Server 2012 ou Windows Server 2008 R2. Lorsque vous essayez d’obtenir un fichier de vidage de mémoire complète à partir de la machine virtuelle, un fichier de vidage de mémoire endommagé est généré. Pendant le chargement du fichier de vidage de mémoire, vous pouvez recevoir le message suivant :
CE FICHIER DE VIDAGE EST PARTIELLEMENT ENDOMMAGÉ.
KdDebuggerDataBlock n’est pas présent ou illisible.
GetContextState a échoué, 0xD0000147
Impossible d’obtenir le compteur de programme
GetContextState a échoué, 0xD0000147
Impossible d’obtenir le contexte de l’ordinateur actuel, NTSTATUS 0xC0000147
En outre, vous remarquerez peut-être que l’écriture d’un fichier de vidage de mémoire complète ne se termine pas et que la machine virtuelle est redémarrée sur un autre nœud du cluster.
Cause
Ce problème se produit, car l’option Activer la surveillance des pulsations de la machine virtuelle est sélectionnée pour la machine virtuelle. Cette option réinitialise la machine virtuelle en cluster après une minute (la valeur par défaut) et la machine virtuelle en cluster nécessite plus d’une minute pour terminer l’écriture du vidage de la mémoire.
Note
Les pulsations entre la machine virtuelle et Virtual Machine Manager se produisent toutes les quelques secondes. Il peut nécessiter jusqu’à une minute pour détecter que la machine virtuelle est en panne, car la ressource de machine virtuelle vérifie l’état de pulsation de Virtual Machine Manager dans sa fonction de point d’entrée isAlive. Par défaut, isAlive se produit une fois par minute. Toutefois, les pulsations peuvent arrêter 30 secondes avant l’intervalle d’une minute. Dans ce cas, le cluster peut redémarrer la machine virtuelle sur le même serveur ou la basculer vers un autre nœud.
Résolution
Pour résoudre ce problème, désactivez l’option Activer la surveillance des pulsations pour l’option de machine virtuelle.
Option 1 : Modifier les paramètres de l’interface graphique utilisateur
- Ouvrez le Gestionnaire du cluster de basculement.
- Cliquez sur Rôles, puis recherchez la ressource de machine virtuelle.
- Sous l’onglet Ressources, cliquez avec le bouton droit sur la machine virtuelle.
- Cliquez sur Propriétés, puis sur l’onglet Paramètres .
- Dans le paramètre pulsations, cliquez pour désactiver la case Activer la récupération automatique pour l’analyse de l’intégrité de l’application.
- Cliquez pour désactiver la case Activer la surveillance des pulsations pour la machine virtuelle, puis cliquez sur OK.
Option 2 : Modifier les paramètres à l’aide de Windows PowerShell
Démarrez Windows PowerShell.
Vérifiez le nom de la machine virtuelle. Pour ce faire, tapez la commande Windows PowerShell suivante :
PS C:\> Get-ClusterResource
Vérifiez si l’option Activer la surveillance des pulsations pour la machine virtuelle et Activer la récupération automatique pour les options de surveillance de l’intégrité des applications est sélectionnée. Pour ce faire, tapez la commande Windows PowerShell suivante :
PS C:\> Get-ClusterResource <VirtualMachineName> | Get-ClusterParameter CheckHeartbeat
Lorsque la valeur CheckHeartbeat est 1, les deux options sont sélectionnées. Pour annuler les deux options, remplacez cette valeur par 0. Pour ce faire, tapez la commande Windows PowerShell suivante :
PS C:\> Get-ClusterResource <VirtualMachineName> | Set-ClusterParameter CheckHeartbeat 0
Si vous souhaitez annuler uniquement l’option Activer la récupération automatique pour l’analyse de l’intégrité des applications, vous devez exécuter la commande Windows PowerShell suivante :
PS C:\> (Get-ClusterResource <Object>).EmbeddedFailureAction = 1
Plus d’informations
Les fichiers de vidage de mémoire mini et noyau sont écrits avec succès. Cela se produit parce que la durée nécessaire à l’écriture de ces fichiers ne dépasse pas le seuil d’une minute.