在使用quantum創建network的時報如下錯誤
quantum net-create --shared ext_net --provider:network_type vlan --provider:physical_network physnet1 --provider:segmentation_id 1104
Invalid input for operation: Unknown provider:physical_network physnet1
我采用的是linuxbridge方式:
/etc/quantum/plugins/linuxbridge# ls /etc/quantum/plugins/linuxbridge/linuxbridge_conf.ini中VLAN部分如下:
tenant_network_type = vlan
network_vlan_ranges = physnet1:1000:2999
按理說應該沒問題的
查看下/var/log/quantum/server.log, 發現:
Traceback (most recent call last):
File "/usr/lib/python2.7/dist-packages/quantum/api/v2/resource.py", line 82, in resource
result = method(request=request, **args)
File "/usr/lib/python2.7/dist-packages/quantum/api/v2/base.py", line 369, in create
obj = obj_creator(request.context, **kwargs)
File "/usr/lib/python2.7/dist-packages/quantum/plugins/linuxbridge/lb_quantum_plugin.py", line 393, in create_network
network['network'])
File "/usr/lib/python2.7/dist-packages/quantum/plugins/linuxbridge/lb_quantum_plugin.py", line 362, in _process_provider_create
raise q_exc.InvalidInput(error_message=msg)
InvalidInput: Invalid input for operation: Unknown provider:physical_network physnet1:.
打開文件/usr/lib/python2.7/dist-packages/quantum/plugins/linuxbridge/lb_quantum_plugin.py找到362行處
if network_type in [constants.TYPE_VLAN, constants.TYPE_FLAT]:
if physical_network_set:
if physical_network not in self.network_vlan_ranges:
msg = (_("Unknown provider:physical_network %s:") %
physical_network)
raise q_exc.InvalidInput(error_message=msg)
elif 'default' in self.network_vlan_ranges:
physical_network = 'default'
else:
msg = _("provider:physical_network required")
raise q_exc.InvalidInput(error_message=msg)
return (network_type, physical_network, segmentation_id)
顯然physical_network not in self.network_vlan_ranges判斷結果是False。
於是,在這里加入代碼把self.network_vlan_ranges打出來(這里改完代碼以后要重啟所有quantum服務)
打出來結果為空,
重新檢查
/etc/quantum/plugins/linuxbridge# ls /etc/quantum/plugins/linuxbridge/linuxbridge_conf.ini
沒有問題
於是,打開debug模式
/etc/quantum/quantum.conf
debug=True
再次運行quantum net-create --shared ext_net --provider:network_type vlan --provider:physical_network physnet1 --provider:segmentation_id 1104
查看server.log, 發現:
2013-11-10 13:07:07 DEBUG [quantum.service] VLANS.network_vlan_ranges = []
2013-11-10 13:07:07 DEBUG [quantum.service] VLANS.tenant_network_type = local
顯然,quantum讀到的配置有問題,接着往上找,發現:
2013-11-10 13:07:07 DEBUG [quantum.service] config_file = ['/etc/quantum/quantum.conf', '/etc/quantum/plugins/openvswitch/ovs_quantum_plugin.ini']
原來問題在這里。
因為之前用過openswitch,默認使用的plugin配置文件就是ovs的那個了。
配置在這里:
vi /etc/default/quantum-server
# defaults for quantum-server
# path to config file corresponding to the core_plugin specified in
# quantum.conf
QUANTUM_PLUGIN_CONFIG="/etc/quantum/plugins/linuxbridge/linuxbridge_conf.ini"