воскресенье, 4 октября 2009 г.

Sending signal ‘9? to world...


Как "прибить" виртуалку если ничего не помогает?
Способ действенный (для ESX 3.5) и поможет если виртуалка надежно зависла.
Случай редкий, но случается :)
И случился он на днях с моей виртуалкой на которой был vCenter !
Первое, что необходимо сделать - это убедиться, что стандартные методы не помогут.
Для этого в консоле ESX необходимо выполнить:
vmware-cmd /vmfs/volumes/<Название хранилища>/<Имя виртуалки>/<Имя виртуалки>.vmx stop hard
(В моем случае было бесполезно)
Следующий шаг:
sudo vm-support -x
Команда выведет список запущенных виртуальных машин с указанием id:

VMware ESX Server Support Script 1.29
Available worlds to debug:
vmid=1126 vm-01
vmid=1151 vm-02
vmid=1272 vm-03

... итд

(или выполнить комманду: cat /proc/vmware/vm/*/names | grep myvm1)

Необходимо запомнить vmid зависшей виртуалки и указать его при выполнении следующей команды:
less -S /proc/vmware/vm/"vmid виртуалки"/cpu/status
В окно консоли выведется табличка со сведениями о статусе виртуалки. Далее необходимо нажать клавишу «ВПРАВО» (если табличка растянута и не влезла на один экран) и в правом верхнем углу будет столбец “group”:

group
vm.1432


Необходимо запомнить номер группы и подставить в следующей команде:
sudo /usr/lib/vmware/bin/vmkload_app -k 9 1432
При успешном выполнении команды выведется следующее:

Warning: Sending signal ‘9? to world 1432

Собственно всё!