[pve-devel] [PATCH qemu-server v2 1/6] add a guest-fsfreeze qga setting

Maximiliano Sandoval m.sandoval at proxmox.com
Tue Sep 2 14:45:16 CEST 2025


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.",
+        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 =
+        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;
     if (!$freeze) {
         $self->loginfo("skipping guest-agent 'fs-freeze', disabled in VM options");
         return;
-- 
2.47.2





More information about the pve-devel mailing list