it will freeze the filesystem to provide consistents. Signed-off-by: Wolfgang Link <wolfg...@linksystems.org> --- PVE/VZDump/QemuServer.pm | 19 +++++++++++++++++-- 1 file changed, 17 insertions(+), 2 deletions(-)
diff --git a/PVE/VZDump/QemuServer.pm b/PVE/VZDump/QemuServer.pm index fd36c69..2c62de3 100644 --- a/PVE/VZDump/QemuServer.pm +++ b/PVE/VZDump/QemuServer.pm @@ -286,8 +286,8 @@ sub archive { my $resume_on_backup; my $skiplock = 1; - - if (!PVE::QemuServer::check_running($vmid)) { + my $vm_is_running = PVE::QemuServer::check_running($vmid); + if (!$vm_is_running) { eval { $self->loginfo("starting kvm to execute backup task"); PVE::QemuServer::vm_start($self->{storecfg}, $vmid, undef, @@ -380,8 +380,23 @@ sub archive { $qmpclient->queue_cmd($vmid, $add_fd_cb, 'getfd', fd => $outfileno, fdname => "backup"); + + my $freeze_fs = 0; + + if ( $self->{vmlist}->{$vmid}->{agent} == 1 && $vm_is_running ){ + $freeze_fs = PVE::QemuServer::vm_mon_cmd($vmid,"guest-fsfreeze-freeze"); + $self->loginfo("Can't freeze fs!")if ( defined($freeze_fs) && $freeze_fs == 0 ); + } + $qmpclient->queue_execute(); + my $thaw_fs = 0; + $thaw_fs= PVE::QemuServer::vm_mon_cmd($vmid,"guest-fsfreeze-thaw") + if ( $freeze_fs > 0 ); + + $self->loginfo("Error by trying thaw fs, you must unlock manually") + if ( $freeze_fs > 0 && 0 != $freeze_fs - $thaw_fs ); + die $qmpclient->{errors}->{$vmid} if $qmpclient->{errors}->{$vmid}; if ($cpid) { -- 1.7.10.4 _______________________________________________ pve-devel mailing list pve-devel@pve.proxmox.com http://pve.proxmox.com/cgi-bin/mailman/listinfo/pve-devel