Periodic update of DNS entries.
The new DNS mechanism to resolve instance names on private network with multi hosted mode doesn't scale. This patch add the possibility to update the DNS entries periodically on each network host in addition to fanout cast each time the DNS entries need to be updated. DocImpact: new config options Fixes LP bug #1086026 Change-Id: I59094a29c9f5010f5e55a6f11160263337b058b2
This commit is contained in:
parent
32eb83be79
commit
ae3bb03699
@ -920,6 +920,15 @@
|
||||
# l3_lib=nova.network.l3.LinuxNetL3
|
||||
#### (StrOpt) Indicates underlying L3 management library
|
||||
|
||||
# update_dns_entries=false
|
||||
#### (BoolOpt) If True, when a DNS entry must be updated, it sends a fanout
|
||||
#### cast to all network hosts to update their DNS entries in multi
|
||||
#### host mode
|
||||
|
||||
# dns_update_periodic_interval=-1
|
||||
#### (IntOpt) Number of periodic scheduler ticks to wait between runs of
|
||||
#### updates to DNS entries
|
||||
|
||||
|
||||
######## defined in nova.network.quantumv2.api ########
|
||||
|
||||
|
@ -170,6 +170,10 @@ network_opts = [
|
||||
help='If True, when a DNS entry must be updated, it sends a '
|
||||
'fanout cast to all network hosts to update their DNS '
|
||||
'entries in multi host mode'),
|
||||
cfg.IntOpt("dns_update_periodic_interval",
|
||||
default=-1,
|
||||
help='Number of periodic scheduler ticks to wait between '
|
||||
'runs of updates to DNS entries.'),
|
||||
cfg.StrOpt('dhcp_domain',
|
||||
default='novalocal',
|
||||
help='domain to use for building the hostnames'),
|
||||
@ -1943,6 +1947,15 @@ class NetworkManager(manager.SchedulerDependentManager):
|
||||
return self.db.virtual_interface_get_by_address(context,
|
||||
mac_address)
|
||||
|
||||
@manager.periodic_task(
|
||||
ticks_between_runs=CONF.dns_update_periodic_interval)
|
||||
def _periodic_update_dns(self, context):
|
||||
"""Update local DNS entries of all networks on this host"""
|
||||
networks = self.db.network_get_all_by_host(context, self.host)
|
||||
for network in networks:
|
||||
dev = self.driver.get_dev(network)
|
||||
self.driver.update_dns(context, dev, network)
|
||||
|
||||
def update_dns(self, context, network_ids):
|
||||
"""Called when fixed IP is allocated or deallocated"""
|
||||
if CONF.fake_network:
|
||||
|
Loading…
x
Reference in New Issue
Block a user