Vmware отключить спящий режим

Обновлено: 07.07.2024

Продолжаем… (кто пропустил шаг назад)
Интересно, а как вы управляетесь с виртуальными машинами?!
Каждый раз, когда Вы делаете snapshot, ставите на паузу или выключаете машину(ы) Вы тратите на это время?!

Тогда мы идем к Вам! :)


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

Начнем с самого болезненого, с выключения. Почему с него, да потому что обычно на него никогда не хватает время, вечно куда-то опаздываешь. Ну или, например, оставляешь коллеге, а он по забывчивости не выключает ее.
Не знаю как у остальных, но на моей практике доказано: если выставить машину в режим самовыключения (режим On host shutdown — Shut down guest operating system), то вероятность некорректного выключения очень высока. Vmware просто не успевает корректно все остановить.
Если у кого-то есть желание, можно испытать: берем сервер, запускаем несколько машин c ОС FreeBSD, запускаем на них нагрузочные тесты, выключаем ОС под которой крутится VM. Получаем при новом старте запуск fsck на FreeBSD.
Итого: в таких ситуациях рекомендую VMware ставить на паузу. При снятии с паузы вам остается только синхронизировать время.

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

Переходим к самому интересному.
Реализация скрипта для автоматического перехода в режим паузы, всех работающих машин.

Перед Вами представлен модифицированный пример-скрипт из поставки дистрибутива VMware (на чем он написан тут все сказано):

check_vm.vbs — основной скрипт

'
' VmCOM VBScript Sample Script (sample2)
' Copyright 1998 VMware, Inc. All rights reserved. -- VMware Confidential
'
' Permission is hereby granted, free of charge, to any person obtaining a
' copy of the software in this file (the "Software"), to deal in the
' Software without restriction, including without limitation the rights to
' use, copy, modify, merge, publish, distribute, sublicense, and/or sell
' copies of the Software, and to permit persons to whom the Software is
' furnished to do so, subject to the following conditions:
'
' The above copyright notice and this permission notice shall be included in
' all copies or substantial portions of the Software.
'
' The names "VMware" and "VMware, Inc." must not be used to endorse or
' promote products derived from the Software without the prior written
' permission of VMware, Inc.
'
' Products derived from the Software may not be called "VMware", nor may
' "VMware" appear in their name, without the prior written permission of
' VMware, Inc.
'
' THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
' IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
' FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
' VMWARE,INC. BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
' IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
' CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
'
' ------
'
' This program is for educational purposes only.
' It is not to be used in production environments.
'
' Description:
'
' This script displays the virtual machines on the local server.
' It prints the configuration file path and current execution
' state of each VM. If a VM is in the stuck state, the current
' question and its choices are also printed.
' Additionally, if a VM is stuck on an undoable disk related
' question, the script automatically answers 'Keep' on a power-off
' and 'Append' on a power-on.
'
' NOTE: the question-answering logic used is language and product
' dependent, and is only provided for illustration purposes only!
'
' Instructions for Windows 2000 and later operating systems:
'
' - save the contents of this file to a file named 'sample2.vbs'
' unless it's already named that way
'
' - there should be an accompanying file named 'sample2.wsf'
' It is placed in the same directory as this file during
' product installation. This file is responsible for setting
' up the Windows Script Host environment and loading the
' VmCOM type library, thereby enabling this script to
' reference symbolic constants such as vmExecutionState_On
'
' - in a command line window, type:
' cscript //nologo sample2.wsf
'

Set cp = CreateObject( "VmCOM.VmConnectParams" )
Set server = CreateObject( "VmCOM.VmServerCtl" )

server.Connect cp
Set vmCollection = server.RegisteredVmNames

' If this looks like an undoable disk save question,
' automatically answer 'Append' or 'Keep'
'
' NOTE: this code makes alot of assumptions about the product
' and the language used, and may break under some environments.
' It is shown for illustration purposes only!

Set r = new RegExp
r.pattern = "undoable disk"
r.ignorecase = True
Set matches = r.Execute(q.text)

