漫谈Neutron 的构架

  • 栏目:行业动态 时间:2021-03-08 22:16 分享新闻到:
<返回列表


漫谈Neutron 的构架


漫谈Neutron 的构架 Neutron中除work、port、sub这3种2层的关键資源外,别的的都被做为Extension API开展完成,伴随着ML2的完善和发展趋势,Extension API 的完成演化为两种方法,1种是完成在某个Core plugin内,例如ML2内的port binding、Security Group等。

1.序言

因为OpenStack Neutron新项目自身的高宽比繁杂性和抽象性性,加上做为1名初学者,其了解工作能力比较有限。因而这里,论述的仅是微乎其微罢了,其目地是协助、正确引导和我1样对Neutron又敬又畏的盆友们!假如本文中出現纰漏和不正确,恳请纠正。接纳文化教育,自身也是1种学习培训。

在这里,必须指出的是,本文仅从宏观经济角度而言,起1个正确引导、毛遂自荐的功效。

即完成Neutron的总体基本原理是甚么。

2.Neutron构架

Neutron新项目共由约1千好几个文档组成(k版)。

# tree -l 1 neutron/

313 directories, 1224 files

1切,让大家先从Neutron构架图说起走吧,以下所示:

剖析

1)坐落于最顶层的Neutron Server当做1个师门中的 掌门人 人物角色(RESTful Server),负责接纳来自外界师门(服务)的API恳求,例如Nova API建立互联网的恳求。

2)坐落于正中间层的Neutron plugin当做1个师门中的 信使 人物角色,负责传递最高层命令给下面的人。

3)坐落于下层的Neutron Agent当做1个师门中 干活 人物角色,负责实行1些实际的每日任务和实际操作。

相近于各个测算、储存连接点被虚似化为测算、储存資源池,Openstack所属的全部物理学互联网在Neutron中也被虚似化为互联网資源池。根据对互联网資源的区划和可拓展性,Neutron可以为每一个租户出示单独的虚似互联网自然环境。

Neutron各自出示了2层(L2)vSwitch互换和3层(L3)Router路由器抽象性的作用,对应于物理学互联网自然环境中的互换机和路由器器完成。实际完成了以下作用:

lRouter:为租户出示路由器、NAT等服务。

lNetwork:对应于1个真正物理学互联网中的2层局域网(VLAN),从租户的的角度而言,是租户独享的。

lSub:为互联网中的3层定义,特定1段IPV4或IPV6详细地址并叙述其有关的配备信息内容。它额外在1个2层Network上,指明属于这个work的虚似机可以使用的IP详细地址范畴。

1. Linux虚似互联网

Neutron中最为关键的工作中就是对2层物理学互联网work的抽象性与管理方法。

虚似机的互联网作用由虚似网卡(vNIC)出示,Hypervisor能够为每一个虚似机建立1个或好几个vNIC,从虚似机的角度考虑,这些vNIC等同于于物理学的网卡,以便完成与传统式物理学互联网1样的互联网作用,与物理学网卡1样,Switch也被虚似化成虚似互换机(OpenvSwitch),各个vNIC联接在vSwitch的端口号(br-int)上,最终这些vSwitch根据物理学服务器的物理学网卡浏览外界的物理学互联网。

对1个虚似的2层互联网构造而言,关键是进行两种互联网机器设备的虚似化,即物理学网卡和互换机器设备。在Linux自然环境下互联网机器设备的虚似化关键有下列几种方式:

1)TAP/TUN/VETH

提到Neutron的虚似互联网作用完成,迫不得已先提根据Linux核心级的虚似机器设备。

TAP/TUN/VETH是Linux核心完成的1对虚似互联网机器设备,TAP工作中在2层,收发的是 MAC 层数据信息帧;TUN工作中在3层,收发的是 IP 层数据信息包。Linux 核心根据TAP/TUN机器设备向关联该机器设备的客户程序流程推送数据信息,反之,客户程序流程还可以像实际操作硬件配置互联网机器设备1样,根据TAP/TUN机器设备接受数据信息。

根据TAP机器设备,完成的是虚似网卡的作用,当1个TAP机器设备被建立时,在Linux的机器设备文档文件目录下可能转化成1个对应的标识符机器设备文档(/dev/tapX文档),而运作其上的客户程序流程即可以像应用一般文档1样开启这个文档开展读写能力。

VETH机器设备一直成对出現的,接受数据信息的1端会从另外一端推送出去,了解为1根虚似的网线便可。

2)Linux Bridge

