Как использовать «virsh shutdown» в доменах KVM для отключения гостей Ubuntu?

13

Я использую различные домены KVM на сервере Ubuntu. И хост, и гости работают с ядром 10.04.1, 2.6.32-24, virsh сообщает о версии 0.7.5, KVM 0.12.3. Гости загружаются автоматически, когда хост загружается, и они имеют <features><acpi/><features>в своей конфигурации.

Мне никогда не удавалось сделать virsh shutdown MyDomainна хосте никакого эффекта. Он отвечает, Domain MyDomain is being shutdownи домен продолжает успешно работать. virsh listдо сих пор перечисляет их в штате running.

virsh destroy MyDomain работает нормально, но, конечно, это не совсем то, что я хочу, поэтому большую часть времени я вхожу в каждый из них и выключаю их вручную, что довольно раздражает.

Я не мог найти какую-либо информацию о том, как virsh shutdownпытается закрыть домен. Указатели на полезные фрагменты документации приветствуются.

Что может вызвать это? Как это должно работать?

hheimbuerger
источник

Ответы:

11

Проверьте, установлен ли пакет acpid на каждом из гостей.

Обычно я создаю новые виртуальные машины, используя VMBuilder с этим параметром, --addpkg acpidи единственный раз, когда у меня возникали проблемы с закрытием гостевых систем Ubuntu, virshбыл случай, когда гостевой vm каким-то образом зависал .

moberley
источник
Отлично, вот и все! Я добавил это и в свой скрипт VMBuilder. Я пропустил важную часть документации здесь, или вы просто волшебным образом предполагали, что знаете это? Оглядываясь назад, это имеет смысл для меня, я думаю, virsh shutdownэто просто эквивалент нажатия кнопки питания на физическом блоке. Но об этом я нигде не упоминал, или я мог бы связать точки и исследовать больше в этом направлении ... В любом случае, большое спасибо! (Буду признателен, когда я получу необходимый представитель.)
hheimbuerger
Я знаю, что это упомянуто в разделе «Руководство по серверу» на vmbuilder очень близко к концу статьи. Я не знаю, упоминается ли это в другом месте. help.ubuntu.com/10.04/serverguide/C/jeos-and-vmbuilder.html
moberley
Я, должно быть, не прочитал это до конца. blush Или, может быть, я просто притворюсь, что его там не было, когда я изначально установил большинство этих виртуальных машин (8.04 или около того). : P
hheimbuerger
1
Примечание для Debian: если вы отключили установку Рекомендованных пакетов, то acpidодного мало, потому что он содержит только двоичные файлы. Вам нужно установить acpi-support-baseпакет для обработки событий ACPI кнопки питания. Для Ubuntu, acpidсодержит как двоичные файлы, так и базовые обработчики событий и достаточно.
cbliard
0

Если у вас нет этой опции, есть «режимы выключения», которые вы можете использовать для запуска выключения

$ sudo virsh shutdown --help
OPTIONS
[--domain] <string>  domain name, id or uuid
--mode <string>  shutdown mode: acpi|agent|initctl|signal|paravirt

т.е.

sudo virsh shutdown domain1 --mode acpi
Октавиан
источник