LINUX.ORG.RU
ФорумAdmin

KVM в Debian - не работает system_powerdown


0

1

Посылаю сообщение system_powerdown, ответ получаю, но система не выключается. Просто ноль реакции. Пробовал гости как win так и linux.

Делаю так:

qemu [...] -qmp tcp:localhost:4444,server

echo «{ \„execute\“: \„system_powerdown\“ }» | nc localhost 4444

Версия qemu-kvm 0.12.4

Какие вы знаете кошерные способы запуска и останова виртуальных машин при запуске и останове сервера? Сейчас просто использую /usr/bin/kvm и подумываю о virsh + libvirt, только с конфигами заморочка ждет нереальная.

Поддержка acpi у гостя включена? (Слышал про такой баг, но есть подозрение, что это все кривые юзерские ручки.)

Какие вы знаете кошерные способы запуска и останова виртуальных машин при запуске и останове сервера?


Под qemu/kvm прямых путей нет. Можешь переделать xendomains или поискать в инете.

подумываю о virsh + libvirt, только с конфигами заморочка ждет нереальная


Где заморочка? Не смешите мои тапочки, с xml'ем простые смертные работать не обязаны, все управление производится через фронтенды.

nnz ★★★★
()
Ответ на: комментарий от nnz

ACPI включен

Под заморочками я имел в виду отсутствие хороших примеров коняигурации, но нашел что можно сгенерить конфиг из параметров /usr/bin/kvm. Не уверен что virsh заработает, так как system_powerdown не отрабатывает, а virsh все же будет юзать Monitor Protocol если я не ошибаюсь.

С Xen я простился, слишком замучено, а kvm уже в ядре и походу надолго.

JackDaniel
() автор топика
Ответ на: комментарий от JackDaniel

>Под заморочками я имел в виду отсутствие хороших примеров коняигурации,

На сайте libvirt.org их навалом.

Не уверен что virsh заработает, так как system_powerdown не отрабатывает


Зато я надеюсь, что он гарантированно правильно включит acpi и не ошибется с ключами командной строки :)
(Правда, для этого таки придется в xml покопаться.)

virsh все же будет юзать Monitor Protocol если я не ошибаюсь


Если быть точным, консоль qemu будет использовать libvirtd, причем единолично. А virsh — всего лишь клиент.

nnz ★★★★
()
Ответ на: комментарий от nnz

> Зато я надеюсь, что он гарантированно правильно включит acpi

Что тут надеятся, у kvm есть только один ключь -no-acpi который не нужно ставить. Если сделать halt в linux guest или выключить комп в винде, то процесс с kvm прибивается. В случае же установки оси с ключем -no-acpi такого не будет (в винде будет «теперь питание можно отключить»). Тоесть работает все как надо, просто если послать сообщение system_powerdown машине в kvm, оно не произведет никакого эффекта.

JackDaniel
() автор топика

Все работает

[host] $ virsh start lenny32
[host] $ virsh shutdown lenny32 

[host] $ ssh root@lenny32

[guest]lenny32:~#
Broadcast message from root@lenny32 (Sun Jul 18 15:06:55 2010):

Power button pressed
The system is going down for system halt NOW!
Connection to lenny32 closed by remote host.
Connection to lenny32 closed.
sdio ★★★★★
()
Ответ на: комментарий от JackDaniel

Там у тебя не винда случайно? Говорят, она по-разному ставится на хосты с acpi и без, и если acpi было выключено при инсталляции, то потом его уже не включить.

nnz ★★★★
()

у мну из консоли kvm всё работало

true_admin ★★★★★
()
Ответ на: комментарий от sdio

Ок завтра попробую юзать virsh.

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

JackDaniel
() автор топика
Ответ на: комментарий от JackDaniel

Возьми скрипт xendomains и поправь под свои нужды. Там все эти задачи уже давно решены, и решения эти хорошо обкатаны.

nnz ★★★★
()
Ответ на: комментарий от JackDaniel

JackDaniel> Ок завтра попробую юзать virsh

В дебиане есть скрипт /usr/share/doc/libvirt-bin/examples/libvirt-suspendonreboot его закинуть в /etc/init.d и создать линки (update-rc.d) и про выкл. хоста он будет делать suspend2disk (hibernate), а при включении гостя виртуальные системы продолжат работу с прерванного места.

sdio ★★★★★
()
Ответ на: комментарий от sdio

Сгенерил конфиг, стартую virsh create srv.xml

operation failed: failed to retrieve chardev info in qemu with 'info chardev'

В гугле инфы вообще нет, имеется в виду нет решения. Не встречал такое?


<domain type='kvm'>
<name>srv</name>
<uuid>bb8ee5df-0570-adfa-bbf0-21c9b29bc38f</uuid>
<memory>524288</memory>
<currentMemory>524288</currentMemory>
<vcpu>1</vcpu>
<os>
<type arch='i686'>hvm</type>
</os>
<features>
<acpi/>
<pae/>
</features>
<clock offset='localtime'/>
<on_poweroff>destroy</on_poweroff>
<on_reboot>restart</on_reboot>
<on_crash>destroy</on_crash>
<devices>
<emulator>/usr/bin/kvm</emulator>
<disk type='file' device='disk'>
<source file='/virtual/srv-vm.qemu'/>
<target dev='vda' bus='virtio'/>
</disk>
<interface type='ethernet'>
<mac address='de:ad:be:ef:32:17'/>
<target dev='tap2'/>
<model type='virtio'/>
</interface>
<input type='mouse' bus='ps2'/>
<graphics type='vnc' port='5903' autoport='no' listen='x.x.x.x'/>
<video>
<model type='cirrus' vram='9216' heads='1'/>
</video>
</devices>
</domain>

JackDaniel
() автор топика
Ответ на: комментарий от JackDaniel

И сразу следом:

monitor socket did not show up.: Connection refused

Потом повторяется предыдущее.

JackDaniel
() автор топика
Ответ на: комментарий от JackDaniel

Убрал настройки сети, машина запустилась, но надо с сетью. Не понятно что не так. На момент запуска tap2 у меня уже настроен.

virsh shutdown не работает, реакции на него нет - машина по прежнему запущена. Только destroy. Видимо из-за бага который я выше описывал.

JackDaniel
() автор топика
Ответ на: комментарий от JackDaniel

Все рулит, надо было поставить в debian acpi-support-base

JackDaniel
() автор топика
Ответ на: комментарий от sdio

> а при включении хоста виртуальные системы продолжат работу с прерванного места

У меня в debian guest сеть не работает после суспенда :( не было такого?

JackDaniel
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.