openstack neutron网络模块分析(一)---- neutron-server启动

本文详细分析了OpenStack Neutron Server的启动流程,包括预备知识如WSGI、PASTE和Webob,以及架构功能划分。Neutron-server作为主要服务进程,负责RESTful API请求。Neutron API分为核心资源和扩展资源,Plugin由Core Plugins(如ML2 Plugin)和服务Plugins组成。文章还介绍了Message Queque、Agent的角色,并对Neutron-server的启动、APIRouter的工作原理进行了初步探讨。
摘要由CSDN通过智能技术生成

neutron-server 启动流程

环境:ocata版本,centos7

预备知识:

WSGI:一个可以在python web服务中可以广泛使用的API
PASTE:Paste Deployment用于发现和配置WSGI Application和Server,有了Paste Deployment,WSGI applications只需向其用户提供一个单独的入口loadapp函数,然后用户调用这个函数 就可以使用已经开发好的WSGI application,同时,由于只提供了一个入口,WSGI的开发者 也不再需要将App的具体实现暴露给用户,大大简化了整个开发过程。
Webob:提供了一系列的装饰器来将函数包装成WSGI应用。

架构功能划分


这张图片只是讲述了整体的框架

整体分析:
1)位于最上层的Neutron server负责接收来自外部服务的RESTful API请求
2)位于中间的Neutron plugin负责传达指令
3)位于下层的Neutron agent 负责执行具体任务和操作

组件图

图片来源于网络

框架分析

Neutron-server

Neutron只有一个主要的服务进程neutron-server,它运行在网络控制节点提供RESTfulAPI作为访问Neutron的入口。Neutron-server接收到的用户HTTP请求最终由遍布于计算节点和网络节点的各种agent来完成。
主要代码:/neutron/server

Neutron API

Neutron将基于各种虚拟网络资源得到的API资源分成核心资源(Core API)和扩展资源(Exten API)两种,Core API只对应于L2层的network、subnet、port、subnetpool四种抽象资源,其余的各层抽象都属于Exten API的范围。
代码目录:/neutron/api目录

Neutron Plugin

有core plugins 和service pulgins组成。

Core plugins:

提供基础二层网络虚拟网络支持,只要是ML2 plugin,
ML2 plugin不仅实现了network/subnet/port/subnetpool这四个核心资源和包括port binding等在内的部分扩展资源。还实现了网络拓扑类型(Flat、VLAN、VXLAN、GRE)和底层虚拟网络(Linux bridge、Open vSwitch)分离的机制。并分别通过Driver的形式扩展。其中,不同的网络拓扑类型对应着type dirver,由type manager 管理,不同的网络实现机制对应着Machansim Driver,有Mechanism Manager管理。
代码目录:neutron/plugins

Service plugin :

实现除network/subnet/port/subnetpool以外的资源。如FWaas、LBaas、VPNaas等高级服务。
代码目录:neutron/services

Message Queque

使用MessageQueque的一个模块Oslo.Messaging,Oslo.Messaging支持的MQ组件有Rabb

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值