Configure nova memory/hugepage reserves
Add per host overrides to nova chart to account for platform memory reserve. This will set nova config options: reserved_huge_pages: this is a multiline option per node/pagesize, e.g. reserved_huge_pages = node:0,size:4,count:2816000 reserved_huge_pages = node:0,size:1048576,count:1 reserved_huge_pages = node:1,size:4,count:512000 reserved_huge_pages = node:1,size:1048576,count:1 - set 4K page reserve based on platform_reserved_mib - set 2M or 1G page reserve based on vswitch hugepages allocation reserved_host_memory: overall host memory reserved used by placement service. Includes both vswitch huge pages and platform reserved. Story: 2003909 Task: 34262 Change-Id: I70ea22cb05e8a9ac0ba9e9d149a78d58d40f8f77 Signed-off-by: Gerry Kopec <gerry.kopec@windriver.com>
This commit is contained in:
parent
dd7ff62936
commit
177469ce6d
|
@ -438,6 +438,29 @@ class NovaHelm(openstack.OpenstackBaseHelm):
|
|||
address_pool = self.dbapi.address_pool_get(cluster_host_network.pool_uuid)
|
||||
return '%s/%s' % (str(address_pool.network), str(address_pool.prefix))
|
||||
|
||||
def _update_reserved_memory(self, host, default_config):
|
||||
host_memory = self.dbapi.imemory_get_by_ihost(host.id)
|
||||
reserved_pages = []
|
||||
reserved_host_memory = 0
|
||||
for cell in host_memory:
|
||||
reserved_4K_pages = 'node:%d,size:4,count:%d' % (
|
||||
cell.numa_node,
|
||||
cell.platform_reserved_mib*constants.NUM_4K_PER_MiB)
|
||||
reserved_pages.append(reserved_4K_pages)
|
||||
# vswitch pages will be either 2M or 1G
|
||||
reserved_vswitch_pages = 'node:%d,size:%d,count:%d' % (cell.numa_node,
|
||||
cell.vswitch_hugepages_size_mib*constants.Ki,
|
||||
cell.vswitch_hugepages_nr)
|
||||
reserved_pages.append(reserved_vswitch_pages)
|
||||
reserved_host_memory += cell.platform_reserved_mib
|
||||
reserved_host_memory += cell.vswitch_hugepages_size_mib * cell.vswitch_hugepages_nr
|
||||
|
||||
multistring = self._oslo_multistring_override(
|
||||
name='reserved_huge_pages', values=reserved_pages)
|
||||
if multistring is not None:
|
||||
default_config.update(multistring)
|
||||
default_config.update({'reserved_host_memory_mb': reserved_host_memory})
|
||||
|
||||
def _get_per_host_overrides(self):
|
||||
host_list = []
|
||||
hosts = self.dbapi.ihost_get_list()
|
||||
|
@ -457,6 +480,7 @@ class NovaHelm(openstack.OpenstackBaseHelm):
|
|||
self._update_host_addresses(host, default_config, vnc_config,
|
||||
libvirt_config)
|
||||
self._update_host_pci_whitelist(host, pci_config)
|
||||
self._update_reserved_memory(host, default_config)
|
||||
host_nova = {
|
||||
'name': hostname,
|
||||
'conf': {
|
||||
|
|
Loading…
Reference in New Issue