Я использую PowerCLI для «PowerOff» виртуальных машин, когда обнаружено определенное событие. Когда это вообще происходит, единственное, что мы можем сделать, - это выключить виртуальную машину и снова включить ее.
я использую Stop-VM -VM xxxx -Kill -Confirm:$false
чтобы выключить виртуальную машину, но я заметил, что HA перезапустит виртуальную машину после выключения виртуальной машины.
Но если я вручную сделаю «Отключение питания» в графическом интерфейсе пользователя vSphere на этой виртуальной машине при включении высокой доступности, она останется «выключенной».
Есть идеи, почему HA запускает виртуальную машину, которая "отключается" от PowerCLI? или Stop-VM
это не команда "выключить питание"?
Вы тестировали это без -Kill
? Из Stop-VM
ссылка на командлет:
Указывает, что вы хотите остановить указанные виртуальные машины, завершив их процессы, запущенные на ESX. Вы можете использовать этот параметр, чтобы остановить виртуальную машину, которая не отвечает и не может быть остановлена или перезапущена другими способами. Чтобы использовать параметр Kill, вам необходимо иметь прямое подключение к ESX 4.1 или новее.
Завершение процесса непосредственно на хосте наверняка звучит как событие, которое должно вызвать HA. Думаю, я бы применил к этому многоуровневый подход:
# Some condition happens, ask nicely.
Shutdown-VMGuest -VM xxxx -Confirm:$false
...
# Ask less nicely.
Stop-VM -VM xxxx -Confirm:$false
...
# A last ditch effort.
Get-VM xxxx | Set-Vm -HARestartPriority Disabled -Confirm:$false
Stop-VM -VM xxxx -Kill -Confirm:$false