Как Ubuntu дифференцируется между “virsh завершение работы” и “virsh перезагрузка”

У меня есть Ubuntu 14.04.1 (ubuntu-14.04.1-server-amd64.iso) гость, работающий в хосте KVM. Хост запускает Ubuntu 16.04. Я пытаюсь узнать, как Ubuntu 14.04.1 дифференцируется между virsh shutdown и virsh reboot команды даются в хосте. Я вижу это в обоих случаях вызовы гостя halt -d -f -i -p -h от /etc/rc0.d/S90halt. Я не вижу изменения в runlevel 6 когда virsh reboot используется (подтвержденное эхо использования в файл в /etc/rc0.d/S90halt и /etc/rc6.d/S90reboot).

Я также нашел, что в Ubuntu 14.04.1 systemd-logind обрабатывает acpi событие и в свою очередь делает вызов dbus для получения systemd-shim выполнение, которое называет завершение работы для изменения runlevel на '0' через выскочку. Любая справка в понимании этого лучше это очень ценило.

Гостевые детали:

srinij@ubuntu:/$ lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description:    Ubuntu 14.04.1 LTS
Release:        14.04
Codename:       trusty

Детали хоста:

srinij@ubuntu-server-16x:~/Downloads$ lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description:    Ubuntu 16.04 LTS
Release:        16.04
Codename:       xenial
srinij@ubuntu-server-16x:~/Downloads$ virsh version
Compiled against library: libvirt 1.3.1
Using library: libvirt 1.3.1
Using API: QEMU 1.3.1
Running hypervisor: QEMU 2.5.0
1
задан 28 September 2016 в 00:23

2 ответа

libvirt сначала запрашивает гостя завершить работу в обоих случаях (Перезагрузка/Завершение работы) с помощью события кнопки питания ACPI. Затем в случае Перезагрузки, libvirt самой перезапускает VM. Благодаря Paolo Bonzini от qemu-devel для указания на это

0
ответ дан 8 December 2019 в 08:45

Я не на 100% уверен, но гипервизор может заказать гостю ОС, чтобы закрыть или перезагрузить путем эмуляции аппаратного события ACPI, т.е. касания кнопки питания.

нет никакого дифференцируемого сигнала для завершения работы или перезагрузки насколько я знаю, просто кнопка нормального питания.

, Который означает virsh shutdown и virsh reboot, должен и эмулировать касание кнопки питания, которое регистрируется гостем демон ОС ACPI и приводит к завершению работы (на сервере Ubuntu по умолчанию) или интерактивная подсказка (на рабочем столе Ubuntu по умолчанию) или однако гость, ОС настроена для обработки этого события.

единственная разница, я думаю, который, после того как закрыл VM, если команда была virsh shutdown, это остается неизменным, но если это было virsh reboot, это включается снова сразу. Это равнялось бы "холодной" начальной загрузке хотя, не горячая перезагрузка.

Однако рассмотрение man virsh руководство, на которое это походит, существует более различные варианты для отправки команды перезагрузки кроме просто события ACPI. Однако я ничего не могу сказать Вам о тех, к сожалению.

   reboot domain [--mode MODE-LIST]
       Reboot a domain.  This acts just as if the domain had the reboot
       command run from the console.  The command returns as soon as it
       has executed the reboot action, which may be significantly before
       the domain actually reboots.

       The exact behavior of a domain when it reboots is set by the
       on_reboot parameter in the domain's XML definition.

       By default the hypervisor will try to pick a suitable shutdown
       method. To specify an alternative method, the --mode parameter can
       specify a comma separated list which includes "acpi", "agent",
       "initctl", "signal" and "paravirt". The order in which drivers will
       try each mode is undefined, and not related to the order specified
       to virsh.  For strict control over ordering, use a single mode at a
       time and repeat the command.
0
ответ дан 8 December 2019 в 08:45

Другие вопросы по тегам:

Похожие вопросы: