[pve-devel] [PATCH] qemu-server : drive-mirror : allow to interrupts at the scanning bitmap phase

Alexandre Derumier aderumier at odiso.com
Wed Jul 1 06:01:42 CEST 2015


Signed-off-by: Alexandre Derumier <aderumier at odiso.com>
---
 PVE/QemuServer.pm | 10 +++-------
 1 file changed, 3 insertions(+), 7 deletions(-)

diff --git a/PVE/QemuServer.pm b/PVE/QemuServer.pm
index 15fb471..f035b67 100644
--- a/PVE/QemuServer.pm
+++ b/PVE/QemuServer.pm
@@ -6176,17 +6176,13 @@ sub qemu_drive_mirror {
 
     my $dst_path = PVE::Storage::path($storecfg, $dst_volid);
 
-    #drive-mirror is doing lseek on source image before starting, and this can take a lot of time for big nfs volume
-    #during this time, qmp socket is hanging
-    #http://lists.nongnu.org/archive/html/qemu-devel/2015-05/msg01838.html
-    #so we need to setup a big timeout
-    my $opts = { timeout => 14400, device => "drive-$drive", mode => "existing", sync => "full", target => $dst_path };
+    my $opts = { timeout => 10, device => "drive-$drive", mode => "existing", sync => "full", target => $dst_path };
     $opts->{format} = $format if $format;
 
-    print "drive mirror is starting : this step can take some minutes/hours, depend of disk size and storage speed\n";
+    print "drive mirror is starting (scanning bitmap) : this step can take some minutes/hours, depend of disk size and storage speed\n";
 
-    vm_mon_cmd($vmid, "drive-mirror", %$opts);
     eval {
+    vm_mon_cmd($vmid, "drive-mirror", %$opts);
 	while (1) {
 	    my $stats = vm_mon_cmd($vmid, "query-block-jobs");
 	    my $stat = @$stats[0];
-- 
2.1.4




More information about the pve-devel mailing list