- 1、本文档共5页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
OpenStack Neutron中的ML2 Plugin
本文包含两部分内容:ML2Plugin Port Binding 1、 ML2 Plugin 既实现了核心资源,也包括了port binding等部分扩展资源。它完成了网络拓扑类型与底层虚拟网络实现的解耦,分别通过Type Manager,Mechanism Manager管理Type Driver、Mechanism Driver去实现。2、ML2 Plugin的源码结构中比较关键的文件为: plugin.py ?类ML2Plugin的实现?manager.py,定义了Type Manager,Mechanism Manager类的实现。 drivers.py,定义了Type Driver、Mechanism Driver的实现。3、类ML2Plugin?ML2Plugin继承自众多Mixin(Mixin是JavaScript中用的最普遍的模式,几乎所有流行类库都会有Mixin的实现。可以就任意一个对象的全部或部分属性拷贝到另一个对象上。),其主要作用是完成一些数据库操作,致力于正确有效地管理三种核心资源极其相互关系,同时正确地和Agent交互,从而完成虚拟网络部署。??ML2除了三种核心资源外,也支持许多扩展资源。类ML2Plugin需要实现这些资源的操作接口,供Controller调用。3.1、创建一个网络 当需要创建一个(核心资源)网络时,可以执行Neutron的客户端创建命令,该命令经过路由以后,最终由Plugin的create_network()函数完成。 该函数取出传递进来的参数,ML2Plugin类完成数据库模型的创建,然后通过Type Manager调用Type Driver的接口;通过Mechanism?Manager先后调用调用Mechanism?Driver的precommit、postcommit接口;3.2 关于概念segment的说明 可理解为对物理网络一部分的描述,比如众多VLAN中的一个VLAN可以理解为一个segment。segment有类型、物理网络,segment_ID三个标记。3.3 关于概念provider的说明 provider用于在创建虚拟网络时指定这个虚拟网络所占用的物理网络资源。其有对应的Provider Extension API。?当一个虚拟网络可以包括多个不同的provider network时,这个虚拟网络就称为Multi-Segment Network。4 、Type Manager,Mechanism Manager 负责加载对应的Driver,并将具体的操作分发到具体的Driver上,同时也提供一些Driver通用的代码。 Type Manager在初始化时,会加载对应的Type Driver,二者共同提供了对segment的各种操作,包括存储、验证、分配和回收等。 在创建network的时候,会从传递的参数中提取出segment的信息,并将其传向type manager。type manager会从参数中提取出的相关信息建立一个segment结构,然后告诉typer driver保留这个segment。 Mechanism Manager提供两个结构,其中precommit接口在数据库session时调用,而postcommit在数据库提交完成时调用。Mechanism Manager分发操作并具体传递操作到Mechanism Driver的方式与Type Manager相同。由于Mechanism Driver对应的是具体的物理实现方式,故而需要Mechanism Driver处理的操作都会按照配置的顺序依次调用每一个具体的Driver对应的函数来完成。5、type Driver?其主要功能是管理网络segment,对segment进行验证、分配和释放等。分为Flat type Driver、Tunnel??type Driver、VLAN??type Driver。?对Flat type Driver来说,segment的分配很简单。只需将Type Manager传递过来的segment保存在数据库即可。 VXLAN、GRE都是使用Tunnel??type Driver。其引入了TunnelTypeDriver类,实现了Type Driver要求的接口外,还实现了与Agent的接口。?VLAN??Type Driver必须指定PHYSICAL_NETWORK。6、Mechanism Driver分为一些针对采用了Agent实现虚拟网络的Driver和其他Driver。前者没有去实现MechanismDriver的类,而是引入了一个新类AgentMechanismDriverBase类,主要做Port Binding相关的处理。二、port binding
您可能关注的文档
最近下载
- 2024年4月广东深圳市光明区马田街道办事处招聘一般专干及笔试历年典型考题及考点剖析附答案带详解.docx
- 文秘技能大赛题库完整.pdf
- 建筑工程图集 07SJ504-1 隔断、隔断墙(一).pdf
- 班级管理方案和班委职责与班级管理条例(范本)合集.doc VIP
- 2025年广东省高中语文学业水平合格考试卷试题(含答案详解).pdf VIP
- 金融监管学银行监管讲义课件.pptx
- 高中体育与健康_篮球 传切配合 教学课件设计.ppt
- 二 《简单相信,傻傻坚持》(教学课件)-【中职专用】高二语文精讲课堂(高教版2023·职业模块).pptx VIP
- 人教版《劳动教育》九年级 劳动项目二《三餐有营养》课件.pptx
- 2024年中考语文一轮复习(全国)(老师用)议论文写作(练习).pdf VIP
文档评论(0)