nova/nova/conf
Balazs Gibizer 86be251451 Reserve DISK_GB resource for the image cache
If the nova compute image cache is on the same disk as the instance
directory then the images in the cache will consume the same disk
resource as the nova instances which can lead to disk overallocation.

This patch adds a new config option
[workarounds]/reserve_disk_resource_for_image_cache . If it is set the
libvirt driver will reserve DISK_GB resources in placement for the
actual size of the image cache.

This is a low complexity solution with known limitations:
* Reservation is updated long after the image is downloaded
* This code allows the reservation to push the provider into negative
available resource if the reservation + allocations exceed the total
inventory.

Conflicts:
  nova/conf/workarounds.py due to
  Ie38aa625dff543b5980fd437ad2febeba3b50079 ("Add support for translating CPU
  policy extra specs, image meta") is not in stable/stein

  nova/tests/unit/virt/libvirt/test_driver.py due to
  I25d70aa09080b22d1bfa0aa097f0a114de8bf15a ("Add reshaper for PCPU")
  is not in stable/stein

Change-Id: If874f018ea996587e178219569c2903c2ee923cf
Closes-Bug: #1878024
(cherry picked from commit 89fe504abf)
(cherry picked from commit 968981b585)
(cherry picked from commit 90c70f04d7)
2020-07-06 10:38:40 +00:00
..
__init__.py z/VM Driver: Initial change set of z/VM driver 2018-07-16 11:35:10 +08:00
api.py Fix a typo in configuration description 2019-02-21 15:50:14 +00:00
availability_zone.py Fix default_availability_zone docs 2017-05-31 14:24:07 +01:00
base.py Ensure config regexes match the entire string 2019-02-13 08:16:45 -05:00
cache.py conf: Make list->dict conversion more specific 2016-09-14 12:10:29 +00:00
cells.py conf: Resolve Sphinx errors 2018-07-02 14:00:12 +01:00
cinder.py Address nits from I9e30a24a4c0640f282f507d0a96640d3cdefe43c 2019-02-14 14:16:14 +00:00
compute.py Do not log a warning about not using compute monitors 2019-04-08 15:35:04 +00:00
conductor.py conf: Remove '[conductor] topic' opt 2018-03-12 13:26:08 +00:00
configdrive.py conf: Deprecated 'config_drive_format' 2018-10-06 14:47:20 +01:00
console.py conf: remove *_topic config opts 2017-07-17 21:27:02 -07:00
consoleauth.py Convert websocketproxy to use db for token validation 2018-05-03 09:57:56 -04:00
database.py Add useful error log when _determine_version_cap raises DBNotAllowed 2019-08-12 15:11:30 -04:00
devices.py conf: Resolve Sphinx errors 2018-07-02 14:00:12 +01:00
ephemeral_storage.py Parse algorithm from cipher for ephemeral disk encryption 2017-04-26 11:19:43 -04:00
flavors.py Add deprecated_since parameter 2016-09-21 17:37:12 +01:00
glance.py Fix typo in enable_certificate_validation config option help 2018-06-04 14:50:45 -04:00
guestfs.py conf: Resolve Sphinx errors 2018-07-02 14:00:12 +01:00
hyperv.py conf: hyperv: fix a comment typo 2018-01-05 15:30:35 +08:00
ironic.py Fix help for ironic.peer_list config 2019-05-01 12:50:19 +00:00
key_manager.py Add secret=true to fixed_key configuration parameter 2018-12-03 14:39:51 -05:00
keystone.py Use ksa adapter for keystone conf & requests 2017-11-30 22:33:01 +00:00
libvirt.py Trivialfix for help description of images_type 2019-03-13 10:27:06 +08:00
mks.py Use URIOpt 2017-07-18 00:38:24 +00:00
netconf.py conf: Move additional nova-net opts to 'network' 2017-10-26 14:01:18 +00:00
network.py conf: Deprecated 'defer_iptables_apply' 2019-02-25 15:51:39 +00:00
neutron.py Add config option for neutron client retries 2020-04-22 16:47:17 +00:00
notifications.py Fix nits in choices documentation 2018-10-05 20:07:19 +00:00
novnc.py Conf options: updated flags for novnc 2016-08-01 15:00:07 -05:00
opts.py conf: Make list->dict conversion more specific 2016-09-14 12:10:29 +00:00
osapi_v21.py Remove config opts for extension black/white list 2017-04-06 08:47:06 +00:00
paths.py Make nova build reproducible 2018-03-09 13:12:39 +01:00
pci.py conf: Call out where pci.alias should be set 2019-02-28 10:44:42 +00:00
placement.py make incomplete_consumer_project_id a valid UUID 2018-07-09 19:15:46 +01:00
powervm.py Powervm configuration cleanup 2018-06-13 11:48:30 -05:00
quota.py Remove unused quota options 2019-01-25 15:17:15 +09:00
rdp.py Use URIOpt 2017-07-18 00:38:24 +00:00
remote_debug.py Use HostAddressOpt for opts that accept IP and hostnames 2017-04-03 16:40:36 +05:30
rpc.py compute: Use long_rpc_timeout in reserve_block_device_name 2019-12-02 20:14:23 +00:00
scheduler.py Update help messages for weight multipliers 2019-02-07 08:28:16 +00:00
serial_console.py Address nits from I9e30a24a4c0640f282f507d0a96640d3cdefe43c 2019-02-14 14:16:14 +00:00
service.py conf: Deprecate 'network_manager' 2018-06-22 15:04:48 +01:00
service_token.py Service token is not experimental 2017-11-21 17:36:32 +00:00
servicegroup.py conf: Use new-style choice values 2018-09-12 09:45:06 -06:00
spice.py conf: Resolve Sphinx errors 2018-07-02 14:00:12 +01:00
upgrade_levels.py Deprecate upgrade_levels options for deprecated/removed services 2018-08-03 15:53:11 +00:00
utils.py Get auth from context for glance endpoint 2017-11-21 10:26:42 -06:00
vendordata.py Use a service account to make vendordata requests. 2017-01-26 13:39:46 +00:00
vmware.py conf: Deprecate 'keymap' options 2018-03-07 10:18:23 +00:00
vnc.py Deprecate the nova-xvpvncproxy service 2018-10-15 10:03:13 +01:00
workarounds.py Reserve DISK_GB resource for the image cache 2020-07-06 10:38:40 +00:00
wsgi.py Add missing ws seperator between words 2018-11-26 23:42:18 +00:00
xenserver.py Fix nits in choices documentation 2018-10-05 20:07:19 +00:00
xvp.py flake8: Specify 'nova' as name of app 2017-03-16 13:48:51 -07:00
zvm.py z/VM Driver: Spawn and destroy function of z/VM driver 2018-07-16 11:35:11 +08:00