建立云主机的时候,提示没有找到 valid host。查看日志发现是 Invalid config option |dhcp_subnet_cidr|, value |None|.\n\n']。
觉得很奇怪啊,明明在nova.conf里面配置了相关的字段
## network ##
dhcp_subnet = true
dhcp_subnet_cidr = 1:192.168.138.0/24
dhcp_subnet_start =1:192.168.138.10
使用nova manage命令后发现
root@debian228:/data/log/nova# nova-manage network list
id IPv4 IPv6 start address DNS1 DNS2 VlanID project uuid
2 192.168.138.0/24 None 192.168.138.2 8.8.4.4 None None None fa840d15-7c1d-4bd2-ade2-0bad1719b2fe
这个id竟然是2
以前一直不知道 dhcp前面那个 1:xxx中的1表示什么意思,现在才发现原来就是network的id。
出现这个问题是由于我一开始建立了一个固定ip段,发现错了,又删除了这个ip段,导致现在这个ip端的id为2!
在usr/lib/python2.7/dist-packages/nova/network/manager.py中,
try:
if network['cidr']:
address = kwargs.get('address', None)
if address:
address = self.db.fixed_ip_associate(context,
address,
instance_id,
network['id'])
else:
if CONF.dhcp_subnet:
subnet_cidr = CONF.dhcp_subnet_cidr.get(
str(network['id']))
subnet_start = CONF.dhcp_subnet_start.get(
str(network['id']))
# NOTE(stanzgy): ensure the dhcp subnet configs are
# valid.
try:
netaddr.IPNetwork(subnet_cidr)
except Exception:
raise exception.InvalidConfig(
key='dhcp_subnet_cidr',
value=str(subnet_cidr))
也可以发现是根据这个id来查找network的