Linux Bridge(Linux核心完成的网桥)是工作中在2层的虚似互联网机器设备,作用相近于物理学的互换机。

它的完成基本原理是,根据将别的Linux互联网机器设备关联到本身的Bridge上,并将这些机器设备虚似化为端口号。为何大家早已有了OVS,还要有Linux Bridge 呢?这是由于Linux Bridge完成了qbrxxx机器设备,出示了OVS没法适用的安全性组(Security Group)作用。

3)Open vSwitch

针对中的虚似互联网而言,互换机器设备的虚似化是很重要的1环,vSwitch负责联接vNIC与物理学网卡,另外也桥接同1物理学服务器内的各个VM的vNIC。

因而,大家能够像配备物理学互换机1样,将接入到OpenvSwitch(必须指出的是在好几个以上时,vSwitch是遍布式虚似互换机)上的各个VM分派到不一样的VLAN中完成互联网防护,而且,大家还可以在OVS端口号上为VM配备QOS,另外OVS也适用包含NetFlow、sFlow等规范的管理方法插口合谐议。从而,根据这些插口能够完成VM总流量监管的每日任务。

运作在云自然环境中各种各样或同样虚似化服务平台上的好几个vSwitch完成了遍布式构架的虚似互换机。1个物理学服务器上的vSwitch能够全透明的与别的服务器上的vSwitch联接通讯。

有关OVS更为详尽的內容,请参考别的材料。

2.Neutron RPC

RPC是neutron中跨控制模块开展方式启用的很关键的1种方法,关键包含client端和server端。client端用于传出rpc信息,server端用于监视信息并开展相应解决。

1)Agent 端RPC

在dhcp agent、 l3 agent、 firewall agent和metering agent的main涵数中都能寻找相近的建立1个Agent rpc服务端编码。

2)plugin端rpc

3)neutron-server端rpc

实际的RPC完成,请参考源码和别的材料。

3.Neutron 虚似互联网

1.Neutron互联网資源 

根据对上面的掌握,大家早已了解了Neutron根据L3虚似的Router出示路由器器作用,根据L2(2层)虚似的work/sub/port 出示物理学2层互联网的作用,而且其2层work各自由linux bridge和OpenvSwitch等相互完成。

在L2中,Neutron还出示了1个关键的互联网資源抽象性Port,其做为虚似互换机上的1个虚似端口号。当1个port被建立时,默认设置状况下,会为它分派其特定sub中能用的IP。

针对L2层虚似work而言,Linux bridge 和OpenvSwitch只是完成了虚似互联网的最底层体制,其实不能意味着物理学互联网的拓扑种类。而现阶段,neutron适用以下的互联网种类来投射到真实的物理学互联网中:

lFlat

lVLAN

lGRE

lVXLAN

除上述的L2和L3层虚似資源外,Neutron还出示了更高层级的1些服务,关键有FWaaS、LBaaS和VPNaaS等。

2. Neutron Plugin

与别的新项目服务不一样,Neutron仅有1个关键的服务过程neutron-server,它运作于互联网操纵连接点上,出示RESTful API做为浏览Neutron的通道,neutron-server接受到的客户HTTP恳求最后由遍及于测算连接点和互联网连接点上的各种各样agent来进行。

Neutron出示的诸多API資源对应了前面所讲的各种各样虚似互联网資源。在其中L2的抽象性work/sub/port能够被觉得是关键資源API(Core API),别的层级的抽象性,包含router和诸多的高层级服务则是拓展資源API(Extension API)。

以便更非常容易的开展拓展,Neutron新项目运用Plugin的方法机构编码,每个Plugin适用1组API資源并进行特殊的实际操作,这些实际操作最后由Plugin根据RPC启用相应的Agent来进行。

这些Plugin又被做了1些区别,1些出示基本2层虚似互联网适用的Plugin称为Core Plugin。而Core Plugin以外的别的Plugin则被称为Service Plugin,例如出示防火墙服务的FWaaS等。

Agent1般专属于某个作用,用于应用物理学互联网机器设备或1些虚似化技术性来进行一些具体的实际操作,例如完成router实际实际操作的L3 agent。

由于各种各样Core Plugin的完成之间存在许多反复的编码,例如对数据信息库的CRUD等实际操作。自H版起,Neutron完成了1个ML2 Core Plugin,它选用了更为灵便的构造开展完成,根据Driver的方式对现有的各种各样Core Plugin出示适用,因而能够说ML2 Plugin的问世意在替代现阶段的Core Plugin。

3. Neutron API

