qemu-server/debian
Stefan Reiter 3ff8500175 qmeventd: add handling for -no-shutdown QEMU instances
We take care of killing QEMU processes when a guest shuts down manually.
QEMU will not exit itself, if started with -no-shutdown, but it will
still emit a "SHUTDOWN" event, which we await and then send SIGTERM.

This additionally allows us to handle backups in such situations. A
vzdump instance will connect to our socket and identify itself as such
in the handshake, sending along a VMID which will be marked as backing
up until the file handle is closed.

When a SHUTDOWN event is received while the VM is backing up, we do not
kill the VM. And when the vzdump handle is closed, we check if the
guest has started up since, and only if it's determined to still be
turned off, we then finally kill QEMU.

We cannot wait for QEMU directly to finish the backup (i.e. with
query-backup), as that would kill the VM too fast for vzdump to send the
last 'query-backup' to mark the backup as successful and done.

For handling 'query-status' messages sent to QEMU, a state-machine-esque
protocol is implemented into the Client struct (ClientState). This is
necessary, since QMP works asynchronously, and results arrive on the
same channel as events and even the handshake.

For referencing QEMU Clients from vzdump messages, they are kept in a
hash table. This requires linking against glib.

Signed-off-by: Stefan Reiter <s.reiter@proxmox.com>
2020-11-05 11:22:47 +01:00
..
changelog bump version to 6.2-18 2020-10-29 18:23:23 +01:00
compat bump debian compat level to 11 2019-05-22 18:47:53 +02:00
control qmeventd: add handling for -no-shutdown QEMU instances 2020-11-05 11:22:47 +01:00
copyright d/copyright: update 2020-09-08 19:01:54 +02:00
docs change from dpkg-deb to dpkg-buildpackage 2017-06-12 09:56:12 +02:00
rules bump debian compat level to 11 2019-05-22 18:47:53 +02:00
triggers change from dpkg-deb to dpkg-buildpackage 2017-06-12 09:56:12 +02:00