From: Stoiko Ivanov Date: Wed, 1 Aug 2018 18:29:05 +0000 (+0200) Subject: Fix #1242 : clone_disk : call qga fstrim after clone X-Git-Url: https://git.proxmox.com/?p=qemu-server.git;a=commitdiff_plain;h=ca6621315ebb908a713fcf7661991aa4cfbd9e05 Fix #1242 : clone_disk : call qga fstrim after clone Some storage like rbd or lvm can't keep thin-provising after a qemu-mirror. Call qga guest-fstrim if qga is available and fstrim_cloned_disks is enabled after move_disk and migrate. Co-Authored-By: Alexandre Derumier Signed-off-by: Stoiko Ivanov --- diff --git a/PVE/API2/Qemu.pm b/PVE/API2/Qemu.pm index 464ba7f..b0af9d9 100644 --- a/PVE/API2/Qemu.pm +++ b/PVE/API2/Qemu.pm @@ -2969,6 +2969,10 @@ __PACKAGE__->register_method({ PVE::QemuConfig->write_config($vmid, $conf); + if ($running && PVE::QemuServer::parse_guest_agent($conf)->{fstrim_cloned_disks} && PVE::QemuServer::qga_check_running($vmid)) { + eval { PVE::QemuServer::vm_mon_cmd($vmid, "guest-fstrim"); }; + } + eval { # try to deactivate volumes - avoid lvm LVs to be active on several nodes PVE::Storage::deactivate_volumes($storecfg, [ $newdrive->{file} ]) diff --git a/PVE/QemuMigrate.pm b/PVE/QemuMigrate.pm index 27cf7e3..e9e9075 100644 --- a/PVE/QemuMigrate.pm +++ b/PVE/QemuMigrate.pm @@ -966,6 +966,11 @@ sub phase3_cleanup { $self->{errors} = 1; } } + + if ($self->{storage_migration} && PVE::QemuServer::parse_guest_agent($conf)->{fstrim_cloned_disks} && $self->{running}) { + my $cmd = [@{$self->{rem_ssh}}, 'qm', 'guest', 'cmd', $vmid, 'fstrim']; + eval{ PVE::Tools::run_command($cmd, outfunc => sub {}, errfunc => sub {}) }; + } } # close tunnel on successful migration, on error phase2_cleanup closed it