Neutron将根据各种各样虚似互联网資源获得的API資源分成关键資源(Core API)和拓展資源(Exten API)两种。Core API只对应于L2层的work/sub/port3种抽象性。其余的各层抽象性都属于Extension API的范畴。

Neutron API完成的关键编码坐落于/neutron/api文件目录。

4. Neutron-server

做为Neutron中的唯11个服务过程,neutron-server担负着接受客户RESTful API恳求并派发解决的每日任务。

关键编码坐落于neutron/services文件目录。

5. ML2 plugin 

ML2 plugin被小区提出来的目地是用于替代全部的Core Plugin,它选用了更为灵便的构造开展完成。做为1个Core plugin,ML2 当然会完成work/sub/port这3种关键資源,另外它也完成了包含Port Binding等在内的一部分拓展資源。

ML2完成了互联网拓扑种类(Flat、VLAN、VXLAN、GRE)和最底层虚似互联网(linux bridge、OVS)分离出来的体制,并各自根据Driver的方式开展拓展。在其中,不一样的互联网拓扑种类对应着type driver,由type manager管理方法,不一样的互联网完成体制对应着Mechanism Driver(例如Linux bridge、OVS、NSX等),由Mechanism Manager管理方法。

详细信息,请参考neutron.plugins.ml2.drivers.mech_agent文档中的AgentMechanismDriverBase类。

6. Port Binding拓展

Extension API有两种方法拓展现有的資源:1种是为work/port/sub提升特性,例如port binding拓展。此外1种便是提升1些新的資源,例如VPNaaS等。

Extension API的界定都坐落于neutron/extension文件目录,她们的基类和1些公共的编码则坐落于neutron/api/extension.py文档。在其中Extension Descriptor类是全部Extension API的基类。加上新的資源时必须完成get_resources( )方式,而拓展现有的資源时,则只必须完成get_extended_resources( ) 方式。

7.OpenvSwitch Agent 

ML2 Plugin的关键工作中是管理方法虚似互联网資源,确保数据信息正确无误,实际物理学机器设备的设定则由Agent来进行,这里大家宏观经济论述下Neutron新项目中的OVS Agent。

根据Plugin rpc出示的信息内容,OVS Agent负责在测算连接点和互联网连接点上,根据对OVS虚似互换机的管理方法将1个Network投射到物理学互联网,这必须OVS Agent去实行1些linux 互联网和OVS有关的配备与实际操作,Neutron根据以下两个库出示了最为基本的实际操作插口,从而能够根据Linux Shell指令进行OVS的配备。

以下:

lovs_lib.py

根据shell实行各种各样ovs-vsctl实际操作。

编码文件目录:neutron/agent/mon

lip_lib.py

根据linux的br-ctl指令实际操作Linux的veth、router、namespace等。

编码文件目录:neutron/agent/linux/

关键是进行以下的1些工作中:

1)agent原始化

2)agent和Plugin RPC的通讯

3)br-int建立与原始化

4)br-eth原始化

5)br-tun原始化

6)建立Tunnel Port

7)分派LVID(Local VLAN ID)

8)L2 population

8. Service plugin

Neutron中除work、port、sub这3种2层的关键資源外,别的的都被做为Extension API开展完成,伴随着ML2的完善和发展趋势,Extension API 的完成演化为两种方法,1种是完成在某个Core plugin内,例如ML2内的port binding、Security Group等。

另外一种便是应用Service plugin的方法,去完成FWaaS、LBaaS、VPNaaS等高級服务。

编码文件目录:neutron/services

至此,大家早已从宏观经济上了解了Neutron的构架,接下来的则是自身独特了。

下1篇,大家将共享《漫谈Neutron的那些sdn事情》。

本人简介

徐超:就职于9州云信息内容高新科技比较有限企业(上海市),从业OpenStack有关工作中。本人趋向于科学研究CI-CT-CD-CD。


云资讯 聊聊Neutron的那些SDN事情 这里,大家将简练浅析OpenStack Neutron中的那些前沿技术性,或说是是非非流行技术性,从某种角度而言,它们意味着了虚似互联网服务的1些发展趋势发展趋势。
云资讯 OpenStack Neutron互联网剖析 实际上,姑且抛开实际细节不谈,从全局性和宏观经济上了解Neutron的全部运作步骤,也是不繁杂、抽象性的。
云资讯 Neutron和SDN集成化现况剖析 从全新的Neutron编码中,早已发现了诸如原先的opendaylight和别的1些SDN Plugin,早已刚开始从新项目中移除,统1取名为诸如working-xxxx之类的单独新项目。
分享新闻到:

更多阅读

漫谈Neutron 的构架

