[pve-devel] [PATCH V2] - fix setting migration parameters
Stefan Priebe - Profihost AG
s.priebe at profihost.ag
Thu Dec 27 07:21:19 CET 2012
Hi,
Am 27.12.2012 um 02:57 schrieb Alexandre DERUMIER <aderumier at odiso.com>:
> somes comments:
>
>>> - default => 1,
>>> + default => 0,
>
> Not sure about "lower default migration downtime value to 0",
>
> because 0 downtime is nearly impossible to target.
>
> Default qemu value is 0.030, so maybe can we simply remove
>
> - default => 0,
>
> and don't send any qmp command by default.
That's ok / fine and works for me too.
>
>
>
>>> + PVE::QemuServer::vm_mon_cmd_nocheck($vmid, "migrate_set_downtime", value => $migrate_downtime*1);
>>> + PVE::QemuServer::vm_mon_cmd_nocheck($vmid, "migrate_set_speed", value => $migrate_speed*1);
> try
>
> + PVE::QemuServer::vm_mon_cmd_nocheck($vmid, "migrate_set_downtime", value => int($migrate_downtime));
> + PVE::QemuServer::vm_mon_cmd_nocheck($vmid, "migrate_set_speed", value => int($migrate_speed));
> (more clean)
>
>
> ----- Mail original -----
>
> De: "Stefan Priebe" <s.priebe at profihost.ag>
> À: pve-devel at pve.proxmox.com
> Envoyé: Mercredi 26 Décembre 2012 23:17:56
> Objet: [pve-devel] [PATCH V2] - fix setting migration parameters
>
> - move migration speed/downtime from QemuServer vm_start to
> QemuMigrate phase2
> - lower default migration downtime value to 0
>
> ---
> PVE/QemuMigrate.pm | 30 ++++++++++++++++++++++++++----
> PVE/QemuServer.pm | 17 +----------------
> 2 files changed, 27 insertions(+), 20 deletions(-)
>
> diff --git a/PVE/QemuMigrate.pm b/PVE/QemuMigrate.pm
> index 0711681..af8813c 100644
> --- a/PVE/QemuMigrate.pm
> +++ b/PVE/QemuMigrate.pm
> @@ -323,24 +323,46 @@ sub phase2 {
> $self->{tunnel} = $self->fork_tunnel($self->{nodeip}, $lport, $rport);
>
> $self->log('info', "starting online/live migration on port $lport");
> - # start migration
>
> - my $start = time();
> + # load_defaults
> + my $defaults = PVE::QemuServer::load_defaults();
> +
> + # 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;
> + $self->log('info', "migrate_set_speed: $migrate_speed");
> + eval {
> + # *1 ensures that JSON module convert the value to number
> + PVE::QemuServer::vm_mon_cmd_nocheck($vmid, "migrate_set_speed", value => $migrate_speed*1);
> + };
> + $self->log('info', "migrate_set_speed error: $@") if $@;
> +
> + my $migrate_downtime = $defaults->{migrate_downtime};
> + $migrate_downtime = $conf->{migrate_downtime} if defined($conf->{migrate_downtime});
> + $self->log('info', "migrate_set_downtime: $migrate_downtime");
> + eval {
> + # *1 ensures that JSON module convert the value to number
> + PVE::QemuServer::vm_mon_cmd_nocheck($vmid, "migrate_set_downtime", value => $migrate_downtime*1);
> + };
> + $self->log('info', "migrate_set_downtime error: $@") if $@;
>
> my $capabilities = {};
> $capabilities->{capability} = "xbzrle";
> $capabilities->{state} = JSON::false;
> -
> eval {
> PVE::QemuServer::vm_mon_cmd_nocheck($vmid, "migrate-set-capabilities", capabilities => [$capabilities]);
> };
>
> - #set cachesize 10% of the total memory
> + # set cachesize 10% of the total memory
> my $cachesize = int($conf->{memory}*1048576/10);
> eval {
> PVE::QemuServer::vm_mon_cmd_nocheck($vmid, "migrate-set-cache-size", value => $cachesize);
> };
>
> + # start migration
> + my $start = time();
> eval {
> PVE::QemuServer::vm_mon_cmd_nocheck($vmid, "migrate", uri => "tcp:localhost:$lport");
> };
> diff --git a/PVE/QemuServer.pm b/PVE/QemuServer.pm
> index 1d4c275..bb7fd16 100644
> --- a/PVE/QemuServer.pm
> +++ b/PVE/QemuServer.pm
> @@ -385,7 +385,7 @@ EODESCR
> type => 'integer',
> description => "Set maximum tolerated downtime (in seconds) for migrations.",
> minimum => 0,
> - default => 1,
> + default => 0,
> },
> cdrom => {
> optional => 1,
> @@ -2979,21 +2979,6 @@ sub vm_start {
> warn $@ if $@;
> }
>
> - # 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;
> - eval {
> - vm_mon_cmd_nocheck($vmid, "migrate_set_speed", value => $migrate_speed);
> - };
> -
> - my $migrate_downtime = $defaults->{migrate_downtime};
> - $migrate_downtime = $conf->{migrate_downtime} if defined($conf->{migrate_downtime});
> - if (defined($migrate_downtime)) {
> - eval { vm_mon_cmd_nocheck($vmid, "migrate_set_downtime", value => $migrate_downtime); };
> - }
> -
> if($migratedfrom) {
> my $capabilities = {};
> $capabilities->{capability} = "xbzrle";
> --
> 1.7.10.4
>
> _______________________________________________
> pve-devel mailing list
> pve-devel at pve.proxmox.com
> http://pve.proxmox.com/cgi-bin/mailman/listinfo/pve-devel
More information about the pve-devel
mailing list