[pve-devel] [PATCH qemu-server v2 1/6] add a guest-fsfreeze qga setting
Daniel Kral
d.kral at proxmox.com
Tue Sep 2 16:43:19 CEST 2025
On Tue Sep 2, 2025 at 2:45 PM CEST, Maximiliano Sandoval wrote:
> Adds a new setting that controls whether guest-fsfreeze-{freeze,thaw}
> commands should be issued. The previous setting was only taken into
> account for backups.
>
> In this commit we only use this setting for backups. The following two
> commits will ensure the setting is used on replications, snapshots and
> clones.
>
> Signed-off-by: Maximiliano Sandoval <m.sandoval at proxmox.com>
> ---
> src/PVE/QemuServer.pm | 11 +++++++++++
> src/PVE/VZDump/QemuServer.pm | 6 +++++-
> 2 files changed, 16 insertions(+), 1 deletion(-)
>
> diff --git a/src/PVE/QemuServer.pm b/src/PVE/QemuServer.pm
> index f263fedb..cdd44eb0 100644
> --- a/src/PVE/QemuServer.pm
> +++ b/src/PVE/QemuServer.pm
> @@ -167,6 +167,17 @@ my $agent_fmt = {
> optional => 1,
> default => 1,
> },
> + 'guest-fsfreeze' => {
> + description =>
> + "Whether to issue the guest-fsfreeze-freeze and guest-fsfreeze-thaw QEMU guest agent commands.\n\n"
> + . "Backups in snapshot mode, clones, snapshots without RAM, and replications normally issue a "
> + . "fsfreeze-fsfreeze-freeze and a respective thaw command when the QEMU Guest agent option is "
> + . "enabled on the guest's configuration and the agent is running inside of the guest.\n\n"
> + . "Takes preference over 'freeze-fs-on-backup' when set.",
'Takes preference over' should be 'Takes precedence over'.
nit: But I think it'd be easier for users to understand something like
When this property/option is set, it will override the setting of
'freeze-fs-on-backup'.
> + type => 'boolean',
> + optional => 1,
> + default => 1,
> + },
> type => {
> description => "Select the agent type",
> type => 'string',
> diff --git a/src/PVE/VZDump/QemuServer.pm b/src/PVE/VZDump/QemuServer.pm
> index 5b94c369..2879639a 100644
> --- a/src/PVE/VZDump/QemuServer.pm
> +++ b/src/PVE/VZDump/QemuServer.pm
> @@ -1096,7 +1096,11 @@ sub qga_fs_freeze {
> return;
> }
>
> - my $freeze = PVE::QemuServer::get_qga_key($self->{vmlist}->{$vmid}, 'freeze-fs-on-backup') // 1;
> + my $freze_fs_on_backup =
s/freze/freeze/
> + PVE::QemuServer::get_qga_key($self->{vmlist}->{$vmid}, 'freeze-fs-on-backup');
> + my $guest_fsfreeze = PVE::QemuServer::get_qga_key($self->{vmlist}->{$vmid}, 'guest-fsfreeze');
> +
> + my $freeze = $guest_fsfreeze // $freze_fs_on_backup // 1;
could also just be
my $freeze = PVE::QemuServer::get_qga_key($self->{vmlist}->{$vmid}, 'guest-fsfreeze');
$freeze //= PVE::QemuServer::get_qga_key($self->{vmlist}->{$vmid}, 'freeze-fs-on-backup');
$freeze //= 1;
or something like that to not have unnecessary temporary variables.
> if (!$freeze) {
> $self->loginfo("skipping guest-agent 'fs-freeze', disabled in VM options");
> return;
More information about the pve-devel
mailing list