if matches.count > 0 then
for i = 1 to choices.count
if choices(i) = "Append" or choices(i) = "Keep" then
WScript.Echo(s)
s = " --> Automatically selecting '" & q.choices(i) & "' as answer"
vm.AnswerQuestion q,i
exit for
end if
next
end if
end if
end if
WScript.Echo(s)
Recheck(vm) 'добавляем вызов функции
next

Далее запускаемый скрипт check_vm.wsf, от которого передается управление к основному check_vm.vbs:

* This source code was highlighted with Source Code Highlighter .

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

cscript check_vm.wsf >> log.txt
shutdown -s -f -t 100

В bat происходит вызов скрипта, с перенаправлением в лог.
Ну shutdown, это как тюнинг на выключение. Можно попробовать поиграть в параметрами.

path=E:\vmware\Ubuntu\Ubuntu.vmx state=ON os=ubuntu
Recheck this VM_machine state=SUSPENDED
path=E:\vmware\Ubuntu_Kde_4\Ubuntu.vmx state=OFF os=ubuntu
path=E:\development\FreeBSD\FreeBSD.vmx state=ON os=freebsd
Recheck this VM_machine state=SUSPENDED

Вот и вроде все. :)
Уфффф… Управились.
Спите спокойно, а самое главное берегите нервы.
До следующей статьи…

date

09.10.2019

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 ;
  • Another task is already in progress ;
  • 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 .

В таких случаях вы можете вручную остановить процесс виртуальной машины на хосте 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, скрин будет выглядеть так.

date

11.11.2021

directory

VMWare, Windows 11, Виртуализация

comments

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

Microsoft опубликовала набор минимальных системных требований для установки Windows 11:

  • 4 Гб RAM;
  • Двухъядерный процессор 1 ГГц;
  • Чип TPM 2.0 (Trusted Platform Module).

Если ваш компьютер или виртуальная машина не соответствуют этим системным требованиям, то при установке Windows 11 с чистого ISO образа, появится ошибка:

  • Запуск Windows 11 на этом компьютере не возможен. Этот компьютер не соответствует минимальным требованиям к системе для установки этой версии Windows. Дополнительные сведения см. на сайте aka.ms/WindowsSysReq
  • This PC can’t run Windows 11. This PC doesn’t meet the minimum system requirements to install this version of Windows. For more information, visit aka.ms/WindowsSysReq

Запуск Windows 11 на этом компьютере не возможен. Этот компьютер не соответствует минимальным требованиям к системе для установки этой версии Windows

Установка Windows 11 в виртуальную машину без TPM и Secure Boot

Вы можете пропустить проверку системных требований при установке Windows 11 на виртуальную машину. Можно пропустить проверку минимальных требований по памяти, совместимого CPU, наличию TPM чипа и UEFI + Secure Boot.

  1. Для этого нужно запустить обычную установку Windows 11 на виртуальную машину и после появления ошибки установки (скриншот выше), вернуться на один шаг назад (стрелка в окне Windows Setup);
  2. Нажмите сочетание клавиш Shift + F10 чтобы открыть командную строку;
  3. Наберите команду regedit.exe чтобы запустить редактор реестра;
  4. Перейдите в раздел HKEY_LOCAL_MACHINE\SYSTEM\Setup и создайте новую ветку с именем LabConfig;
  5. Создайте в этой ветке три параметра типа DWORD (32-bit) со значениями 1:
    • BypassTPMCheck
    • BypassSecureBootCheck
    • BypassRAMCheck

Установка Windows 11 на VMware Workstation

Для установки Windows 11 в нативном режиме (с учетом всех системных требования) на VMware Workstation, вы должны создать виртуальную машину с поддержкой UEFI, Secure Boot и виртуальным чипом TPM.

Откройте настройки виртуальной машины, перейдите на вкладку Advanced и убедитесь, что для ВМ используется UEFI firmware с включенной опций Enable secure boot.

включить uefi и secure boot для виртуальной машины vmware workstation

Затем вам нужно добавить виртуальный TPM модуль для ВМ (vTPM). Но перед этим придется зашифровать виртуальную машину VMware Workstation.

В разделе Options перейдите в Access Control и нажмите кнопку Encrypt. Задайте пароль шифрования. Процесс шифрования займет некоторое время.

