[pve-devel] [PATCH qemu-server 1/7] bwlimit: honor bwlimit for migrate qmp call

Stoiko Ivanov s.ivanov at proxmox.com
Fri Mar 29 10:32:44 CET 2019


On Fri, 29 Mar 2019 10:08:19 +0100
Thomas Lamprecht <t.lamprecht at proxmox.com> wrote:

> On 3/29/19 8:28 AM, Stoiko Ivanov wrote:
> > The 'migrate_speed' can be set in the VM config. Additionally
> > migrate should honor the 'migrate' bwlimit set in datacenter.cfg
> > (storage-specific limits play no role for memory+state migration)
> > or the parameter provided to the API call.
> > 
> > With this patch a set bwlimit overrides the 'migrate_speed'
> > setting.  
> 
> would it make sense to not plain overwrite it but use the smaller one
> of both? Or is this the same behavior as elsewhere? I just want to
> ensure this is documented, and seen as expected behavior for users.

Taking the minimum does sound like the right thing to do! I'll take
that into consideration for the v2! (along with the space after '#'
nit, and the easier readable migrate_speed setting) - huge thanks!


> 
> > 
> > Signed-off-by: Stoiko Ivanov <s.ivanov at proxmox.com>
> > ---
> >  PVE/QemuMigrate.pm | 8 +++++---
> >  1 file changed, 5 insertions(+), 3 deletions(-)
> > 
> > diff --git a/PVE/QemuMigrate.pm b/PVE/QemuMigrate.pm
> > index ee605d8..8f4ee5b 100644
> > --- a/PVE/QemuMigrate.pm
> > +++ b/PVE/QemuMigrate.pm
> > @@ -663,9 +663,11 @@ sub phase2 {
> >  
> >      # always set migrate speed (overwrite kvm default of 32m)
> >      # we set a very hight default of 8192m which is basically
> > unlimited
> > -    my $migrate_speed = $defaults->{migrate_speed} || 8192;
> > -    $migrate_speed = $conf->{migrate_speed} || $migrate_speed;
> > -    $migrate_speed = $migrate_speed * 1048576;
> > +    my $migrate_speed = $conf->{migrate_speed} //
> > ($defaults->{migrate_speed} || 8192*1024);
> > +    #optionally override with $opt_bwlimit - with undef as
> > storagelist
> > +    my $bwlimit = PVE::Storage::get_bandwidth_limit('migrate',
> > undef, $opt_bwlimit);
> > +    $migrate_speed = $bwlimit // $migrate_speed;
> > +    $migrate_speed *= 1024;
> >      $self->log('info', "migrate_set_speed: $migrate_speed");
> >      eval {
> >          PVE::QemuServer::vm_mon_cmd_nocheck($vmid,
> > "migrate_set_speed", value => int($migrate_speed)); 
> 





More information about the pve-devel mailing list