Ошибка при перезагрузке виртуальной машины vmware

Обновлено: 25.09.2022

Ошибка VMware Workstation and Device/Credential Guard are not compatible

При включении VMware Workstation на Windows 10 может возникнуть ошибка со следующим текстом:

Чаще всего эта ошибка возникает из-за того, что включено ПО Device Guard — оно помогает защитить систему от вредоносных файлов. Device Guard позволяет настроить список файлов, которые Windows будет считать безопасными. Если на компьютер попадут файлы, которые не входят в список, система автоматически удалит их. Работе VMware в таких случаях мешает компонент Hyper-V.

Чтобы отключить Hyper-V, необходимо внести изменения в реестр Windows. Перед отключением Hyper-V обязательно создайте резервную копию ОС.

Перейдите в раздел «Политика Локальный компьютер» — «Конфигурация компьютера» — «Административные шаблоны» — «Система» — «Device Guard». Дважды кликните на строку «Включить средство обеспечения безопасности на основе виртуализации».

Перейдите в раздел «Панель управления» — «Программы и компоненты» — «Включение или отключение компонентов Windows». Отключите Hyper-V и нажмите Ок. Если система предложит перезагрузить компьютер, откажитесь от перезагрузки.

Откройте командную строку от имени администратора. Поочередно выполните команды:

Затем перезагрузите компьютер.

Ошибка Cannot open the disk

Ещё одна распространенная ошибка при запуске виртуальной машины в VMware — Cannot open the disk. Её текст следующий:

На следующей строке будет указана одна из причин этой ошибки. Разберём, что означает каждая:

1) Failed to lock the file. Это значит, что процесс, который вы используете, не может открыть файл. При этом файл используется другим процессом. Что может привести к ошибке:

  • при работе с ВМ вы пытаетесь запустить вторую ВМ, используя тот же VMX-файл,
  • вы запустили ВМ с подключенным диском при помощи утилиты vmware-mount,
  • вы добавили виртуальный диск к ВМ, которая уже используется.

2) The parent virtual disk has been modified since the child was created. Эта ошибка возникает, если повреждён снимок ВМ.

3) The destination file system does not support large files означает, что на целевом хранилище невозможно открыть файл ВМ того же размера.

4) Could not open/create change tracking file. Эта проблема может возникнуть, если файл filename-ctk.vmdk создавался ранее и не очищался перед созданием новой ВМ. Здесь filename — это название вашего файла.

5) Cannot allocate memory. Тот случай, когда в модуле VMFS не хватает места.

6) The file specified is not a virtual disk возникает в случаях, если повреждён .VMDK-файл дескриптора.

7) Insufficient permission to access file. Такая проблема может возникнуть при использовании хранилищ типа NFS. Она сообщает о том, что экспорт NFS работает неправильно, так как права на чтение и запись файла не даны либо даны некорректно.

Единого решения для этого типа ошибки нет. Чаще всего причина связана с локальными настройками компьютера. Рекомендации по исправлению ошибки описаны в официальной документации.

date

09.10.2019

user

itpro

directory

VMWare

comments

комментариев 7

Иногда сталкиваюсь с тем, что определенная виртуальная машина на хосте VMWare ESXi зависает и ее нельзя никаким средствами выключить или перезагрузить из веб-интерфейса клиента vSphere. Перезагружать целиком ESXi сервер из-за одной виртуальной машины – не совсем целесообразно (особенно, если у вас всего один ESXi хост, или оставшиеся сервера в DRS кластере не потянут дополнительной нагрузки в виде виртуальных машин с перезагружаемого сервера). Рассмотрим основные способы принудительной остановки зависшей виртуальной машины в VMWare ESXi.

Если процесс виртуальной машины на сервере ESXi завис, она перестает реагировать на команды Reset / Power Off, и на любое действие выдает одну из ошибок:

    The attempted operation cannot be performed in the current state ;

В таких случаях вы можете вручную остановить процесс виртуальной машины на хосте ESXi из командной строки ESXi Shell или PowerCLI.

Сначала определите на каком ESXi хосте запушена зависшая виртуальная машина. Для этого в интерфейсе vSphere Client найдите ВМ. Имя хоста, на котором она запущена, указано на вкладке Summary в секции Related Object -> Host.

vsphere client найти хост, на котором запущена ВМ

Щёлкните по имени хоста ESXi. Вам нужно разрешить доступ к нему по протоколу SSH. Перейдите в Configure -> Services -> SSH -> Start.

ssh запустить на esxi хосте

Теперь вы можете подключиться к этому ESXi хосту через SSH с помощью клиента putty.

Выведем список ВМ, запушенных на хосте ESXi:

esxcli vm process list

esxcli vm process list - список виртуальных машин

Скопируйте идентификатор нужной виртуальной машины (World ID).

Чтобы завершить процесс зависшей виртуальной машинына хосте ESXi используется следующая команда:

esxcli vm process kill --type=[soft,hard,force] --world-id=WorldNumber

Как вы видите, есть три типа завершения процесса ВМ:

  • Soft – самый безопасный способ завершить VMX процесс (похож на kill -SIGTERM);
  • Hard – немедленное завершение процесса ВМ (kill -9);
  • Force – самый жесткий режим завершения процесса, должен использоваться в последнюю очередь, если ничего другое не помогает.

Убедитесь, что для ВМ нет активных заданий по созданию снапшотов, бэкапов, и подобных операций, а у ВМ нет статуса Virtual Machine disks consolidation is needed. Иначе вы можете сломать свою ВМ и ее придется восставливать из бэкапа.

Попробуем мягко остановить ВМ с указанным ID:

esxcli vm process kill --type=soft -w=25089429

esxcli vm process kill

ВМ должна выключиться.

Вы можете остановить зависшую виртуальную машину с помощью PowerCLI (это удобно, т.к. при подключении к vCenter вам не нужно искать хост, на котором запушена ВМ и включать SSH доступ). Проверим, что ВМ запушена:

get-vm “web2" | select name,PowerStates

PowerCLI get-vm

Принудительно остановите процесс ВМ командой:

stop-vm -kill "web2" -confirm:$false

powercli stop-vm kill перезапуск виртуальной машины

Также вы можете остановить зависшую виртуальную машину с помощью утилиты ESXTOP.

В SSH сесиии введите команду esxtop, затем нажмите “c” для отображения ресурсов CPU и shift + V, чтобы отображать только процессы вириальных машин

esxtop список процессов

Затем нажмите “f” (выбрать отображаемы поля), “c” (отобразить поле LWID- Leader World Id) и нажмите Enter.

esxtop список виртуальных машин

В столбце Name найдите виртуальную машину, которую нужно остановить, и определите номер ее LWID по соответствующему столбцу.

Затем осталось нажать кнопку «k» (kill) и набрать LWID идентфикатор той виртуальной машины, которую нужно принудительно выключить.

Последний способ жёсткого выключения виртуальной машины – воспользоваться утилитой kill. Такой способ позволит остановить не только ВМ, но и все дочерние процессы.

Получим ID родительского процесса ВМ:

kill -9 24288474

esxi kill vm process

После такого “hard reset”, установленная ОС запустится в режиме восстановления. В случае гостевой Windows, скрин будет выглядеть так.

Windows Error Recovery

Предыдущая статья Следующая статья

page

page

page

Как расширить диск виртуальной машины в VMWare

Установка VMware Tools на Debian, Ubuntu и CentOS

Сжимаем тонкий (thin) диск в ESXi 5

Создаем собственные правила файервола в ESXi 5.0

+5 Спасибо, очень помог!

А нет ли лекарства, чтобы виртуалки не зависали таким образом ? На сервере крутится единственная включенная вируталка с win2008r2/sql2008r2. Виснет она строго по ночам, без каких либо выявленных закономерностей: может месяцами не виснуть, может 2 раза за ночь. Достало просыпаться по ночам и перезагружать.

Странно — у меня баг с зависанием виртуальной машиной на ESXi встречался не столько часто…
Возможно стоит для начала обновить версию до последней версию ESXi и VMtools на гостевой ОС.
Если ничего не поможет — придется прикручивать какой-нибудь костыль в виде скрипта, периодически запускающегося на хосте ESXi и проверяющий доступность определенного сервиса на виртуалке (хотя бы тем же telnet-ом). Если сервис не отвечает — выполняем скрипт перезапуска виртуалки (по мотивам этого мануала)

