From: Dominik Csapak <d.csapak@proxmox.com>
To: pve-devel@lists.proxmox.com
Subject: Re: [pve-devel] [PATCH 0/7] Handle guest shutdown during backups
Date: Fri, 18 Sep 2020 16:20:45 +0200 [thread overview]
Message-ID: <b7c67146-4daf-8979-78a3-dc54d090f0f8@proxmox.com> (raw)
In-Reply-To: <20200903085851.5073-1-s.reiter@proxmox.com>
overall the series looks ok to me (and tested ok), though a few points:
* i'd really like for someone else to look over this too
maybe someone who is really good with c ( wolfgang, when you're back
from holidays? ;) )
* regarding the killing, i'd like better what we already discussed off-list:
maybe using either the 'quit' command via qmp, or using a pidfd
to avoid races
* at this point, i think a rewrite in rust could be good,
before we tack even more features onto this?
(we have all that we need to handle this, mio,serde_json, etc.)
On 9/3/20 10:58 AM, Stefan Reiter wrote:
> Use QEMU's -no-shutdown argument so the QEMU instance stays alive even if the
> guest shuts down. This allows running backups to continue.
>
> To handle cleanup of QEMU processes, this series extends the qmeventd to handle
> SHUTDOWN events not just for detecting guest triggered shutdowns, but also to
> clean the QEMU process via SIGTERM (which quits it even with -no-shutdown
> enabled).
>
> A VZDump instance can then signal qmeventd (via the /var/run/qmeventd.sock) to
> keep alive certain VM processes if they're backing up, and once the backup is
> done, they close their connection to the socket, and qmeventd knows that it can
> now safely kill the VM (as long as the guest hasn't booted again, which is
> possible with some changes to the vm_start code also done in this series).
>
> This series requires a lot of testing, since there can be quite a few edge cases
> lounging around. So far it's been doing well for me, aside from the VNC GUI
> looking a bit confused when you do the 'shutdown during backup' motion (i.e. the
> last image from the framebuffer stays in the VNC window, looks more like the
> guest has crashed than shut down) - but I haven't found a solution for that.
>
>
> qemu-server: Stefan Reiter (6):
> qmeventd: add handling for -no-shutdown QEMU instances
> qmeventd: add last-ditch effort SIGKILL cleanup
> vzdump: connect to qmeventd for duration of backup
> vzdump: use dirty bitmap for not running VMs too
> config_to_command: use -no-shutdown option
> fix vm_resume and allow vm_start with QMP status 'shutdown'
>
> PVE/QemuServer.pm | 25 +-
> PVE/VZDump/QemuServer.pm | 40 ++-
> debian/control | 1 +
> qmeventd/Makefile | 4 +-
> qmeventd/qmeventd.c | 331 ++++++++++++++++--
> qmeventd/qmeventd.h | 41 ++-
> .../custom-cpu-model-defaults.conf.cmd | 1 +
> .../custom-cpu-model-host-phys-bits.conf.cmd | 1 +
> test/cfg2cmd/custom-cpu-model.conf.cmd | 1 +
> test/cfg2cmd/efi-raw-old.conf.cmd | 1 +
> test/cfg2cmd/efi-raw.conf.cmd | 1 +
> test/cfg2cmd/i440fx-win10-hostpci.conf.cmd | 1 +
> test/cfg2cmd/minimal-defaults.conf.cmd | 1 +
> test/cfg2cmd/netdev.conf.cmd | 1 +
> test/cfg2cmd/pinned-version.conf.cmd | 1 +
> .../q35-linux-hostpci-multifunction.conf.cmd | 1 +
> test/cfg2cmd/q35-linux-hostpci.conf.cmd | 1 +
> test/cfg2cmd/q35-win10-hostpci.conf.cmd | 1 +
> test/cfg2cmd/simple-virtio-blk.conf.cmd | 1 +
> test/cfg2cmd/simple1.conf.cmd | 1 +
> test/cfg2cmd/spice-enhancments.conf.cmd | 1 +
> test/cfg2cmd/spice-linux-4.1.conf.cmd | 1 +
> test/cfg2cmd/spice-usb3.conf.cmd | 1 +
> test/cfg2cmd/spice-win.conf.cmd | 1 +
> 24 files changed, 410 insertions(+), 50 deletions(-)
>
> manager: Stefan Reiter (1):
> ui: qemu: set correct disabled state for start button
>
> www/manager6/qemu/Config.js | 5 ++++-
> 1 file changed, 4 insertions(+), 1 deletion(-)
>
prev parent reply other threads:[~2020-09-18 14:20 UTC|newest]
Thread overview: 10+ messages / expand[flat|nested] mbox.gz Atom feed top
2020-09-03 8:58 Stefan Reiter
2020-09-03 8:58 ` [pve-devel] [PATCH qemu-server 1/7] qmeventd: add handling for -no-shutdown QEMU instances Stefan Reiter
2020-09-03 8:58 ` [pve-devel] [PATCH qemu-server 2/7] qmeventd: add last-ditch effort SIGKILL cleanup Stefan Reiter
2020-09-03 8:58 ` [pve-devel] [PATCH qemu-server 3/7] vzdump: connect to qmeventd for duration of backup Stefan Reiter
2020-09-03 8:58 ` [pve-devel] [PATCH qemu-server 4/7] vzdump: use dirty bitmap for not running VMs too Stefan Reiter
2020-09-03 8:58 ` [pve-devel] [PATCH qemu-server 5/7] config_to_command: use -no-shutdown option Stefan Reiter
2020-09-03 8:58 ` [pve-devel] [PATCH qemu-server 6/7] fix vm_resume and allow vm_start with QMP status 'shutdown' Stefan Reiter
2020-09-03 8:58 ` [pve-devel] [PATCH manager 7/7] ui: qemu: set correct disabled state for start button Stefan Reiter
2020-09-07 9:36 ` [pve-devel] [PATCH 0/7] Handle guest shutdown during backups Thomas Lamprecht
2020-09-18 14:20 ` Dominik Csapak [this message]
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=b7c67146-4daf-8979-78a3-dc54d090f0f8@proxmox.com \
--to=d.csapak@proxmox.com \
--cc=pve-devel@lists.proxmox.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox