]> git.proxmox.com Git - qemu-server.git/commitdiff
Add qga freeze in vzdump in snapshot mode
authorWolfgang Link <wolfgang@linksystems.org>
Tue, 9 Dec 2014 10:12:56 +0000 (11:12 +0100)
committerDietmar Maurer <dietmar@proxmox.com>
Wed, 10 Dec 2014 05:35:18 +0000 (06:35 +0100)
it will freeze the filesystem to provide consistents.

Signed-off-by: Wolfgang Link <wolfgang@linksystems.org>
PVE/VZDump/QemuServer.pm

index fd36c6960a66e91cf924a21658db4de082312add..b9edea1e48b2f01665ae70b435643230dfe41383 100644 (file)
@@ -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,22 @@ sub archive {
 
        $qmpclient->queue_cmd($vmid, $add_fd_cb, 'getfd', 
                              fd => $outfileno, fdname => "backup");
+
+       if ($self->{vmlist}->{$vmid}->{agent} && $vm_is_running){
+           eval {PVE::QemuServer::vm_mon_cmd($vmid,"guest-fsfreeze-freeze");};
+           if (my $err = $@) {
+               $self->logerr($err);
+           }  
+       }
+       
        $qmpclient->queue_execute();
 
+       if ($self->{vmlist}->{$vmid}->{agent} && $vm_is_running ){
+           eval {PVE::QemuServer::vm_mon_cmd($vmid,"guest-fsfreeze-thaw");};
+           if (my $err = $@) {
+               $self->logerr($err);
+           }
+       }
        die $qmpclient->{errors}->{$vmid} if $qmpclient->{errors}->{$vmid};    
 
        if ($cpid) {