From 38e0c3b8ae1d6829bec77888eae33d299f3a22ab Mon Sep 17 00:00:00 2001 From: Alexandre Derumier Date: Mon, 11 May 2015 15:55:22 +0200 Subject: [PATCH] qmp drive-mirror : set big timeout 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 qemu devs are currently working to fix this Signed-off-by: Alexandre Derumier --- PVE/QemuServer.pm | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/PVE/QemuServer.pm b/PVE/QemuServer.pm index 5fca5bf2..08be8ba1 100644 --- a/PVE/QemuServer.pm +++ b/PVE/QemuServer.pm @@ -6092,14 +6092,16 @@ sub qemu_drive_mirror { my $dst_path = PVE::Storage::path($storecfg, $dst_volid); - my $opts = { timeout => 10, device => "drive-$drive", mode => "existing", sync => "full", target => $dst_path }; + #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 }; $opts->{format} = $format if $format; - #fixme : sometime drive-mirror timeout, but works fine after. - # (I have see the problem with big volume > 200GB), so we need to eval - eval { vm_mon_cmd($vmid, "drive-mirror", %$opts); }; - # ignore errors here + print "drive mirror is starting : this step can take some minutes/hours, depend of disk size and storage speed\n"; + vm_mon_cmd($vmid, "drive-mirror", %$opts); eval { while (1) { my $stats = vm_mon_cmd($vmid, "query-block-jobs");