Поделиться через


Поврежденный файл дампа памяти при попытке получить полный файл дампа памяти из виртуальной машины, работающей в среде кластера

В этой статье описывается решение проблемы, из-за которой файл дампа поврежденной памяти создается при попытке получить файл дампа памяти из виртуальной машины.

Исходный номер базы знаний: 2913486

Симптомы

У вас есть виртуальная машина, которая работает в среде кластера в Windows Server 2012 или Windows Server 2008 R2. При попытке получить файл дампа памяти из виртуальной машины создается поврежденный файл дампа памяти. Пока файл дампа памяти загружается, может появиться следующее сообщение:


ЭТОТ ФАЙЛ ДАМПА ЧАСТИЧНО ПОВРЕЖДЕН.

KdDebuggerDataBlock отсутствует или нечитаемо.


Сбой GetContextState, 0xD0000147

Не удается получить счетчик программы

Сбой GetContextState, 0xD0000147

Не удалось получить текущий контекст компьютера, NTSTATUS 0xC0000147

Кроме того, вы можете заметить, что запись файла дампа памяти не завершается и что виртуальная машина перезапущена на другом узле в кластере.

Причина

Эта проблема возникает, так как для виртуальной машины выбран параметр "Включить мониторинг пульса" для виртуальной машины. Этот параметр сбрасывает кластеризованную виртуальную машину через одну минуту (значение по умолчанию), а кластеризованная виртуальная машина требует больше времени, чтобы завершить запись дампа памяти.

Примечание.

Пульс между виртуальной машиной и диспетчер виртуальных машин происходит каждые несколько секунд. Для обнаружения того, что виртуальная машина отключена, может потребоваться до одной минуты, так как ресурс виртуальной машины проверяет состояние пульса из диспетчер виртуальных машин в функции точки входа isAlive. По умолчанию isAlive происходит один раз в минуту. Однако пульс может остановиться в течение 30 секунд до интервала в одну минуту. В этом случае кластер может перезапустить виртуальную машину на том же сервере или выполнить отработку отказа на другой узел.

Решение

Чтобы устранить эту проблему, отключите мониторинг пульса для параметра виртуальной машины .

Вариант 1. Изменение параметров из графического интерфейса

  1. Откройте диспетчер отказоустойчивости кластеров.
  2. Щелкните "Роли" и найдите ресурс виртуальной машины.
  3. На вкладке "Ресурсы" щелкните правой кнопкой мыши виртуальную машину.
  4. Щелкните "Свойства" и перейдите на вкладку "Параметры ".
  5. В параметре Heartbeat нажмите кнопку " Включить автоматическое восстановление" для мониторинга работоспособности приложений.
  6. Щелкните, чтобы очистить флажок "Включить мониторинг пульса" для виртуальной машины , а затем нажмите кнопку "ОК".

Вариант 2. Изменение параметров с помощью Windows PowerShell

  1. Запустите Windows PowerShell.

  2. Проверьте имя виртуальной машины. Для этого введите следующую команду Windows PowerShell:

    PS C:\> Get-ClusterResource
    
  3. Проверьте, выбран ли мониторинг пульса для виртуальной машины и включить автоматическое восстановление для параметров мониторинга работоспособности приложений. Для этого введите следующую команду Windows PowerShell:

    PS C:\> Get-ClusterResource <VirtualMachineName> | Get-ClusterParameter CheckHeartbeat
    
  4. Если значение CheckHeartbeat равно 1, оба параметра выбраны. Чтобы отменить оба параметра, измените это значение на 0. Для этого введите следующую команду Windows PowerShell:

    PS C:\> Get-ClusterResource <VirtualMachineName> | Set-ClusterParameter CheckHeartbeat 0
    

    Если вы хотите отменить только параметр "Включить автоматическое восстановление для мониторинга работоспособности приложений", выполните следующую команду Windows PowerShell:

    PS C:\> (Get-ClusterResource <Object>).EmbeddedFailureAction = 1
    

Дополнительная информация

Файлы дампа памяти мини и ядра записываются успешно. Это происходит, так как время, необходимое для записи этих файлов, не превышает одноминутное пороговое значение.