lynnkong 发表于 2012-12-12 23:05:42

Quantum关于network的操作(LinuxBridge)

<div id="cnblogs_post_body">Quantum关于network的操作(LinuxBridge)

1      创建network

1.1    入口

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

http://dl.iteye.com/upload/attachment/0075/4700/350ea0a5-1565-3085-859d-63abce4f2d64.png

以创建network为例,在quantum/api/v2/base.py的Controller类中的create函数中:
action = "create_%s" % self._resource

http://dl.iteye.com/upload/attachment/0075/4702/1d15f52f-a5ed-37b6-9d18-8908e152a099.png

本文以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)。类的继承关系如下:
http://dl.iteye.com/upload/attachment/0075/4704/950da868-c7c4-336a-97ab-6e47c0becd33.png


1.2    LinuxBridge插件初始化

http://dl.iteye.com/upload/attachment/0075/4706/4633d84d-e8cc-36cf-9129-901ec9ea856e.png


1.3    流程

http://dl.iteye.com/upload/attachment/0075/4708/a47c6e27-2b40-31ad-95fe-d960ca35b665.png


1.4    总结

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

2.1    流程

http://dl.iteye.com/upload/attachment/0075/4710/8097def7-4f5c-32ac-aa8e-174a6ab39e32.png


3      更新network

3.1    流程

http://dl.iteye.com/upload/attachment/0075/4712/f7489553-5b2e-3ce5-9b55-2381d40b4081.png

4      总结

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