【openstack】Quantum关于network的操作(LinuxBridge)

Quantum关于network的操作(LinuxBridge)

1创建network

1.1入口

由前几篇文档可知,对资源的处理都在Mapper对应的Controller中:


【openstack】Quantum关于network的操作(LinuxBridge)

以创建network为例,在quantum/api/v2/base.py的Controller类中的create函数中:

action ="create_%s"%self._resource


【openstack】Quantum关于network的操作(LinuxBridge)

本文以linuxbridge插件为例,所以代码中的self._plugin=quantum/plugin/linuxbridge/lb_quantum_plugin.py/LinuxBridgePluginV2

(需要注意的是,该类继承自quantum/db/db_base_plugin_v2.py/QuantumDbPluginV2和quantum/db/l3_db.py/L3_NAT_db_mixin)。类的继承关系如下:


【openstack】Quantum关于network的操作(LinuxBridge)

1.2LinuxBridge插件初始化


【openstack】Quantum关于network的操作(LinuxBridge)

1.3流程


【openstack】Quantum关于network的操作(LinuxBridge)

1.4总结

由上述分析,创建网络,只是在逻辑上创建,不涉及底层,但需要在数据库中记录逻辑网络与物理网络的对应关系,物理网络的信息体现在配置文件中。

2删除network

2.1流程


【openstack】Quantum关于network的操作(LinuxBridge)

3更新network

3.1流程


【openstack】Quantum关于network的操作(LinuxBridge)

4总结

个人理解,看待Quantum网络模型时可以从上层的逻辑概念和下层的物理概念区分。有一些概念或对象只在上层关注,下层的agent或物理网络只关心实际的操作和部署。当然,需要上下层配合时,就需要做映射,比如networkbinding表就是用来映射逻辑网络和实际物理网络的关系。