[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