行业动态 2021-03-08
漫谈Neutron 的构架Neutron中除work、port、sub这3种2层的关键資源外,别的的都被做为Extension API开展...
查看全文

公示:武林日常生活商圈O2O重磅上线!

行业动态 2021-03-08
短视頻,自新闻媒体,达人种草1站服务千呼万唤始出来,不抱琵笆不遮面!武林日常生活商圈...
查看全文

维护公司数据信息隐私保护需有效储存处

行业动态 2021-03-08
在以往1年中,因为很多公布公布的的数据信息泄漏恶性事件,很多公司的首席信息内容官/首席...
查看全文
返回全部新闻


区域站点: 南丰县微信卖货小程序   南宫市微信开发小程序   囊谦县小程序怎样制作   南和县小程序生成平台   南华县微信卖货小程序   南江县微信开发小程序   南京市小程序怎样制作   南靖县小程序生成平台   南康市微信卖货小程序   南乐县微信开发小程序   南陵县小程序怎样制作   南宁市小程序生成平台   南平市微信卖货小程序   南皮县微信开发小程序   南市区小程序怎样制作   南通市小程序生成平台   南投县微信卖货小程序   南雄市微信开发小程序   南溪县小程序怎样制作   南阳市小程序生成平台   南漳县微信卖货小程序   南召县微信开发小程序   南郑县小程序怎样制作   那坡县小程序生成平台   那曲县微信卖货小程序   纳雍县微信开发小程序   讷河市小程序怎样制作   内黄县小程序生成平台   内江市微信卖货小程序   内丘县微信开发小程序   内乡县小程序怎样制作   嫩江市小程序生成平台   聂荣县微信卖货小程序   尼玛县微信开发小程序   尼木县小程序怎样制作   宁安市小程序生成平台   宁波市微信卖货小程序   宁城县微信开发小程序   宁德市小程序怎样制作   宁都县小程序生成平台   宁国市微信卖货小程序   宁海县微信开发小程序   宁化县小程序怎样制作   宁晋县小程序生成平台   宁陵县微信卖货小程序   宁明县微信开发小程序   宁南县小程序怎样制作   宁强县小程序生成平台   宁陕县微信卖货小程序   宁武县微信开发小程序   宁乡市小程序怎样制作   宁阳县小程序生成平台   宁远县微信卖货小程序   农安县微信开发小程序   磐安县小程序怎样制作   盘锦市小程序生成平台   盘山县微信卖货小程序   磐石市微信开发小程序   盘州市小程序怎样制作   蓬安县小程序生成平台   澎湖县微信卖货小程序   蓬莱市微信开发小程序   彭山县小程序怎样制作   蓬溪县小程序生成平台   彭阳县微信卖货小程序   彭泽县微信开发小程序   彭州市小程序怎样制作   偏关县小程序生成平台   平安县微信卖货小程序   平昌县微信开发小程序   平定县小程序怎样制作   屏东县小程序生成平台   平度市微信卖货小程序   平果县微信开发小程序   平和县小程序怎样制作   平湖市小程序生成平台   平江县微信卖货小程序   平乐县微信开发小程序   平凉市小程序怎样制作   平利县小程序生成平台   平罗县微信卖货小程序   平陆县微信开发小程序   屏南县小程序怎样制作   平泉市小程序生成平台   屏山县微信卖货小程序   平顺县微信开发小程序   平塘县小程序怎样制作   平潭县小程序生成平台   平武县微信卖货小程序   萍乡市微信开发小程序   平乡县小程序怎样制作   平阳县小程序生成平台   平遥县微信卖货小程序   平阴县微信开发小程序   平邑县小程序怎样制作   平远县小程序生成平台   平舆县微信卖货小程序   皮山县微信开发小程序   普安县小程序怎样制作   浦北县小程序生成平台   浦城县微信卖货小程序   普洱市微信开发小程序   普格县小程序怎样制作   浦江县小程序生成平台   普兰县微信卖货小程序   普宁市微信开发小程序   莆田市小程序怎样制作   迁安市小程序生成平台   乾安县微信卖货小程序   潜江市微信开发小程序   潜山市小程序怎样制作  

友情链接: 微信小程序案例 小程序界面模板 如何制作微信小程 抽奖小程序 手机版 装修知识 软件下载 果树种植 深圳新闻 教育系统 小程序制作

Copyright © 2002-2020 小程序怎样制作_小程序生成平台_微信卖货小程序_微信开发小程序_小程序制作流程及费用 版权所有 (网站地图) 备案号:粤ICP备10235580号