[pve-devel] [PATCH qemu-server 1/3] vzdump: Add VM QGA option to skip `fs-freeze`/`fs-thaw` on backup
Christoph Heiss
c.heiss at proxmox.com
Thu Feb 23 12:29:28 CET 2023
Thanks for the review!
On Thu, Feb 23, 2023 at 11:55:55AM +0100, Thomas Lamprecht wrote:
> Am 01/02/2023 um 13:59 schrieb Christoph Heiss:
> > Signed-off-by: Christoph Heiss <c.heiss at proxmox.com>
> > ---
> > PVE/QemuServer.pm | 8 +++++++-
> > PVE/VZDump/QemuServer.pm | 5 +++++
> > 2 files changed, 12 insertions(+), 1 deletion(-)
> >
> > diff --git a/PVE/QemuServer.pm b/PVE/QemuServer.pm
> > index e4d1a70..e409db1 100644
> > --- a/PVE/QemuServer.pm
> > +++ b/PVE/QemuServer.pm
> > @@ -160,7 +160,13 @@ my $agent_fmt = {
> > description => "Run fstrim after moving a disk or migrating the VM.",
> > type => 'boolean',
> > optional => 1,
> > - default => 0
> > + default => 0,
> > + },
> > + fsfreeze_thaw => {
>
> Please rename this to:
>
> 'freeze-fs-on-backup'
Will do, I wasn't really all that happy with the option name anyway.
>
>
> > + description => "Freeze/thaw filesystems on backup for consistency.",
>
> detail/nit: s/filesystems/guest filesystem/
Ack.
>
> > + type => 'boolean',
> > + optional => 1,
> > + default => 1,
> > },
> > type => {
> > description => "Select the agent type",
> > diff --git a/PVE/VZDump/QemuServer.pm b/PVE/VZDump/QemuServer.pm
> > index 0eb5ec6..5ff46f7 100644
> > --- a/PVE/VZDump/QemuServer.pm
> > +++ b/PVE/VZDump/QemuServer.pm
> > @@ -862,6 +862,11 @@ sub qga_fs_freeze {
> > return;
> > }
> >
> > + if (!PVE::QemuServer::get_qga_key($self->{vmlist}->{$vmid}, 'fsfreeze_thaw')) {
>
> this is wrong as get_qga_key which uses parse_guest_agent which uses parse_property_string
> doesn't sets the default from the schema on parse, so you'd also skip if it's not defined
> (please negative test changes too)
Good to know! I don't remember if I tested it with an unchanged/fresh
VM, but I guess not (and it was also some time ago). I'll change it as
suggested below and do more thorough testing of such cases too for the
next spin.
>
> Rather do something like:
>
> my $freeze = PVE::QemuServer::get_qga_key($self->{vmlist}->{$vmid}, 'freeze-fs-on-backup') // 1;
> if (!$freeze) {
> # ...
>
> > + $self->loginfo("skipping guest-agent 'fs-freeze', disabled in VM options");
> > + return;
> > + }
> > +
> > $self->loginfo("issuing guest-agent 'fs-freeze' command");
> > eval { mon_cmd($vmid, "guest-fsfreeze-freeze") };
> > $self->logerr($@) if $@;
>
>
More information about the pve-devel
mailing list