шивровать виртуальную машину на vmware workstation

После этого перейдите на вкладку Hardware, нажмите кнопку Add и добавьте Trusted Platform Module.

добавьте Trusted Platform Module для ВМ VMWare workstation

Теперь вы можете установить Windows 11 на эту виртуальную машину в обычном режиме.

Как установить Windows 11 на VMware ESXi?

Для установки Windows 11 на виртуальную машину VMware ESXi на vSphere, вам нужно добавить для ВМ виртуальный TPM модуль (Virtual Trusted Platform Module). Но сначала придется настроить Key Management Server (key provider) для управления ключами шифрования.

Начиная с версии vSphere 7.0 для vCenter поддерживается встроенный Key Provider, благодаря чему вам не нужно использовать внешний KMS. Чтобы включить встроенный Key Provider в vCenter:

Чтобы включить vTPM для виртуальной машину на VMware ESXi, она должна соответствовать следующим требованиям:

  • vSphere 6.7 или новее (не получится использовать бесплатный гипервизор VMware Hypervisor)
  • Версия виртуальной машины VM Hardware 14 (ESXi 6.7) и выше
  • EFI и Secure Boot
  • Шифрование ВМ
  • Включена опция Windows Virtualization Based Security в настройках ВМ

Проверьте, что все опции ВМ настроены и можете зашифровать диск вашей ВМ.

Чтобы зашифровать существующую ВМ, перейдите на вкладку VM Options и включите шифрование диска в разделе Encryption.

зашифровать виртуальную машину на vmware esxi

После этого на вкладке Virtual Hardware можно добавить Add New Device -> Trusted Platform Module и запустить обычную установку Windows 11 на эту ВМ.


Auto-suggest helps you quickly narrow down your search results by suggesting possible matches as you type. ADobrynin
  • Mark as New
  • Bookmark
  • Subscribe
  • Mute
  • Email to a Friend

Добрый день. Существует 100% виртуальная инфраструктура, постоенная на vCenter 5.1. Есть порядка 16 ВМ в продакшене, включая контроллеры домена. Вопрос заключается в том как правильно погасить всю инфраструктуру и соответственно после проведения профилактических работ всё запустить? Подскажите каков порядок.

VMadmin4eg
  • Mark as New
  • Bookmark
  • Subscribe
  • Mute
  • Email to a Friend

Выключается приблизительно так:

служебные серверы (резервного копирования, мониторинга и т.п.)

апликейшен серверы (1с, терминальные, VDI и т.п.)

серверы баз данных

серверы печати и файловые серверы

виртуальные хосты - ESXi (при этом выключается сам vCenter)

сетевое оборудование (ethernet, FC и т.п.)

Sladky
  • Mark as New
  • Bookmark
  • Subscribe
  • Mute
  • Email to a Friend

В целом подпишусь

ADobrynin
  • Mark as New
  • Bookmark
  • Subscribe
  • Mute
  • Email to a Friend

А не будет ли каких-либо проблем с авторизацией при настроенной SSO? Ведь контроллеры выключаются раньше, чем vCenter? Опять же выключениие (включение) vCenter надо настроить на како-либо хосте в автоматическом режиме, правильно? Может и контроллеры настроить на автоматическое отключение (включениие)?

Sladky
  • Mark as New
  • Bookmark
  • Subscribe
  • Mute
  • Email to a Friend

Кстати, тут вопрос тот еще

Я бы контроллеры домена выключал самыми последними.

1. Может отвалиться авторизация. Она кэшируется и проблем быть не должно, но всё же.

2. На 100% отвалтся DNS , а по имени vCenter знает хосты. Которые точно отвалятся (этого не будет, если они зацеплены по IP, либо если записи прописаны в файлик hosts на вЦентре).

Как бы сделал я:

2. мигрировать машинки таким образом, чтобы на одном хосте оказался как минимум один контроллер домена (со службой DNS), вЦентр

3. настроить правильное выключение и включение вЦентра и контроллера домена. Сначала выключаем вЦентр, потом контроллер домена. Включаем сначала контроллер домена, потом вЦентр (учитываем. что контроллер долго стартует).

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