本节开始讨论 Neutron 的各个服务组件,首先学习 Neutron Server 。

上图是 Neutron Server 的分层结构,至上而下依次为:
Core API
对外提供管理 network, subnet 和 port 的 RESTful API。
Extension API
对外提供管理 router, load balance, firewall 等资源 的 RESTful API。
Commnon Service
认证和校验 API 请求。
Neutron Core
Neutron server 的核心处理程序,通过调用相应的 Plugin 处理请求。
Core Plugin API
定义了 Core Plgin 的抽象功能集合,Neutron Core 通过该 API 调用相应的 Core Plgin。
Extension Plugin API
定义了 Service Plgin 的抽象功能集合,Neutron Core 通过该 API 调用相应的 Service Plgin。
Core Plugin
实现了 Core Plugin API,在数据库中维护 network, subnet 和 port 的状态,并负责调用相应的 agent 在 network provider 上执行相关操作,比如创建 network。
Service Plugin
实现了 Extension Plugin API,在数据库中维护 router, load balance, security group 等资源的状态,并负责调用相应的 agent 在 network provider 上执行相关操作,比如创建 router。
归纳起来,Neutron Server 包括两部分:
1. 提供 API 服务。
2. 运行 Plugin。
即 Neutron Server = API + Plugins

明白了 Neutron Server 的分层模型,我们就更容易理解 Neutron 是如何支持各种 network provider。
这一点我们放到下节详细讨论。
NeutronServer架构解析
本文介绍了OpenStack Neutron项目的NeutronServer组件结构。NeutronServer分为两大部分:API服务和Plugin运行。它提供了用于管理网络资源如networks、subnets和ports的CoreAPI,以及用于管理高级网络服务如routers、loadbalancers和firewalls的ExtensionAPI。
2067

被折叠的 条评论
为什么被折叠?