Спасибо за инфу!
У меня были случаи подвисания виртуальных машин с Linux, Windows и FreeBSD — так что решение, похоже, не универсальное. Скорее тут какой-то глюх самого ESXi.
В любом случае по результатам, пожалуйста, отпишитесь…

К сожалению не помогла заплатка. зависания всё равно случаются.

Может память или ядра неправильно распределены?
Я заметил что бывают торможения всех виртуалок и начал оставлять запас по мощности.

date

13.04.2022

user

itpro

directory

VMWare

comments

комментариев 10

Довольно часто администраторы VMWare сталкиваются с тем, что в списке виртуальных машин присутствуют виртуальные машины со статусом Invalid (Unknown). Как правило эта проблема встречается после удаления виртуальной машиной, данные о которой почему-то остались в конфигурации vSphere/ESXi. Это также может случится при ручном удалении файлов виртуальной машины из VMFS хранилища, после выполнения VMotion и в ряде других случаев. Удалить такую ВМ из клиента vSphere Web Client штатными средствами не получится (пункт удаления в мeню Actions неактивен).

Invalid виртуальная машина на vmware esxi

Единственный способ удалить такую ВМ – через SSH консоль хоста ESXi.

Также вы можете вручную удалить проблемную ВМ из файла конфигурации хоста /etc/vmware/hostd/vmInventory.xml. Для этого достаточно с помощью текстового редактора удалить секцию с данными проблемной ВМ в файле vmInventory.xml (предварительно создайте резервную копию этого файла) и перезапустить службы хоста: services.sh restart

vmInventory.xml

В том случае, если статус Invalid появился у работающей виртуальной машины, скорее всего это значит, что поврежден файл конфигурации ВМ. Для исправления проблемы нужно:

  1. Удалите ВМ из инвентари и перезагрузите ESXi хост.
  2. После этого создайте новую ВМ и подключите к ней виртуальные диски старой ВМ (Use an existing disk).
  3. Сделайте Storage VMotion, чтобы собрать все файлы новой ВМ в одной папке,
  4. Включите новую ВМ и проверьте, что она работает.
  5. Удалите файлы старой ВМ.

Если проблема с Invalid ВМ возникла после пропадания доступа к VMFS хранилищам, то после восстановления доступа включенные ВМ продолжат свою работу, а выключенные виртуальные машины станут изолированными. Такие ВМ нужно вручную удалить из Inventory и вручную зарегистрировать, найдя vmx файл виртуальной машины на VMFS хранилище, щелкнув ПКМ по ВМ и выбрав пункт Register VM. После этого включите ВМ и проверьте, что она доступна.

Ранее установленный софт

Очень часто причиной зависания виртуальной машины на ESXI 6.5 выступает недавняя установка обновлений в системе или различного рода программного обеспечения. Обязательно посмотрите в "Панель управления\Все элементы панели управления\Программы и компоненты" по дате установки, что недавно было проинсталлировано.

Программы и компоненты Windows 10

Тут же можно посмотреть установленные обновления. Недавно Microsoft выпустило обновление KB4015553 (Со временем может меняться), которое в Windows Server 2012 R2 стало вызывать зависание. Необходимо удалить KB4015553, kb4019215 и kb4019217, перезагрузить ваш сервер.

Установленные обновления Windows 10

