精华内容
下载资源
问答
  • OpenStack架构组成

    2021-02-19 08:27:20
    OpenStack架构组成 OpenStack作为开源、可扩展、富有弹性的云操作系统,其设计规则如下: 按照不同的功能和通用性划分不同项目,拆分子系统 按照功能和通用性划分不同服务,将一个整理功能,拆分为各个子服务/子...

    OpenStack架构组成

    OpenStack作为开源、可扩展、富有弹性的云操作系统,其设计规则如下:

    • 按照不同的功能和通用性划分不同项目,拆分子系统

    按照功能和通用性划分不同服务,将一个整理功能,拆分为各个子服务/子功能,方便管理、排障。并且服务之间相互隔离,只通过API作为统一交互入口相互对接/通讯

    • 按照逻辑计划、规范子系统之间的通信

    API之间进行交互会有特定/通用的方式对不同组件之间的通讯方式进行规范

    各个子功能模块遵循一些规范进行通讯(API、 HTTP)

    • 通过分层设计整个系统架构

    分层思想的连个维度:

    以架构为单位,三层

    1、全局组件 2、辅助组件 3、核心组件

    以单个核心服务/组件进行分层:

    1、API 2、子功能模块 3、其他(rabbitmq)

    组件和组件通讯,内部子功能模块都可以通过消息队列/代理(rabbitmq)进行通讯

    消息代理:作为组件和组件通讯/交互/数据传输的载体

    • 不同的功能子系统间提供统一的API接口

    各组件之间通过统一的API接口进行交互/通讯/数据传输/调用

    OpenStack概念架构

    在这里插入图片描述

    云平台用户在经过Keystone服务认证授权后,通过Horizon或者Reset API模式创建虚拟机服务,创建过程中包括利用Nova服务创建虚拟机实例,虚拟机实例采用Glance提供镜像服务,然后使用Neutron为新建的虚拟机分配IP地址,并将其纳入虚拟网络中,之后在通过Cinder创建的卷为虚拟机挂载存储块,整个过程都在Ceilometer模块资源的监控下,Cinder产生的卷(Volume)和Glance提供的镜像(Image) 可以通过Swift的对象存储机制进行保存。

    以架构维度来看的话:

    以架构为单位

    1.全局组件:

    Keystone:提供认证

    Ceilometer:监控、统计费用

    Horizon:管理实例功能

    2.辅助组件:

    提供了一些必要的管理和资源换服务

    Sahara、heat:大数据方向,用于数据的编排和处理,精细化的管理

    ironic(裸金属、裸机):提供一个可以使用的操作系统 ,管理基础硬件资源

    Trove:管理数据库,存储实例的数据和信息,和各个组件的数据、信息、日志

    3、核心组件

    为实例(虚拟机)服务

    Neutron:网络服务

    Glance:镜像服务

    Swift:对象存储服务

    Cinder:块存储服务

    Nova:收集资源,提供给虚拟机,让Nova支持虚拟机的创建

    OpenStack逻辑架构

    在这里插入图片描述

    • (全局维度)OpenStack包括若个称为OpenStack服务的独立组件。所有服务均可通过一个公共身份服务进行身份验证。除了那些需要管理权限的命令,每个服务之间均可通过公共API进行交互。(或者http方式。比如OpenStack一键装机中Apache承载API。Apache提供了一个展示web页面的方式,并且表示是以HTTP进行通讯)

    安装功能划分不同的服务,并且服务相互独立,只会通过API相互对接。

    组件内部的服务都有一个身份。每个核心组件都会有一个对应的用户进行管理

    各个服务组件通过API进行对接

    • (核心组件维度)每个OpenStack服务又由若干组件组成。包含多个进程。所有服务至少有一一个API进程,用于侦听API请求,对这些请求进行预处理,并将它们传送到该服务的其他组件。除了认证服务,实际工作都是由具体的进程完成的

    各服务之间对接方式是API,是HTTP进行通讯,可以有Rabbitmq进行通讯,也可以直接通过网络通讯

    restful请求:

    外部想请求内部的请求类型。是一种规范。例如:用户和企业之间,用户想要访问企业的页面需要借助网络,而网络之中的通讯,需要有一些标准化的规则

    restful就是一种规范
    规范请求的方式(格式),会进行过滤(filter) ,会进行合法性的验证,然后会对请求的结果进行反馈,比如forbi iden

    API (预处理)
    1、向keystone进行申请认证请求的合法性和权限
    2、下发任务,会根据请求的功能需求,将不同的任务交给不同的组件来完成。统一收集结果和需要的资源,整合在一起,相应请求

    • 至于一个服务的进程之间通信,则使用AMQP消息代理。服务的状态存储在数据库中

    单个服务内部的子功能模块之间的通讯------>AMQP

    这幅图展示的内容:

    1、首先展示了内部核心组件、辅助组件、全局组件

    2、各核心辅助组件之间是怎么对接的

    ​ 通过API,通讯方式可以为消息代理

    3、展示了各组件中,一部分核心的功能模块

    4、展示OpenStack原生架构(基础)

    ​ 第三方功能模块:

    1、可以服务原生架构的组件可以更完善更合理的运行

    2、增加一个功能(原生架构或者不完善的----特定场景)

    OpenStack组件通信关系

    OpenStack内部根据功能可以划分不同的通讯方式

    • 基于AMQP协议的通信

      用于每个项目内部各个组件之间的通信。

    • 基于SQL的通信

      用于各个项目内部的通信。

    • 基于HTTP协议进行通信

      通过各项目的API建立的通信关系,API都是RESTful Web API。

      OpenStack中API是同一个很核心的概念

      restful:是一种交互/通讯的规范

      web:有Apache承载API,Apache提供了一个web展示页面

      API:组件和组件对接的技术(点到点)

      ​ URL—>对接—>URL

      ​ endpoint—>---endpoint(端点)

    • 通过Native API实现通信

      OpenStack各组件和第三方软硬件之间的通信。

      OpenStack和外出组件的通讯方式

    OpenStack物理架构

    在这里插入图片描述

    物理架构中共有4中类型,按照职能划分:控制节点(把控全局)、网络节点(提供OpenStack内部组件/节点通讯)、计算节点(功能创建)、存储节点(存储服务)

    控制节点内用于分发任务,主要管理其他节点。控制节点可以跑实例资源(处理具体任务)

    ​ 支持的服务包含:MySQL、Rabbitmq

    ​ 基础服务包含:keystone、Glance、Nova、Neutron(集中化管理网络服务)、Horizon

    ​ 扩展服务包含(为实例的更好运行提供服务):Cinder、Swift、Trove、Heat、Ceilometer

    ​ 网络类型包含:管理网络。可以通过网卡划分职能的方式管理其他节点

    网络节点内基础服务包含:Neutron(实现网络服务)

    ​ 网络接口类型包含:管理网络(接收控制节点任务调度)、数据网络(数据库服务)、外部网络(外部第三方插件)

    计算节点内基础服务包含:Nova Hypervisor、网络插件代理(OpenStack中通过插件和代理来实现网络二层、三层的具体功能)

    ​ 扩展服务包含:Ceilometer Agent

    ​ 网络接口类型包含:管理网络、数据网络

    存储节点内基础服务包含:Cinder、Swift

    ​ 网络接口类型包含:管理网络、数据网络

    网络节点(Network Node)

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-uXFvRFBw-1613694421958)(C:\Users\朱俊杰\AppData\Roaming\Typora\typora-user-images\image-20210126215650380.png)]提供者网络(Provider networks):

    联网管理
    ML2插件
    Linux网络工具
    Linux Bridge代理
    DHCP代理
    元数据代理(Metadata Agent)

    自服务网络(Self-service networks )

    联网管理
    ML2插件
    Linux网络工具
    Linux Bridge代理
    三层代理(L3 Agent)
    DHCP代理
    者网络(Provider networks):

    联网管理
    ML2插件
    Linux网络工具
    Linux Bridge代理
    DHCP代理
    元数据代理(Metadata Agent)

    自服务网络(Self-service networks )

    联网管理
    ML2插件
    Linux网络工具
    Linux Bridge代理
    三层代理(L3 Agent)
    DHCP代理
    元数据代理( Metadata Agent)

    展开全文
  • Neuton仅有一个主要服务进程Neutron-server,它运行于控制节点上,对外提供OpenStack网络API作为访问Neutron的入口,收集请求后调用插件(Plugin) 进行处理,最终由计算节点和网络节点上的各种代理(Agent) 完成请求。...

    一、Neutron模块的工作流程

    • Neuton仅有一个主要服务进程Neutron-server,它运行于控制节点上,对外提供OpenStack网络API作为访问Neutron的入口,收集请求后调用插件(Plugin) 进行处理,最终由计算节点和网络节点上的各种代理(Agent) 完成请求。

    • 网络提供者(Netvork Provider)是指提供者OPenStack网络服务的虚报机或者物理网络设备,如Linux Bridge、Open vSwitch或者其他支持neutron的物理交换机。与其他服务一样,Neutron的各个组件服务之间需要相互协调通信,Neutron-server、插件、代理之问通过消息队列(默认用RabbitMQ实现)进行通信和相互协调。

    • datebase数据库(默认使用MariaDB)用于存放OpenStack的网络状态信息、包括网络、子网、端口、路由器等等。

    • 客户端(Client)是指使用Neutron服务的应用程序,可以是命令行工具(脚本)、Horizon(OpenStack图形操作界面)和Nova计算服务等。

    拓扑图如下:
    在这里插入图片描述
    举列说明:创建一个Vlan 10虚拟网络的流程。

    • 1、Neutron-server 收到创建网络(Network) 的请求,通过消息队列(RabbitMQ)通知已注册的Linux Bridge插件,这里架设网络提供者为Linux Bridge。
    • 2、该插件将要创建的网络信息(如名称、ID值、VLANID等)保存到数据库中并通过消息队列通知运行在各个节点上的代理。
    • 3、代理收到信息后会在节点上物理网卡上创建Vlan设备(比如物理接口的子接口 Eth1.10),并创建一个网桥(比如brgXXX)来桥接网络设备。

    二、Neutron-server

    • Neutron-server提供一组API来定义网络连接和IP地址,供Nova等客户端调用,它本身也是分层模型设计,其层次结构如下:

    Neutron-server包括4个层次,自上而下依次说明如下:

    • Resetful API:直接对接客户端API服务,属于最前端的API,包括Core API和Extension API两种类型。Core API提供管理网络,子网和端口核心资源的Resetful API;Extension API提供给网络管理路由器、负载均衡、防火墙、安全组等扩展资源的Resetful API
    • Commnon Service:通用服务,调用keystone认证,负责对API请求进行检验、认证,并授权。
    • Neutron core:核心处理处理程序,调用相应的插件API 来处理API的请求。
    • Plugin API:定义插件的抽象功能集合,提供调用通用插件的API接口,包括CorePlugin API和Extension Plugin API两种类型,Neutron core通过Core Plugin API调用相应的Core Plugin,通过Extension Plugin API调用相应的Service Plugin。
      在这里插入图片描述

    三、插件、代理与网络提供者

    Neutron遵循OpenStack的设计原则,采用开放架构,通过插件、代理与网络提供者的配合来实现各种网络功能。

    • 插件是Neutron的一种API的后端实现,目的是增强扩展性。插件按照功能可分为Core Plugin和Service Plugin两种类型。

      • Core Plugin提供基础:二层虚拟机网络支持,实现网络、子网和端口核心资源的支持。
      • Service plugin是指Core Plugin之外的其他插件,提供路由器、防火墙、安全组、负载均衡等服务支持。

    值得一提的是, 直到OpenStack的Havana版本, Neutron才开始提供一个名为L3 Router Service Plugin的插件支持路由服务。

    • 插件由Neuton-server的Core Plugin API和ExtensionPlugin API调用,用于确定具体的网络功能,既要配什么样的网络。

    • 插件处理Neutron-Server发来的请求,主要职责是在数据库中维护Neutron网络的状态信息(更新Neutron数据库),通知相应的代理实现具体的网络功能。 每一个插件支持一组API资源并完成特定操作,这些操作最终由插件通过RPC调用相应的代理(Agent)来完成。

    • 代理处理插件转来的请求,负责在网络提供者上真正实现各种网络功能。 代理使用物理网络设备或者成拟化技术完成实际的操作任务,如用于路由具体操作L3 Agent。

    • 插件和代理与网络提供者配套使用,比如网络提供者是Linux Bridge,就需要使用LinuxBridge的插件和代理,如换成Open vswitch,则需要改成相应的插件和代理。

    四、Neutron的物理部署

    Neutron与其他OpenStack服务组件系统工作,可以部署在多个物理主机节点上,主要涉及控制节点、网络节点、计算节点,每个节点可以部署多个,典型的主机节点部署介绍如下。

    1、控制节点和计算节点

    • 控制节点上部署Neutron-service (API) 、Core Plugin 和 Service Plugin的代理,这些代理包括neutron-plugin-agent、neutron-me dadata-agent、neutron-dhcp-agnet、neutron-l3-agent、neutron-lbaas-agent等。Core plugin 和service plugin已经集成到neutron-server中,不需要运行独立的plugin服务。
    • 计算节点上可以部署Core Plugin、Linux Bridge或Open vSwitch的代理,负责提供二层的网络功能。
    • 控制节点和计算节点都需要部署CorePlugin的代理,因为控制节点与计算节点通过该代理才能建立二层连接。

    2、控制节点和网络节点

    • 可以通过增加网络节点承担更大的负载,该方案特别适合规模较大的OpenStack环境。
    • 控制节点部署 Neutron-server 服务,只负责通过Neutron-server响应的API请求。
    • 网络节点部署的服务包括Core Plugin的代理和service Plugin的代理。将所有的代理从上述控制节点分离出来,部署到独立的网络节点上,由独立的网络节点实现数据的交换,路由以及负责均衡等高级网络服务。
    展开全文
  • openstack-neutron模块详解

    千次阅读 2020-03-25 23:43:55
    文章目录Neutron基本架构Neutron-server插件、代理与网络提供者Neutron的物理部署服务Neutron的主要插件、代理与服务ML2插件Linux Bridge代理Open VSwitch代理DHCP代理Linux网络名称空间Neutron路由器L3代理FWaas ...

    Neutron基本架构

    与openstack其他服务和组件的设计思路一样,Neutron也采用分布式架构,由多个组件(服务)共同对外提供网络服务,Neutron架构非常灵活,层次多,一方面是为了支持各种现有或者将来会出现的先进网络技术,另一方面支持分布式部署,获得足够的拓展性。示意图如下:
    在这里插入图片描述

    Neutron仅有一个主要服务进程Neutron-server,它运行于控制节点上,对外提供openstack网络api作为访问Neutron的入口,收集请求后调用插件(plugin)进行处理,最终由计算节点和网络节点上的各种代理(agent)完成请求
    网络提供者(network-provider)是指提供者openstack网络服务的虚拟机或者物理网络设备,如linux bridge、open vswitch或者其他支持neutron的物理交换机。与其他服务一样,neutron的各个组件服务之间需要相互协调通信,neutron-server、插件、代理之间通过消息队列(默认用RabbitMQ实现)进行通信和相互协调。
    数据库(默认使用MariaDB)用于存放openstack的网络状态信息,包括网络、子网、端口、路由器等等。
    客户端(Client)是指使用neutron服务的应用程序,可以是命令行工具(脚本)、horizon(openstack图形化操作界面)和nova计算服务等。
    举例:创建一个vlan 10虚拟网络的流程
    (1)neutron-server收到创建网络(network)的请求,通过消息队列(RabbitMQ)通知已注册的linux bridge插件(这里假设网络提供者为linux bridge)。
    (2)该插件将要创建的网络信息(如名称、ID值、VLANID等)保存到数据库中并通过消息队列通知运行在各个节点上的代理。
    (3)代理收到信息后会在节点上物理网卡创建vlan设备(比如物理接口的子接口Eth1.10),并创建一个网桥(比如brgxxx)来桥接网络设备

    Neutron-server

    neutron-server提供一组API来定义网络连接和IP地址,供Nova等客户端调用,它本身也是分层模型设计,其层次结构如下:
    在这里插入图片描述

    Neutron包括4个层次,自上而下依次说明如下:
    (1)Resetful API:直接对客户端API服务,属于最前端的API,包括Core API和Extension API两种类型。Core API提供管理网络、子网和端口核心资源的Resetful API;Extension API提供给网络管理路由器、负载均衡、防火墙、安全组等扩展资源的Resetful API。
    (2)Commnon Server:通过服务,负责对API请求进行检验、验证,并授权。
    (3)Neutron core:核心处理程序,调用相应的插件API来处理API请求。
    (4)Plugin API:定义插件的抽象功能集合,提供调用通用插件的API接口,包括Core Plugin API和Extension Plugin API两种类型,Neutron core通过Core Plugin API调用相应的Core Plugin,通过Extension Plugin API调用相应的Service Plugin。

    插件、代理与网络提供者

    neutron遵循openstack的设计原则,采用开放架构,通过插件、代理与网络提供者的配合来实现各种网络功能。
    插件是neutron的一种API的后端实现,目的是增强扩展性,插件按照功能可分为Core Plugin和Service Plugin两种类型,Core Plugin提供基础二层虚拟机网络支持,实现网络、子网和端口核心资源的支持,Service Plugin是指Core Plugin之外的其他插件,提供路由器、防火墙、安全组、负载均衡等服务支持,值得一提的是,直到openstack的Havana版本,neutron才开始提供一个名为 L3 Router Service Plugin的插件支持路由服务。
    插件由neutron-server的Core Plugin API和Extension Plugin API调用,用于确定具体的网络功能,即需要配什么样的网络,插件处理neutron-server发来的请求,主要职责是在数据库中维护neutron网络的状态信息(更新neutron数据库),通知相应的代理实现具体的网络功能,每一个插件支持一组API资源并完成特定操作,这些操作最终由插件通过RPC调用相应的代理(agent)来完成。
    代理处理插件转来的请求,负责在网络提供者上真正实现各种网络功能。代理使用物理网络设备或者虚拟化技术来完成实际的操作任务,如用于路由具体操作L3 Agent
    插件和代理与网络提供者配套使用,比如网络提供者是linux bridge,就需要使用linux bridge的插件和代理,如换成open vswitch则需要改成相应的插件和代理。

    Neutron的物理部署服务

    neutron与其他openstack服务组件系统工作,可以部署在多个物理主机节点上,主要涉及控制节点、网络节点和计算节点,每个节点可以部署多个,典型的主机节点部署介绍如下:
    (1)控制节点和计算节点
    控制节点上部署neutron-server(API)、Core Plugin和Service Plugin的代理,这些代理包括neutron-plugin-agent、neutron-metadata-agent、neutron-dhcp-agent、neutron-l3-agent、neutron-lbaas-agent等。Core Plugin和Service Plugin已经集成到neutron-server中,不需要运行代理的plugin服务。
    计算节点上可以部署Core Plugin、Linux Bridge或Open vSwitch的代理,负责提供三层的网络功能。
    控制节点和计算节点上都需要部署Core Plugin的代理,因为控制节点与计算节点通过该代理才能进行二层连接。
    (2)控制节点和网络节点
    可以通过增加网络节点承担更大的负载,该方案特别适合规模较大的openstack环境
    控制节点部署neutron-server服务,只负责通过neutron-server响应的API请求。
    网络节点部署的服务包括Core Plugin的代理和Service Plugin的代理,将所有的代理从上述节点分离出来,部署到独立的网络节点上,由独立的网络节点实现数据的交换,路由以及负责均衡等高级网络服务。

    Neutron的主要插件、代理与服务

    Neutron插件、代理与服务层次结构如下图

    在这里插入图片描述

    ML2插件

    neutron可以通过开发不同的插件和代理来支持不同的网络技术,这是一种相当于开发的架构。不过随着所支持的网络提供者种类的增加,开发人员发现两个突出的问题。一个问题是多种网络提供者无法共存,Core Plugin负责管理和维护neutron二层的虚拟网络的状态信息,一个neutron网络只能由一个插件管理,而Core Plugin插件与相应的代理是一一对应的,如果linux bridge插件,则只能选择linux bridge代理,必须在openstack的所有节点上使用linux bridge作为虚拟交换机;另外一个问题时开发插件的工作量太大,所有传统的Core Plugin之间存在大量重复的代码(如数据库访问代码)
    为了解决这两个问题,从openstack的Havana版本开始,neutron实现了一个插件ML2(Moduler Layer2),为了取代所有Core Plugin,允许在openstack网络中同时使用多种二层的网络技术,不同的节点可以使用不同的网络实现机制,ML2能够与现在所有的代理无缝集成,以前使用的代理无需变更,只需要将传统的Core Plugin替换成ML2。ML2使得对新的网络技术支持更为简单,无须重新开发新的Core Plugin,只需要开发相应的机制驱动(Mechansion Driver),大大减少要编写和维护的代码。

    ML2对二层的网络进行抽象,解锁了neutron所支持的网络类型(Type)与访问这些网络类型的虚拟网络实现机制(Mechansim),并通过驱动的形式进行拓展,不同的网络类型对应不同的网络类型的驱动(Type Driver),由类型管理器(Typer Manager)进行管理。不同的网络实现机制对应不同的机制驱动(Mechansiom Driver),由机制管理器(Mechansim Manager)进行管理。这种实现框架是ML2具有弹性,易于扩展,能够灵活支持多种网络类型和实现机制。
    (1)类型驱动(Type Driver)
    neutron支持的每一种网络类型都有一个对应的ML2类型驱动,类型驱动负责维护网络类型的状态,执行验证、创建网络等工作。目前neutron已经实现的网络类型包括flat、local、vlan、xvlan、gre
    (2)机制驱动(Mechansim Driver)
    neutron支持的每一种网络机制都有一个对应的ML2机制驱动。机制驱动负责获取类型网络驱动维护的网络状态,并确保在相应的网络设备(物理或虚拟的)上正确实现这些状态。
    举例:类型驱动vlan,机制驱动linux bridge,如果创建vlan10,那么vlan的类驱动会确保将vlan10的信息保存到neutron数据库中,包括网络的名称、vlanID等,而linux bridge机制驱动会确保各个节点上的linux bridge代理在物理网卡上创建ID为10的vlan设备和bridge设备,并将二者进行桥接。
    目前neutron已经实现的网络机制有三种类型:

    • 基于代理(agent-based):包括linux bridge、opens vswitch
    • 基于控制器(controller-based):包括OpenStacDaylight、VMware NSX等
    • 基于物理交换的:包括Cisco Nexus、Arista、Mellanox等

    (3)扩展资源
    ML2作为一个Core Plugin,在实现网络、子网和端口核心资源的同时,也实现了包括端口绑定(Port Bindings)、安全组(Security Group)等部分扩展资源。
    目前ML2插件已经成为neutron的首选插件

    Linux Bridge代理

    linux bridge是成熟可靠的neutron二层网络虚拟化技术,支持local、flat、vlan、vxlan这四种类型网络,目前不支持gre
    linux bridge可以将一台主机上的多个网卡桥接起来,充当一台交换机,它可以桥接物理网卡,又可以桥接虚拟网卡,用于桥接虚拟机网卡的是Tap接口,这是一个虚拟出来的网络设备,成为Tap设备,作为网桥的一个端口,Tap接口在逻辑上与物理接口具有相同的功能,可以接收和发送数据包。
    如果选择linux bridge作为代理,在计算节点上数据包从虚拟机发送到物理网卡需要经过以下设备:

    • Tap接口(Tap Interface):用于网桥虚拟机的网卡,命名为tapxxx
    • Linux网桥(Linux Bridge):作为二层交换机,命名为brqxxxx
    • VLAN接口(VLAN Interface):在VLAN网络中用于连接网桥,命名为ethx.y(ethx为物理网卡名称,y为VLAN ID)
    • VXLAN接口(VXLAN Interface):在VXLAN网络中用于连接网桥,命名为vxlan-z(z是VNID)
    • 物理网络接口:用于连接到物理网络。

    计算节点上的linux bridge环境下的flat网络和vlan网络,下面两个图其中网桥是核心。vlan网络由两个vlan自己的网桥,实现了基于vlan的网络,如果改用vxlan,其中的vlan接口换成vxlan接口,可以命名为vxlan-101和vxlan-102

    • 基于linux bridge的flat网络
      在这里插入图片描述

    • 基于linux bridge的vlan网络
      在这里插入图片描述

    Open VSwitch代理

    与linux bridge相比,open vswitch(可简称为OVS)具有几种管控功能,而且性能更加优化,支持更多的功能,目前在openstack领域称为主流。它支持local、flat、vlan、vxlan、gre和geneve等所有的网络类型。
    (1)open vswitch的设备类型

    • Tap设备:用于网桥连接虚拟网卡
    • Linux网桥:桥接网卡接口(包括虚拟接口)
    • VETH对(VETH Pair):直接相连的一对虚拟机网络接口,发送VETH对一端的数据包由另一端接收,在openstack中,它用来连接两个虚拟网桥。
    • OVS网桥:open vswitch的核心设备,包括一个OVS集成网桥(Integration Bridge)和一个OVS屋里连接网桥。所有在计算节点上运行的虚拟机连接到集成网桥,neutron通过配置集成网桥上的端口来实现虚拟机网络隔离。物理机连接网络直接连接到物理网卡。这两个OVS网络通过一个VETH对连接,open vswitch的每个网桥都可以看做是一个真正的交换机,可以支持VLAN。

    (2)Open VSwitch数据包流程
    如果选择Open VSwitch代理,在计算节点上的数据包从虚拟机发送到物理网卡上需要依次经过一下设备。

    • Tap接口(Tap Interface):用于网桥虚拟机的网卡,命名为tapxxx
    • Linux网桥(Linux Bridge):与Linux Bridge不同,命名为qbrxxx(其中编号xxx与tapxxx中的xxx相同)
    • VETH对:两端分别命名为qvbxxx和qvoxxx(其中编号xxx与tapxxx中的xxx保持一致)
    • OVS集成网桥:命名为br-int
    • OVS PATCH端口:两端分别命名为int-br-ethx和phy-br-ethx(x为物理网卡的名称的编号)
    • OVS物理连接网桥:分别为两种类型,在flat和vlan网络中使用OVS提供者网桥(Provider Bridge),命名为Br-ethx(x为物理网卡的名称的编号);在vxlan、gre和geneve叠加网络中使用OVS隧道网桥(Tunnel Bridge),命名为Br-tun,另外在local网络中不需要任何OVS物理连接网桥。
    • 物理网络接口:用于连接到物理网络,命名为ethx(x为物理网卡的名称中的编号)

    (3)open vswitch网络的逻辑结构
    与linux bridge代理不同,open vswitch代理不通过eth1.101、eth1.102等vlan接口隔离不同的vlan,所有的虚拟机都连接到一个网桥br-int,open vswitch通过配置br-int和br-ethx上的流规则(Flow rule)来进行vlan转换,进而实现vlan之间的隔离,例如内部标签分别为1和2,而物理网络的vlan标签是101和102,当br-eth1网桥上的phy-br-eth1端口接收到一个vlan1标记的数据包时,会将其中的vlan1转换为vlan101;当br-int网桥上的init-br-eth1端口收到一个vlan101标记的数据包时。会将其中的vlan101转换为vlan1.
    下面是以vlan网络为例子open vswitch网络的逻辑结构:
    在这里插入图片描述

    DHCP代理

    openstack的实例在启动过程中能够从neutron提供的DHCP服务自动获取IP地址
    1、DHCP主要组件
    (1)DHCP代理(neutron-dhcp-agent):为项目提供DHCP功能,提供元数据请求(Metadata request)服务
    (2)DHCP驱动:用于管理DHCP服务器,默认为DNSmasq,这是有1个提供DHCP和DNS服务的开源软件,提供DNS缓存和DHCP服务功能。
    (3)DNCP代理调度器(Agent Scheduler):负责DHCP代理与网络(Network)的调度
    2、DHCP代理的主要任务
    neutron DHCP提供两类REST API接口:Agent Managerment Extension API和Agent Scheduler Extension API,这两类API都是extension API DHCP代理,是核心组件,完成以下任务。
    (1)定期报告DHCP代理的网络状态,通过RPC报告给neutron-server,然后通过Core Plugin报告给数据库并进行更新网络状态。
    (2)启动dnsmasq进程,检测qdhcp-xxx名称(Namespace)中的ns-xxx端口接收到的DHCPDISCOVER请求,在启动dnsmasq进程过程中,决定是否需要创建名称空间中的ns-xxx端口,是否需要配置名称空间中的iptables,是否需要刷新dnsmasq进程所需的配置文件。
    创建网络(network)并在子网(subnet)上启用DHCP时,网络节点上的DHCP代理会启动一个dnsmasq进程为网络提供DHCP服务。dnsmasq与网络(network)是一一对应关系,一个dnsmasq进程可为统一网络中所有启动DHCP的子网(subnet)提供服务
    3、DHCP代理配置文件
    DHCP代理配置文件是/etc/neutron/dhcp_ agent.ini,其中有重要的配置选项有两个。

    [root@ct ~(keystone_ admin)]# grep -vE '^#|^$' /etc/neutron/dhcp_agent.ini
    [DEFAULT]
    interface_driver=neutron.agent.linux.interface.OVSInterfaceDriver
    resync_interval=30
    enable_isolated_metadata=False
    enable_metadata_network=False
    debug=False
    state_path=/var/lib/ neutron
    root_helper=sudo neutron-rootwrap /etc/neutron/rootwrap.conf
    [agent]
    [ovs]
    

    (1)interface_driver:用来创建Tap设备的接口驱动,如果使用linux bridge连接,该值设为neutron.agent.linux.interface.BridgeInterfaceDriver;如果选择open vswitch,该值设为neutron.agent.linux.interface.OVSInterfaceDriver
    (2)dhcp_driver:指定DHCP启动,默认值为neutron.agent.linux.dhcp.Dnsmasq,表示dnsmasq进程来实现DHCP服务
    4、DHCP代理工作机制
    DHCP代理运行在网络节点上,DHCP为项目网络提供DHCP服务IP地址动态分配,另外还会提供源数据请求服务,工作机制如下:
    在这里插入图片描述

    通过DHCP获取IP地址过程如下
    (1)创建实例时,Neutron随机生成MAC并从配置数据中分配一个固定的IP地址,一起保存到dnsmasq的hosts文件中,让dnsmasq进程做好准备。
    (2)与此同时,Nova-compute会设置Mac地址。
    (3)实例启动,发出DHCPDISCOVER广播,该广播消息在整个网络中都可以被收到。
    (4)广播消息到达dnsmasq监听Tap接口,dnsmasg收到后检查hosts文件,发现有对应项,它以DHCPOFFER消息将IP和网关IP发回到虚拟机实例
    (5)虛拟机实例发回DHCPREQUEST消息确认接收DHCPOFFER
    (6)dnsmasq发回确认消息DHCPACK,整个过程结束。

    Linux网络名称空间

    在介绍DHCP服务时提到的linux网络名称空间(Network Namespace简称netns)是linux提供的一种内核级别的网络环境隔离方法,Namespace也可以翻译成为命名空间或者叫名字空间。当前linux支持6种不同类型的名称空间,网络名称空间是其中一种,在二层网络上,VLAN可以将一个屋里交换机分割几个独立的虚拟交换机。类似的,在三层网络上,Linux网络名称空间可以将一个物理三层网络分成几个独立的虚拟三层网络,作为一种资源虚拟机隔离机制。
    1、Linux网络名称空间概述
    在Linux中,网络空间可以被认为是隔离的拥有单独网线栈(网络接口、路由、iptables等)的环境,它经常来隔离网络资源(设备和服务),只有拥有同样网络名称空间的设备才能批次访问。它还能提供在名称空间内运行进程的功能,后台进程可以运行不同名称空间内的相同端口上,用户还可以虚拟出一块网卡。
    可以创建一个完全独立的全新网络环境,包括独立的网络接口、路由表、ABR表,IP地址表、iptables或ebtables等,与网络有关的组件都是独立的。
    通常情况下可以使用ip netns add命令添加新的网络名称空间,使用ip netns list命令查看所有的网络名称空间。
    执行以下命令进入指定的网络名称空间
    ip netns exec netns名称 命令
    可以在指定的虚拟环境中运行任何命令,例如以下命令:
    ip netns exec net001 bash
    又如,为虚拟网络环境netns0的eth0接口增加IP地址
    ip netns exec netns0 ip address add 10.0.1.1/24 eth0
    网络名称空间内部通信没有问题,但是被隔离的网络名称空间之间要进行通信,就必须采用特定的方法,即VETH对,VETH对是一种成对出现的网络设备,它们像一根虚拟的网络线,可用于连接两个名称空间,向VETH对一端输入的数据将自动转发到另外一端。例如创建两个网络名称空间的netns1和netns2并使他们之间通信,可以执行以下步骤。
    (1)创建两个网络名称空间
    ip netns add netns1
    ip netns add netns2
    (2)创建一个VETH对
    ip link add veth1 type veth peer name veth2
    创建的一对VETH虚拟接口类似管道(pipe),发给veth1的数据包可以在veth2收到,发给veth2的数据包可以在veth1收到,相当于安装两个接口并用网线连接起来
    (3)将上述两个VETH虚拟接口分别放置到另个网络名称空间中
    ip link set veth1 netns netns1
    ip link set veth1 netns netns2
    这样两个VETH虚拟接口就分别出现在两个网络名称空间中,两个空间就联通了,其中对的设备就可以相互访问。
    2、linux网络名称空间实现DHCP服务隔离
    Neutron通过网络名称空间为每个网络提供独立的DHCP和路由服务,从而允许项目创建重叠的网络,如果没有这种隔离机制,网络就不能重叠,这样就失去了很多的灵活性
    每个dnsmasq进程都位于独立的网络名称空间,命名为qdhcp-xxx
    以创建flat网络为例,Neutron自动新建该网络对应的网桥brqxxx,以及DHCP的Tap设备tapxxx。物理主机本身也有一个网络名称空间,称为root,拥有一个回环设备(Loopback Device),如果DHCP的Tap虚拟接口放置到qdhcp-xxx名称空间,该Tap虚拟接口将无法直接与root名称空间中网桥设备brqxxx连接,为此,Neutron使用VETH对来解决这个问题,添加VETH对tapxxx与ns-xxx,让qdhcp-xxx连接到brqxxx
    3、Linux网络名称空间实现路由器
    Neutron允许在不同的网络中的子网CIDR和IP地址重叠,具有相同的IP地址的两个虚拟机也不会产生冲突,这是由于Neutron的路由器通过Linux网络名称空间实现的,每个路由器有自己独立的路由表。

    Neutron路由器

    Neutron路由器是一个三层的(L3)网络的抽象,其模拟物理路由器,为用户提供路由、NAT等服务,在openstack网络中,不同子网之间的通信需要路由器,项目网络与外部网络之间的通信更需要路由器。
    Neutron提供虚拟路由器,也支持物理路由器。例如,两个隔离的VLAN网络之间需要实现通信,可以通过物理路由实现,由物理路由器提供相应的IP路由表,确保两个IP子网之间的通信,将两个VLAN网络中的虚拟机默认网关分别设置为路由器接口A和B的IP地址。VLAN A中的虚拟机要与VLAN B中的虚拟机通信时,数据包将通过VLAN A中的物理网卡到达路由器,由物理路由器转发到VLAN B中的物理网卡,再到目的虚拟机。
    在这里插入图片描述

    Neutron的虚拟路由器使用软件模拟物理路由器,路由器实现机制相同 。Neutron的路由服务由L3代理提供。

    L3代理

    在Neutron中L3代理(neutron-l3agent)具有相当重要的地位。他不仅提供虚拟机路由器,而且通过iptables提供地址转换(SNAT DNAT)、浮动地址(Floating IP)和安全组(security group)功能,L3代理利用Linux IP栈、路由和iptables来实现内部网络中不同网络的虚拟机实例之间的通信,以及虚拟机实例和外部网络之间的网络流量路由和转发,L3代理可以部署在控制节点或者网络节点上
    1、路由(Routing)
    L3代理提供的虚拟机路由器通过虚拟接口连接到子网,一个子网一一个接口,该接口的地址是该子网的网关地址,虚拟机的IP地址栈如果发现数据包的目的IP地址不在本网段,则会将其发到路由器上对应其子网的虚拟机接口,然后,虚拟机路由器根据配置的路由规则和目的IP地址将包转发到目的端口发出。
    L3代理会将每个路由器创建一个网络名称空间,通过VETH对与Tap相连,然后将网关IP配置在位于名称空间的VETH接口上,这样就能够提供路由,网络节点如果不支持linux名称空间,则只能运行一个虚拟路由器。
    2、通过网络名称空间支持网络重叠
    在云环境下用户可以按照自己的规划创建网络,不同的项目(租户)的网络IP地址可能会重叠,为实现此功能,L3 代理使用linux网络名称空间来提供隔离的转发上下文,隔离不同的项目(租户)的网络,每个L3代理运行在一个名称空间中。
    每个名称空间由: *grouter-*命名
    3、源地址转换(Source Network Address Translation,SNAT)
    L3代理通过在iptables表中增加POSTROUTING链来实现源地址转换,既内网计算机访问外网时,发起访问的内网IP地址(源IP地址)转换为外网网关的IP地址。这种功能让虚拟机实例能够直接访问外网。不过外网计算机还不能直接访问虚拟机实例,因为实例没有外网IP地址,而目的地址转化就能解决这一问题。
    项目(租户)网络连接到Neutron路由器,通常将路由器作为默认的网关,当路由器收到实例的数据包并将其转发到外网时。路由器会将数据包的源地址修改成自己的外网地址,确保数据包转发到外网,并能够从外网返回,路由器修改返回的数据包,并转发之前发起访问的实例。
    4、目的地址转换(Destination Network Address Translation,DNAT) 与浮动IP地址
    Neutron需要设置浮动IP地址支持从外网访问项目(租户)网络中的实例。每个浮动IP唯一对应一个路由器;浮动IP到关联的端口,在到所在的子网,最后到包含该子网及外部子网路由器。创建浮动IP时。在Neutron分配IP地址后,通过RPC通知该浮动IP地址对应的路由器去设置该浮动IP对应的iptabels规则,从外网访问虚拟机实例时,目的IP地址为实例的浮动IP地址,因此必须由lptables将其转化成固定的IP地址,然后在将其路由到实例。L3 代理通过在iptables表中增加POSTROUTING链来实现地址转换。
    浮动IP地址是提供静态NAT功能,建立外网IP地址与实例所在的项目(租户网络) IP地址的一对一映射,浮动IP地址配置在路由器提供网关的外网接口上,而不是在实例中,路由器会根据通信的方向修改数据包的源或者是目的地址,这是通过在路由器上应用iptables的NAT规则实现的。
    一旦设置浮动IP地址后,源地址转换就不在使用外网关的IP地址了,而是直接使用对应的浮动IP地址,虽然相关的NAT规则依然存在,但是neutron-l3-agent-float-snat比neutron-l3-agent-snat更早执行。
    5、安全组(Security Group)
    安全组定义了哪些进入的网络流量能被转发给虚拟机实例。安全组包含一些防火墙策略,称为安全组规则(Security Grouprule) ,可以定义若干个安全组。每个安全组可以有若干条规则。可以给每个实例绑定若干个安全组。
    安全组的原理是通过iptables对所在的计算机节点的网络流量进行过滤。安全组规则作用在实例的端口上,具体是在连接实例的计算节点上的linux网桥上实施。

    FWaas

    1、概述
    FWaas(Firewall-as- a-Service)是一种基于Neutron L3 Agent的虚拟防火墙,是Neutron的一个高级服务。通过他,OpenStack可以将防火墙应用到项目(租户)、路由器、路由器端口和虚拟机端口,在子网边界上对三层和四层的流量进行过滤。
    传统的网络中的防火墙一般在网关上,用来控制子网之间的访问。FWaas的原理也是一样,在Neutron路由上应用防火墙规则,控制进出项目(租户)网络的数据。防火墙必须关联某个策略(Policy) 。策略是规则(rule) 的集合,防火墙会按顺序执行策略中的每一条规则。规则是访问控制的规则,由源目的子网IP、源目的端口、协议、允许(Allow)和拒绝(Deny) 动作组成。
    安全组是最早的网络安全模块,其应用对象是虚拟网卡,在计算机节点上通过iptables规则控制进出实例虚拟网卡的流量。FWaas的应用对象是虚拟路由器,可以在安全组之前控制从外部传入的流量,但是对于同一个子网内的流量不做限制。安全组保护的是实例,而FWaas保护的是子网,两者互为补充,通常部署FWaas和安全组来实现双重防护。
    2、两个版本:FWaasV1与FWaas V2
    FWaas V1是传统方防火墙方案,对路由器提供保护,将防火墙应用到路由器时,该路由器的所有内部端口受到保护,其中虚拟机2进出的数据流都会得到防火墙保护。
    新的版本的FWaasV2提供了更具细粒度的安全服务,防火墙的概念防火墙组(firewall group)代替,一个防火墙包括两项策略:入口策略(ingress policy)和出口(egress policy)。防火墙组不再用于路由器级(路由器全部端口)而是路由器端口,注意,FWaas V2的配置仅提供命令行工具,不支持dashboard图形页面。
    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-hUXZxRDA-1583737752277)(C:\Users\Larry\AppData\Roaming\Typora\typora-user-images\1583410124114.png)]

    的数据流都会得到防火墙保护。
    新的版本的FWaasV2提供了更具细粒度的安全服务,防火墙的概念防火墙组(firewall group)代替,一个防火墙包括两项策略:入口策略(ingress policy)和出口(egress policy)。防火墙组不再用于路由器级(路由器全部端口)而是路由器端口,注意,FWaas V2的配置仅提供命令行工具,不支持dashboard图形页面。
    在这里插入图片描述

    展开全文
  • 因为项目需要,最近开始学习openstack主要负责其中的网络模块–neutron,接下来会写几篇文章来记录在学习过程中的收获。所以这里第一篇就先介绍一下neutron中所涉及到的一些基本的网络概念。一,组网技术 1,...

    因为项目需要,最近开始学习openstack,主要负责其中的网络模块–neutron,接下来会写几篇文章来记录在学习过程中的收获。所以这里第一篇就先介绍一下neutron中所涉及到的一些基本的网络概念。

    一,组网技术
    1,Flat(DHCP)技术:openstack中最简单的网络模型,所有的虚拟机共用一个私有IP段,相当于大家都处于一个局域网中,IP地址在虚拟机启动时完成注入。Flat DHCP组网模式与Flat的区别就在于其开启了DHCP功能,虚拟机通过DHCP消息获得IP地址(DHCP Agent)。

    2,VLAN技术:VLAN是一种将局域网(LAN)设备从逻辑上划分(注意,不是从物理上划分)成一个个网段(或者说是更小的局域网LAN),从而实现虚拟工作组(单元)的数据交换技术。VLAN技术的好处主要有三个:
    (1)端口的分隔。即便在同一个交换机上,处于不同VLAN的端口也是不能通信的。这样一个物理的交换机可以当作多个逻辑的交换机使用。
    (2)网络的安全。不同VLAN不能直接通信,杜绝了广播信息的不安全性。
    (3)灵活的管理。更改用户所属的网络不必换端口和连线,只更改软件配置就可以了。

    在openstack中使用VLAN技术引入了多租户机制,虚拟机可以使用不同的私有IP段,并且一个租户可以拥有多个IP段,以实现不同租户的网络隔离。但是,如果不同租户逻辑上共用一个网关,则无法实现租户间IP地址的复用。

    3,overlay(GRE和VXLAN)技术: 通过隧道的方式建立通信。其中VXLAN将虚拟机发出的数据包封装在UDP中,并使用物理网络的IP/MAC作为outer-header进行封装,然后在物理IP网上传输,到达目的地后由隧道终结点解封并将数据发送给目标虚拟机。GRE是在L3上面包装L3,封装在IP报文中,建立点对点隧道进行通信。相对VLAN而言,引入overlay模型主要解决了以下问题:
    1)租户数量从4K增加到16million;
    2)租户内部通信可以跨越任意IP网络,支持虚拟机任意迁移;
    3)一般来说每个租户逻辑上都有一个网关实例,IP地址可以在租户间进行复用;
    4)能够结合SDN技术对流量进行优化。

    二、网络模型
    1,单一平面网络模型,这种网络模型主要存在以下缺陷:
    存在单一网络瓶颈,缺乏可伸缩性;缺乏合适的多租户隔离;不支持floating ip;
    这里写图片描述
    2,多平面网络模型,支持VLAN,不支持floatingip;
    这里写图片描述
    3,混合平面私有网络,具有两个ip,支持floating ip;
    这里写图片描述
    4,通过私有网络实现运营商路由功能,增加了provider router,但是租户没办法定义自己的路由;
    这里写图片描述
    5,通过私有网络实现每个租户创建自己专属的网络区段,租户定义自己的网络,sdn网络比较灵活;
    这里写图片描述
    可以看出neutron模块中的网络模型变得越来越复杂,越来越适应用户的需求。

    三、核心资源
    Neutron管理的实体核心资源主要包括网络、子网、端口:
    1,网络:隔离的L2域,可以是虚拟、逻辑或交换,同一个网络中的主机彼此L2可见。一般是创建它的用户所有。用户可以拥有多个网络。网络是最基础的,子网和端口都需要关联到网络上。
    2,子网:隔离的L3域,IP地址块。其中每个机器有一个IP,同一个子网的主机彼此L3可见。子网代表了一组分配了IP的虚拟机。每个子网必须有一个CIDR和关联到一个网络IP可以从CIDR或者用户指定池中选取。子网可能会有一个网关、一组DNS和主机路由。不同子网之间L2是互相不可见的,必须通过一个三层网关(即路由器)经过L3上进行通信。
    3,端口:网络上虚拟、逻辑或交换端口。 所有这些实体都是虚拟的,拥有自动生成的唯一标示id,支持CRUD功能,并在数据库中跟踪记录状态。可以进出流量的接口,往往绑定上若干 MAC 地址和 IP 地址,以进行寻址。一般为虚拟交换机上的虚拟接口。虚拟机挂载网卡到端口上,通过端口访问网络。当端口有 IP 的时候,意味着它属于某个子网。

    四、三个网络
    1,External Network/API Network,这个网络是连接外网的,无论是用户调用Openstack的API,还是创建出来的虚拟机要访问外网,或者外网要ssh到虚拟机,都需要通过这个网络;
    2,Data Network,数据网络,虚拟机之间的数据传输通过这个网络来进行,比如一个虚拟机要连接另一个虚拟机,虚拟机要连接虚拟的路由都是通过这个网络来进行;
    3,Management Network,管理网络,Openstack各个模块之间的交互,连接数据库,连接Message Queue都是通过这个网络来;
    这里写图片描述
    这里写图片描述

    展开全文
  • neutron 添加extension 环境: ocata版本 neutron-10.0.5 python-neutronclient-...主要讲述如何在ocata版本的openstack网络模块neutron中添加extension。 流程图 先看一张从dashboard到neutron相应组件ap...
  • OpenStack 常见模块详解

    2021-04-06 10:44:49
    ** OpenStack 常见模块详解 ** 技能目标 ...OpenStack 由多种服务组成,每种服务具有独立的命名。在整个 OpenStack 架构中,Keystone 提供认证服务,接收来自用户和服务的认证请求,并对身份进行认证
  • -启动示例时,如果有则需要下载镜像 Swift【Object Storage,对象存储】 -主要提供分部署存储结构 -可以存储无结构数据,允许存储或检索对象 架构 OpenStack由多种服务组成,每种服务都有独立的命名。在整个...
  • openstack几乎每个模块都有版本的定义,neutron也不例外 neutron的版本定义目录就在 /neutron/db/migration/alembic_migrations/version/ocata/expand下 可以看到下面的文件都是前面一段数据加字幕组成的id后面...
  • openstack 功能模块简介

    千次阅读 2020-03-22 14:37:26
    文章目录Openstack 概念主要功能模块Identity(身份认证服务)---KeystoneDashboard(控制面板服务)---HorizonImage Service(镜像服务)---GlanceBlock Storage(块存储服务)---CinderObject Storage(对象存储...
  • 研究讨论 OpenStack 各个模块

    千次阅读 2021-03-10 17:07:07
    Keystone (OpenStack Identity Service) 是OpenStack中的一 个独立的提供安全认证的模块主要负责openstack用户的身份认证、 令牌管理、提供访问资源的服务目录、以及基于用户角色的访问控制。 Keystone类似一个...
  • OpenStack主要功能和作用

    千次阅读 2021-04-01 17:58:39
    OpenStack主要组件和作用 ​ openstack是一个开源的云计算...openstack主要有两个模块:Nova和Swift,nova是虚拟服务器部署和计算模块,swift是分布式云存储模块,两个可以一起使用也可以分开使用。 openstack服务是
  • 使用MessageQueque的一个模块Oslo.Messaging,Oslo.Messaging支持的MQ组件有RabbitMQ、ZeroMQ和Qpid。常用的是RabbitMQ。 Agent 执行各种具体任务和操作 服务启动分析: stevedore 使用setupool的...
  • 不只是一个软件,这个项目由几个主要的组件组合起来完成一些具体的工作 为公有云及私有云的建设与管理提供可扩展的弹性的云计算服务(开源项目) 覆盖了网络、虚拟化、操作系统、服务器等各个方面 openstack的8个...
  • OpenStack主要组件及其作用

    万次阅读 多人点赞 2018-12-25 22:31:20
    文章大部分来自于OpenStack官方文档。部分来自于网络 ...OpenStack是一个开源的云计算管理平台项目,由几个主要的组件组合起来完成具体工作。OpenStack支持几乎所有类型的云环境,项目目标是提供实施简单...
  • OpenStack 是一个通过数据中心控制计算资源、 存储资源和网络资源的云平台。 同时它又是一款开源软件, 以 Apache 许可证授权的自由软件和开放源代码项目, 支持所有类型的云环境;
  • 目录1、OpenStack架构1.1.1、控制台Horizon1.1.2、身份认证模块Keystone1.1.3、镜像模块Glance1.1.4、计算模块Nova1.1.5、网络模块Neutron1.1.6、块存储Cinder1.1.7、对象存储swift1.2、OpenStack的构成1.2.1、控制...
  • OpenStack

    千次阅读 多人点赞 2019-10-30 18:10:35
    OpenStack不是一个单一的项目,而是由许多相关的项目组成,包括Nova、Swift、Keystone、Horizon等。这些项目分别实现了不同的功能,例如弹性计算服务、对象存储服务、虚拟机磁盘镜像服务、安全统一认证服务以及管理...
  • 一、OpenStack网络 1.1什么是SDN软件定义网络 软件定义网络(Software Defined Network)就是在虚拟化的背景下,为了满足虚拟化环境下虚拟机对网络的需求,逐步发展起来的技术。网络虚拟化通常被称为SDN(software...
  • openstack

    2021-05-18 14:53:11
    3.认证服务 ...权限管理主要用于用户的管理授权。服务目录,类似一个服务总线,或者说是整个OpenStack框架的注册表。认证模块提供API服务、 token 令牌机制、服务目录、规则和认证发布等功能。 认证(Au
  • Openstack主要组件

    2019-06-28 12:30:00
    OpenStack是一个开源云软件,由一系列联合项目组成,这些项目控制数据中心的大型计算,存储和网络资源池,同时通过仪表板进行管理。它设计用于ARM和x86等商用硬件。自...
  • OpenStack正在成为领先的通信服务提供商(CSP)NFV部署的基础设施编排中的实际标准,为了实现...缺乏NFV管理和编排(MANO)仍然是主要的障碍。 NFV和OpenStack OpenStack是构建和管理云计算平台的一系列开源软件...
  • OpenStack架构与组成 在2010年OpenStack社区首次发布其第一个发行版——Austin时,OpenStack仅包含两个项目Nova和Swift,仅能实现非常简单和基础的功能。时至今日,OpenStack已经日渐成熟和强大,其组成项目也已经...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 4,754
精华内容 1,901
关键字:

openstack主要组成模块