Use min parameter to restrict live-migration config options
UpgradeImpact: IntOpt type provides min parameter to restrict integer's minimum value in oslo.config, and will generate description about this in the format like '# Minimum value: XXX', then we don't need round up the minimum value quietly in code. Change-Id: I54592ba4f46c2d6260f1513e5e29dd466c89724d
This commit is contained in:
parent
d4e70a4275
commit
03711d2648
@ -25,12 +25,6 @@ from oslo_config import cfg
|
|||||||
|
|
||||||
from nova.conf import paths
|
from nova.conf import paths
|
||||||
|
|
||||||
# Downtime period in milliseconds
|
|
||||||
LIVE_MIGRATION_DOWNTIME_MIN = 100
|
|
||||||
# Step count
|
|
||||||
LIVE_MIGRATION_DOWNTIME_STEPS_MIN = 3
|
|
||||||
# Delay in seconds
|
|
||||||
LIVE_MIGRATION_DOWNTIME_DELAY_MIN = 10
|
|
||||||
|
|
||||||
libvirt_group = cfg.OptGroup("libvirt",
|
libvirt_group = cfg.OptGroup("libvirt",
|
||||||
title="Libvirt Options",
|
title="Libvirt Options",
|
||||||
@ -332,15 +326,14 @@ If set to 0, the hypervisor will choose a suitable default. Some hypervisors
|
|||||||
do not support this feature and will return an error if bandwidth is not 0.
|
do not support this feature and will return an error if bandwidth is not 0.
|
||||||
Please refer to the libvirt documentation for further details.
|
Please refer to the libvirt documentation for further details.
|
||||||
"""),
|
"""),
|
||||||
# TODO(hieulq): Need to add min argument by moving from
|
|
||||||
# LIVE_MIGRATION_DOWNTIME_MIN constant.
|
|
||||||
cfg.IntOpt('live_migration_downtime',
|
cfg.IntOpt('live_migration_downtime',
|
||||||
default=500,
|
default=500,
|
||||||
|
min=100,
|
||||||
help="""
|
help="""
|
||||||
Maximum permitted downtime, in milliseconds, for live migration
|
Maximum permitted downtime, in milliseconds, for live migration
|
||||||
switchover.
|
switchover.
|
||||||
|
|
||||||
Will be rounded up to a minimum of %dms. You can increase this value
|
Will be rounded up to a minimum of 100ms. You can increase this value
|
||||||
if you want to allow live-migrations to complete faster, or avoid
|
if you want to allow live-migrations to complete faster, or avoid
|
||||||
live-migration timeout errors by allowing the guest to be paused for
|
live-migration timeout errors by allowing the guest to be paused for
|
||||||
longer during the live-migration switch over.
|
longer during the live-migration switch over.
|
||||||
@ -348,27 +341,25 @@ longer during the live-migration switch over.
|
|||||||
Related options:
|
Related options:
|
||||||
|
|
||||||
* live_migration_completion_timeout
|
* live_migration_completion_timeout
|
||||||
""" % LIVE_MIGRATION_DOWNTIME_MIN),
|
"""),
|
||||||
# TODO(hieulq): Need to add min argument by moving from
|
|
||||||
# LIVE_MIGRATION_DOWNTIME_STEPS_MIN constant.
|
|
||||||
cfg.IntOpt('live_migration_downtime_steps',
|
cfg.IntOpt('live_migration_downtime_steps',
|
||||||
default=10,
|
default=10,
|
||||||
|
min=3,
|
||||||
help="""
|
help="""
|
||||||
Number of incremental steps to reach max downtime value.
|
Number of incremental steps to reach max downtime value.
|
||||||
|
|
||||||
Will be rounded up to a minimum of %d steps.
|
Will be rounded up to a minimum of 3 steps.
|
||||||
""" % LIVE_MIGRATION_DOWNTIME_STEPS_MIN),
|
"""),
|
||||||
# TODO(hieulq): Need to add min argument by moving from
|
|
||||||
# LIVE_MIGRATION_DOWNTIME_DELAY_MIN constant.
|
|
||||||
cfg.IntOpt('live_migration_downtime_delay',
|
cfg.IntOpt('live_migration_downtime_delay',
|
||||||
default=75,
|
default=75,
|
||||||
|
min=3,
|
||||||
help="""
|
help="""
|
||||||
Time to wait, in seconds, between each step increase of the migration
|
Time to wait, in seconds, between each step increase of the migration
|
||||||
downtime.
|
downtime.
|
||||||
|
|
||||||
Minimum delay is %d seconds. Value is per GiB of guest RAM + disk to be
|
Minimum delay is 3 seconds. Value is per GiB of guest RAM + disk to be
|
||||||
transferred, with lower bound of a minimum of 2 GiB per device.
|
transferred, with lower bound of a minimum of 2 GiB per device.
|
||||||
""" % LIVE_MIGRATION_DOWNTIME_DELAY_MIN),
|
"""),
|
||||||
cfg.IntOpt('live_migration_completion_timeout',
|
cfg.IntOpt('live_migration_completion_timeout',
|
||||||
default=800,
|
default=800,
|
||||||
mutable=True,
|
mutable=True,
|
||||||
|
@ -526,32 +526,6 @@ def downtime_steps(data_gb):
|
|||||||
steps = CONF.libvirt.live_migration_downtime_steps
|
steps = CONF.libvirt.live_migration_downtime_steps
|
||||||
delay = CONF.libvirt.live_migration_downtime_delay
|
delay = CONF.libvirt.live_migration_downtime_delay
|
||||||
|
|
||||||
downtime_min = nova.conf.libvirt.LIVE_MIGRATION_DOWNTIME_MIN
|
|
||||||
steps_min = nova.conf.libvirt.LIVE_MIGRATION_DOWNTIME_STEPS_MIN
|
|
||||||
delay_min = nova.conf.libvirt.LIVE_MIGRATION_DOWNTIME_DELAY_MIN
|
|
||||||
|
|
||||||
# TODO(hieulq): Need to move min/max value into the config option,
|
|
||||||
# currently oslo_config will raise ValueError instead of setting
|
|
||||||
# option value to its min/max.
|
|
||||||
if downtime < downtime_min:
|
|
||||||
LOG.warning(_LW("Config option live_migration_downtime's value "
|
|
||||||
"is less than minimum value %dms, rounded up to "
|
|
||||||
"the minimum value and will raise ValueError in "
|
|
||||||
"the future release."), downtime_min)
|
|
||||||
downtime = downtime_min
|
|
||||||
|
|
||||||
if steps < steps_min:
|
|
||||||
LOG.warning(_LW("Config option live_migration_downtime_steps's "
|
|
||||||
"value is less than minimum value %dms, rounded "
|
|
||||||
"up to the minimum value and will raise "
|
|
||||||
"ValueError in the future release."), steps_min)
|
|
||||||
steps = steps_min
|
|
||||||
if delay < delay_min:
|
|
||||||
LOG.warning(_LW("Config option live_migration_downtime_delay's "
|
|
||||||
"value is less than minimum value %dms, rounded "
|
|
||||||
"up to the minimum value and will raise "
|
|
||||||
"ValueError in the future release."), delay_min)
|
|
||||||
delay = delay_min
|
|
||||||
delay = int(delay * data_gb)
|
delay = int(delay * data_gb)
|
||||||
|
|
||||||
base = downtime / steps
|
base = downtime / steps
|
||||||
|
@ -0,0 +1,11 @@
|
|||||||
|
---
|
||||||
|
upgrade:
|
||||||
|
- |
|
||||||
|
Three live-migration related configuration options were restricted
|
||||||
|
by minimum values since 16.0.0 and will now raise a ValueError if these
|
||||||
|
configuration options' values less than minimum values, instead of
|
||||||
|
logging warning before. These configuration options are:
|
||||||
|
|
||||||
|
- ``live_migration_downtime`` with minimum value 100
|
||||||
|
- ``live_migration_downtime_steps`` with minimum value 3
|
||||||
|
- ``live_migration_downtime_delay`` with minimum value 10
|
Loading…
Reference in New Issue
Block a user