Сама компания Symantec рекомендует в ветке (https://support.symantec.com/en_US/article.TECH236543.html) Исключите из проверки следующий каталог, включая все подкаталоги: путь зависит от вашей версии SEP: "C:\ProgramData\Symantec\Symantec Endpoint Protection\\Data\Definitions". Пример для SEP 14.0 MP1: C:\ProgramData\Symantec\Symantec Endpoint Protection\14.0.2332.0100.105\Data\Definitions. Если вышеуказанное исключение не решает проблему, также исключите следующий каталог: C:\Windows\rescache.

Эти пути могут отличаться в зависимости от сборки продукта или от того, что каталоги ProgramData или Windows были перемещены на другой диск.

Сделать, это можно в "Change Settings - Exception - SONAR Exception" нажимаем кнопку "Add" и выбираем нужные каталоги.

Добавление исключений в Symantec 14

Алгоритм действий и возможные причины зависания

  • Первое, что я вам советую сделать, это избавится от ошибки "Vmware Tools is outdated on this virtual machine" путем обновления Vmware Tools. Напоминаю, что это сделать можно из меню "Guest OS - Update Vmware Tools". Потребуется перезагрузка виртуальной машины.

Обновление vmware tools esxi 6.5

  • Следующим пунктом, я вам советую проверить операционную систему на предмет повреждения системных файлов, сделать это просто. Запустите cmd от имени администратора или откройте Power Shell, кому что привычнее и введите команду:

Программа защиты ресурсов Windows обнаружила поврежденные файлы и успешно их восстановила. Подробные сведения см. в файле CBS.Log, который находится по следующему пути: windir\Logs\CBS\CBS.log.

Восстановление системных файлов Windows

Если ошибки не были устранены, то советую выполнить команду:

Утилита DISM обратится к внешним репозиториям Microsoft и скачает от туда валидные файлы, чтобы восстановить аналогичные в вашей системе. Процесс так же может занимать некоторое время. Как видим:

Восстановление выполнено успешно. Повреждение хранилище компонентов было устранено. Операция успешно завершена.

Повреждение хранилище компонентов было устранено

Еще одним пунктом диагностики проблем с ошибками ID 111 и ID 129, я вам советую выполнить сканирование ваших дисков на предмет ошибок. Для этого есть два варианта, старая добрая утилита командной строки ChkDsk и ее графический аналог в свойствах диска "Проверка диска на наличие ошибок файловой системы"

Для проверки локальных дисков через командную строку, вы можете воспользоваться командой:

Ключ /f указывает утилите исправлять ошибки на диске, флаг /R обязывает CHDSK искать на диске повреждённые сектора, и попытаться восстановить данные на них. Если диск системный, то вас попросят перезагрузиться, и проверка диска будет перед загрузкой системы.

Невозможно выполнить команду CHKDSK, так как указанный том используется другим процессом. Следует ли выполнить проверку этого тома при следующей перезагрузке системы? [Y(да)/N(нет)]

ChkDsk /r /f

То же самое вы можете сделать и в свойствах локального диска, для этого щелкните по нему правым кликом и перейдите в его свойства. Найдите там вкладку "Сервис" и на ней пункт "Проверка диска на наличие ошибок файловой системы". Нажмите проверить.

Проверка диска на наличие ошибок файловой системы


В новом окне нажимаем "Проверить диск".

Проверить диск в Windows


Будет запущен процесс сканирования диска, обычно он занимает не много времени.

Сканирование диска на ошибки

После чего вы получите результат. В моем случае я вижу, что "Диск успешно проверен".

Результат проверки диска Windows

Висит задача create virtual machine snapshot

Еще в своей практике встречал ситуации, что из-за незаконченного задания у меня не выполнялось резервное копирование, задание висело со статусом "create virtual machine snapshot"

create virtual machine snapshot

зависла виртуальная машина

Описание проблемы

The virtual machine might be performing concurrent operations. Actions: Complete the concurrent operation and retry the power-off operation. The virtual machine is in an invalid state. Virtual machines can enter an invalid state for many reasons.

The virtual machine might be performing concurrent operations

При попытке мигрировать виртуальную машину вы может получить ошибку:

Failed to migrate the virtual machine for reasons described it the event message

Так же вы можете увидеть ошибку при попытке, выключить или перезапустить виртуалку:

Another task is already in progress

Во всех случаях вам скажут, что данная виртуальная машина имеет некий процесс, который в данный момент не дает выполнить ваши повторные действия. Так же данная виртуалка у меня была членом RDS фермы, при попытке перевода его в режим стока (Drain-Mode) я получил ошибку "Не удалось изменить состояние подключения для сервера".

Как перезапустить зависшую виртуальную машину

Сразу хочу отметить, что если в графическом интерфейсе у вас не выходит, что либо сделать, то у вас остается только командная строка ssh. Включаем на ESXI хосте SSH службу. Далее подключаемся через Putty или MremoteNG. Я подключаюсь через MremoteNG. Первое, что вам необходимо сделать, это как посмотреть список активных процессов, все как в Windows. Для этого есть команда:

В моем примере, я вижу свою виртуальную машину TERM6. Если системные процессы мозолят вам глаза, то вы можете одновременно нажать SHIFT+V, что оставит отображение только виртуальных машин.

Перезапуск зависшей виртуальной машины ESXI

Теперь нам нужно вычислить LWID - Leader World Id, завершив который вы завершите работу нужной виртуалки. ПО умолчанию LWID не отображается, чтобы его включить нажмите клавишу F. У вас откроется меню, где можно добавлять или скрывать поля. Видим, что если нажать клавишу "C", то у вас будет добавлен LWID- Leader World Id. Нажимаем "C" и "Enter".

LWID - Leader World Id

Теперь зная LWID, нажмите клавишу "K", она вызовет меню "World to kill (WID)", данная операция поможет принудительно завершить процесс LWID. Вбиваем наш LWID и нажимаем "Enter".

World to kill (WID)

Тут у вас два варианта, чудо произошло (80% вероятности) и чудо не произошло, часто бывает в случаях с ошибкой "Another task is already in progress"

esxi cli World to kill (WID)

Кстати World ID можно вычисли и просто введя команду:

esxcli vm process list

Там вы сможете увидеть World ID, после чего его можно убить командой:

В моем случае чудо произошло, виртуалка перешла в состояние Power OFF, я это вижу в Power-CLI.

запуск зависшей виртуальной машины

Если принудительное завершение процесса вам не помогло, то делаем вот что, по возможности мигрируйте все остальные виртуальные машины с данного хоста, у вас из-за ошибки останется только сбойная. Все в том же SSH. введите:

Cannot power off

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

После чего пишем kill PID-родительского процесса. Если не помогло, то пробуем выполнить вот, что (по возможности перевезите другие сервера с данного хоста на другие хосты)

В результате действий хост стал работать нормально, единственное может быть ситуация, что виртуалку придется удалить из inventory и добавить заново. Если и это не помогло, то попробуйте выполнить:

Диагностика зависшей виртуальной машины

Первым делом, чтобы восстановить сервис, вам необходимо принудительно перезагрузить виртуальную машины, для этого щелкните по ней правым кликом мыши и выберите пункт "Power - Reset".

Принудительная перезагрузка виртуальной машины esxi

После того, как операционная система в ней загрузится, я вам советую начать изучение логов Windows. Открываем просмотр событий и делаем поиск ошибок и предупреждений. Мне удалось найти два события, которые косвенно говорили, что проблема с зависанием виртуальной машины связана непосредственно с операционной системой и возможными проблемами с поврежденными системными файлами или драйверами Vmware Tools. Первое событие:

Event id 11

Event id 129

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

Данное событие связано с сетевым интерфейсом типа E1000, советую его поменять на паравиртуализованный VMXNET3. E1000 кушает больше ресурсов процессорных мощностей и так же более капризный, но за то не требует установки Vmware Tools.

Код события ID 27

Так же вы можете посмотреть логи самой виртуальной машины на уровне Vmware ESXI 6.5. Я нашел там вот такую выборку:

2019-05-14T11:06:41.739Z| vmx| I125: GuestMsg: Channel 0, Cannot unpost because the previous post is already completed
2019-05-14T11:08:48.012Z| svga| I125: MKSScreenShotMgr: Taking a screenshot
2019-05-14T11:08:53.849Z| mks| I125: SOCKET 1396535 (189) Creating VNC remote connection.
2019-05-14T11:08:53.849Z| mks| I125: MKSControlMgr: New VNC connection 1
2019-05-14T11:08:53.912Z| mks| W115: VNCENCODE 1396535 failed to allocate VNCBlitDetect
2019-05-14T11:08:53.912Z| mks| I125: VNCENCODE 1396535 VNCEncodeChooseRegionEncoder: region encoder adaptive. Resolution: 1024 x 768
2019-05-14T11:08:54.289Z| vmx| I125: Tools_SetGuestResolution: Sending rpcMsg = Resolution_Set 1920 863
2019-05-14T11:08:54.630Z| vcpu-7| I125: VMMouse: CMD Read ID
2019-05-14T11:09:54.289Z| vmx| I125: GuestRpcSendTimedOut: message to toolbox timed out.
2019-05-14T11:10:07.476Z| svga| I125: MKSScreenShotMgr: Taking a screenshot
2019-05-14T11:10:19.546Z| mks| I125: SOCKET 1396535 (189) recv error 0: Success
2019-05-14T11:10:19.546Z| mks| I125: SOCKET 1396535 (189) VNC Remote Disconnect.
2019-05-14T11:10:19.546Z| mks| I125: MKSControlMgr: Remove VNC connection 1
2019-05-14T11:10:31.357Z| vmx| I125: VigorTransportProcessClientPayload: opID=HardPowerOpsResolver-applyOnMultiEntity-5384149-ngc:70276545-fb-c5-9d61 seq=2571570: Receiving Sched.SetResourceGroup request.
2019-05-14T11:10:31.357Z| vmx| I125: VigorTransport_ServerSendResponse opID=HardPowerOpsResolver-applyOnMultiEntity-5384149-ngc:70276545-fb-c5-9d61 seq=2571570: Completed Sched request.
2019-05-14T11:10:31.358Z| vmx| I125: VigorTransportProcessClientPayload: opID=HardPowerOpsResolver-applyOnMultiEntity-5384149-ngc:70276545-fb-c5-9d61 seq=2571571: Receiving PowerState.InitiateReset request.
2019-05-14T11:10:31.358Z| vmx| I125: Vix: [8790361 vmxCommands.c:686]: VMAutomation_Reset. Trying hard reset
2019-05-14T11:10:31.358Z| vmx| W115:
2019-05-14T11:10:31.358Z| vmx| W115+
2019-05-14T11:10:31.358Z| vmx| W115+ VMXRequestReset
2019-05-14T11:10:31.358Z| vmx| I125: Vigor_Reset: Attaching to reset.
2019-05-14T11:10:31.358Z| vmx| I125: Stopping VCPU threads.
2019-05-14T11:10:31.360Z| vcpu-0| I125: VMMon_WaitForExit: vcpu-0: worldID=9507337
2019-05-14T11:10:31.360Z| vcpu-7| I125: VMMon_WaitForExit: vcpu-7: worldID=9507347
2019-05-14T11:10:31.360Z| vcpu-3| I125: VMMon_WaitForExit: vcpu-3: worldID=9507343
2019-05-14T11:10:31.360Z| vcpu-1| I125: VMMon_WaitForExit: vcpu-1: worldID=9507341
2019-05-14T11:10:31.360Z| vcpu-5| I125: VMMon_WaitForExit: vcpu-5: worldID=9507345
2019-05-14T11:10:31.360Z| vcpu-10| I125: VMMon_WaitForExit: vcpu-10: worldID=9507350
2019-05-14T11:10:31.360Z| vcpu-9| I125: VMMon_WaitForExit: vcpu-9: worldID=9507349
2019-05-14T11:10:31.360Z| vcpu-8| I125: VMMon_WaitForExit: vcpu-8: worldID=9507348
2019-05-14T11:10:31.360Z| vcpu-6| I125: VMMon_WaitForExit: vcpu-6: worldID=9507346
2019-05-14T11:10:31.360Z| vcpu-4| I125: VMMon_WaitForExit: vcpu-4: worldID=9507344
2019-05-14T11:10:31.360Z| vcpu-2| I125: VMMon_WaitForExit: vcpu-2: worldID=9507342
2019-05-14T11:10:31.360Z| vcpu-11| I125: VMMon_WaitForExit: vcpu-11: worldID=9507351
2019-05-14T11:10:31.360Z| svga| I125: SVGA thread is exiting
2019-05-14T11:10:31.360Z| vmx| I125: MKS thread is stopped
2019-05-14T11:10:31.361Z| vmx| I125:
2019-05-14T11:10:31.361Z| vmx| I125+ OvhdMem: Final (Power Off) Overheads

Описание проблемной виртуальной машины

Как я и писал выше, виртуальная машина намертво зависла, по RDP или ping она была не доступна. Гостевой операционной системой была Windows Server 2012 R2. Попытавшись запустить Web Console из интерфейса vCenter Server, виртуальная машина ни на что не реагировала.

зависшая виртуальная машина esxi 6.5

Vmware Tools is outdated on this virtual machine

Читайте также: