云计算
redwingz
这个作者很懒,什么都没留下…
展开
-
Neutron调用ML2 插件
在编写扩展、服务插件或Neutron其它部分的代码时,如果你在调用核心插件方法的会话上有一个打开的事务,你不能调用那些会改变状态的核心插件方法。所有ML2中创建和更新端口port、网络network和子网subnet的方法都有一个预提交阶段和提交后阶段。在提交后阶段,数据期望被完全保存到数据库中,并且ML2驱动程序将使用此时间将信息传递到Neutron外部的后端backend。在事务中调用ML2...原创 2019-07-07 22:46:58 · 636 阅读 · 0 评论 -
Neutron 安全组 API
Neutron安全组APIWiki地址:https://wiki.openstack.org/wiki/Neutron/SecurityGroupsAPI扩展API扩展时代码的"前端"部分,其处理整个工程使用的REST-ful API的定义。REST-ful API: https://git.openstack.org/cgit/openstack/neutron/tree/neutron...原创 2019-07-06 23:48:44 · 391 阅读 · 0 评论 -
Neutron的Segments 扩展extension
Neutron的一个扩展,允许在/segments资源的API调用上执行CRUD操作,对应于DB 层中的NetworkSegment实体。这个扩展作为服务插件实现。注: segments服务插件默认不会配置. 要配置它,在neutron.conf文件中,,将segments添加为service_plugins的参数。核心插件可以通过注册SEGMENT资源关联事件的回调函数与segments服务...原创 2019-07-06 23:46:13 · 599 阅读 · 0 评论 -
Neutron的Service服务 Extensions扩展
历史上,Neutron支持以下高级服务:FWaaS (Firewall-as-a-Service): 作为L3 agent的一部分运行.LBaaS (Load-Balancer-as-a-Service): 完全实现在neutron-server内部, 不能直接和agent交互. 在Queens中废弃.VPNaaS (VPN-as-a-Service): 由L3 agent派生出来提供VP...原创 2019-07-06 23:44:55 · 537 阅读 · 0 评论 -
Neutron的服务service与代理agent
通常Neutron环境由运行在一个或多个节点上的多个服务service和代理agent组成(尽管某些特殊环境可能不需要任何代理)。每个服务都提供了一些网络或API接口。特别感兴趣的有以下几个:neutron-server. 提供API端点以及数据库访问点。它通常在称为控制器Controller的节点上运行。Layer2 agent代理. 通过Open vSwitch, Linuxbri...原创 2019-07-06 23:42:08 · 1193 阅读 · 0 评论 -
Neutron L2网络与支持SR-IOV功能的网卡
SR-IOV (Single Root I/O Virtualization)是一种允许PCIe设备呈现为多个单独的物理PCIe设备的规范。SR-IOV以引入物理功能(Physical Function - PF)和虚拟功能(Virtual Function - VF)的方法而工作。物理功能(PF)是全功能PCIe功能。虚拟功能(VF)是“轻量级”的缺少配置资源的功能SR-IOV支持用于二级网络...原创 2019-07-06 23:39:33 · 1373 阅读 · 0 评论 -
Neutron资源添加TAG
标签(Tag)服务插件允许用户在其资源上设置标签。标签资源可由外部系统或Neutron REST API的任何客户使用(而不是后端驱动程序)。以下用例描述添加标签到网络资源,但也适用于任何其它Neutron资源:映射不同网络到同一个逻辑网络的不同OpenStack位置的能力(用于多站点OpenStack)混合环境下,映射不同的管理/编排系统ID到OpenStack网络的能力,以项目K...原创 2019-07-06 23:37:48 · 718 阅读 · 0 评论 -
OpenStack Networking网络
OpenStack Networking允许n你创建和管理网络对象,例如网络、子网和端口,其它OpenStack服务可以使用它们。插件可以实现为服务不同的网络设备和软件,为OpenStack架构和部署提供灵活性。名称为Neutron的Networking服务提供了一个API,可以让你在云中定义网络连接和地址。Networking服务使运营者能够利用不同的网络技术为他们的云网络提供动力。Netwo...原创 2019-07-10 21:42:50 · 1114 阅读 · 0 评论 -
Open vSwitch: Provider 网络
本体系结构示例用于提供实例与物理网络基础设施之间使用VLAN(802.1q)实现的二层连接。它支持一个无标签(flat)网络和最多4095个带标签(VLAN)的网络。VLAN网络的实际数量取决于物理网络基础设施。有关provider网络的详细信息,请参阅OpenStack官方文档:intro os networking provider。警告:Linux发行版通常会打包较旧版本的Open v...原创 2019-07-10 21:35:32 · 1467 阅读 · 0 评论 -
Neutron的API 扩展Extensions
API extension扩展是标准的为Neutron项目引入新功能的方式,它允许插件决定是否要支持此新功能。示例 Examples演示API扩展如何书写的最简单方法是学习一个现有的API扩展,并解释不同的层级。… toctree:::maxdepth: 1security_group_apiExtensions for Resources with standard attribut...原创 2019-07-06 23:50:10 · 912 阅读 · 0 评论 -
OpenStack QoS介绍
Quality of ServiceQuality of Service高级服务设计为一个服务插件。此服务在多个层级上与其与的Neutron代码解耦(见下文)。QoS在没有使用继承自插件的mixins的情况下,通过使用ml2 extension 驱动程序,扩展了核心资源(ports,networks)。关于DB models, API extension, and use cases的详细信...原创 2019-07-16 08:40:51 · 2231 阅读 · 0 评论 -
Neutron Quota管理与执行
Neutron API开放的大部分资源都受到配额限制。Neutron API开放了管理此类配额的扩展。配额限制在API层执行,在请求分派到插件之前。配额限制的默认值定义在文件neutron.conf。管理员可以project为单位改写这些默认值。限制值保存在Neutron数据库中;如果没有找到给定资源与project的限制值,使用此资源的默认值。基于设置的配额管理,即每个project在配置文件...原创 2019-08-01 19:41:47 · 793 阅读 · 0 评论 -
Neutron中的对象objects
对象版本化是滚动升级的关键概念。自从被Nova社区初始实现后,版本化对象model被加入oslo库,以便其它的project可获得其带来的益处。”Oslo VersionedObjects“ (即 OVO) 是数据库的前端,其中可定义软件与数据库schema之间的中间层。在这一层,每个数据库资源的版本化对象以严格的数据定义和版本号被创建。对于OVO,当你改变数据库schema时,对象的版本也改变...原创 2019-07-22 18:42:24 · 758 阅读 · 0 评论 -
Neutron升级规划
本文档的大部分内容讨论通过Neutron agents实现的升级相关考虑。期望于每个Neutron插件提供其自身的特定于后端选择的升级讨论文档。例如,OVN不使用Neutron agent,但是确实有本地控制器运行在每个计算节点。OVS支持滚动升级,但是,关于如何工作的文档应包含在networking-ovn(OVN Neutron插件)中。升级规划Neutron支持两种通用的升级场景:关...原创 2019-07-17 20:04:11 · 808 阅读 · 0 评论 -
Neutron重试操作
在neutron.db.api模块内部有一个修饰符叫做“retry_if_session_inactive”。其应用于保护所有执行DB操作的方法。此修饰符将获取它所保护的方法抛出的任何的死锁错误、RetryRequests、连接错误和单一限制破坏。如果应用的方法在活动会话中调用,此修饰符不会重试操作。这是因为它捕获的大多数异常将会话部分的转到回滚状态,以至于其不再可用。重要的是保证有一个处于事务...原创 2019-07-17 20:02:05 · 532 阅读 · 1 评论 -
OpenStack之Live-migration
我们考虑具有一个port的VM由带有nova-compute1、neutron-l2-agent1 和 neutron-l3-agent1的主机host1,迁移到带有nova-compute2、neutron-l2-agent2 和 neutron-l3agent2的主机host2.由于准备迁移的VM的宿主机为nova-compute1,nova通过RPC向nova-compute1发送live...原创 2019-07-17 08:14:28 · 1500 阅读 · 0 评论 -
OpenStack之Provisioning Blocks管理复杂对象的状态
我们使用对象的STATUS字段表示资源是否可用,如果设置为ACTIVE,外部系统认为可以安全的使用此资源。如果仅有一个实体负责配置(provisioning)给定的对象,很容易知道合适将status设置为ACTIVE。当实体完成配置(provisioning),我们就更新STATUS到ACTIVE。尽管如此,在Neutron内部由许多资源需要在可用之前由多个异步的实体进行配置(provisioni...原创 2019-07-16 20:29:33 · 789 阅读 · 0 评论 -
OpenStack之OVS L2代理
此代理使用“Open vSwitch”虚拟交换机为实例创建L2层连通性,以及与OpenStack Nova一起创建的网桥执行过滤。ovs-neutron-agent可以配置为使用不同的网络技术,创建project隔离。这些技术被实现为ML2 type驱动程序,与Open vSwitch mechanism驱动程序一起使用。VLAN 标签 TagsOpen vSwitch: http://o...原创 2019-07-12 08:20:55 · 1103 阅读 · 0 评论 -
OpenvSwitch的Bonding接口
Bonding允许两个或多个接口(“slaves”)共享网络流量。从高层的角度来看,Bonded的接口就像一个单一接口,但是它们具有多个网络接口的带宽,例如两个1 GB物理接口就像一个2 GB的接口。Bond也增加了稳健性:只要至少有一个slave是UP的,Bond接口就不会Down。在vswitchd中,Bond总是至少有两个slaves(并且可能有更多)。如果配置等的错误导致Bond只有一个...原创 2019-07-11 21:21:21 · 3631 阅读 · 0 评论 -
Neutron 数据库层
本文包含一些通用的信息,对需要修改DB数据库的开发者而言有用处.列参数 ‘default’ 和 ‘server_default’ 差异对于列而言,可设置’default’ 或 ‘server_default’。两者之间的差别及为何使用它们?解释非常简单:default - SQLAlchemy在用于创建给定模型实例的查询中指定的默认值;server_default - SQLAlche...原创 2019-07-10 21:26:24 · 1557 阅读 · 0 评论 -
OpenStack之子网池和地址Scope
本文讨论子网池和地址scopes。子网池 Subnet Pools通过观看Vancouver峰会的视频学习子网池知识.… [#] http://www.youtube.com/watch?v=QqP8yBUUXBM&t=6m12s子网池在Kilo版本中引入。它们相对简单。“SubnetPool” 具有任意数量的 “SubnetPoolPrefix” 对象关联与它。这些前缀为CIDR...原创 2019-07-13 23:18:02 · 1770 阅读 · 0 评论 -
Neutron中保持DNS域名服务器顺序
在Neutron子网中,DNS域名服务器在创建或更新时被指定优先级。这意味着如果创建具有多个DNS服务器的子网,顺序将被保存,客户将按你在创建子网时创建DNS服务器的顺序接收到DNS服务器。同样的事情也适用于在子网上添加、删除或更新DNS服务器的修改操作。获取子网详细信息 openstack-1@stack:~/devstack$ neutron subnet-list +---...原创 2019-07-08 21:16:56 · 580 阅读 · 0 评论 -
Neutron L2 网络与 Linux网桥
此代理agent使用Linux网桥为运行在计算节点上的VM实例提供L2级到public网络的连通性。部署的图示如下所示:在最常见的部署中,有一个计算节点和一个网络节点。在这两个节点上,Linux网桥代理将管理虚拟交换机、它们之间的连接以及通过虚拟端口与其它网络组件的交互,如命名空间和底层接口。此外,在计算节点上,Linux Bridge代理将管理安全组。三个用例及它们的报文流程描述在以下三个...原创 2019-07-07 22:58:36 · 604 阅读 · 0 评论 -
Neutron Open vSwitch vhost-user 支持
Neutron支持在OVS ML2 驱动和代理agent中直接使用Open vSwitch + DPDK vhost-user interfaces。当前的实现依赖于多个配置值并包括对Open vSwitch的提供这些接口的能力的运行时验证。OVS代理检测底层Open vSwitch的能力,并通过代理使用RPC传递该信息到’configurations’字典。ML2驱动程序使用此信息选择正确的V...原创 2019-07-07 22:56:17 · 399 阅读 · 0 评论 -
Neutron WSGI/HTTP API层
本文将介绍Neutron的HTTP API的内部实现,以及Neutron中,可以用来创建Neutron API扩展的类。Python网页应用通过Python Web Server Gateway Interface (WSGI) 与 web服务器交互,WSGI定义在文档 PEP 333 中。建立 StartupNeutron的WSGI服务器由 server module 启动,入口点ser...原创 2019-07-07 22:54:51 · 618 阅读 · 0 评论 -
Neutron的ML2 扩展管理器
ML2的扩展管理器在Juno中介绍(更多详细信息可在批准的 spec中找到。此管理器功能允许扩展ML2资源,而又不必向ML2引入交叉关注点。这个机制已经应用于许多用例,当前使用此框架的扩展可在链接ml2/extensions 中找到,如下;data_plane_status.pydns_integration.pyport_security.pyqos.pyuplink_status_...原创 2019-07-07 22:53:00 · 265 阅读 · 0 评论 -
Neutron 数据库Model迁移
本文档旨在跟踪并通知开发人员Neutron中的DB model模型将集中化并转移到目录neutron/db/models目录下的一棵新代码树上。这在文档[1]中讨论过。迁移数据库模型的原因是为了解决在实现Neutron资源的oslo版本化对象时,发生的循环导入问题。这种迁移背后的原因是Mixin类和Neutron中一些资源的数据库模型db models处于同一模块中。在Mixin类中,有一些方法...原创 2019-07-07 22:51:35 · 381 阅读 · 0 评论 -
Neutron L2 代理扩展
L2 agent扩展是通用L2/L3扩展框架的一部分。参见OpenStack官方文档 agent extensions。Open vSwitch agent APIneutron.plugins.ml2.drivers.openvswitch.agent.ovs_agent_extension_apiOpen vSwitch agent API 对象包含两个方法,它们返回封装的网桥对象和...原创 2019-07-07 22:49:59 · 366 阅读 · 0 评论 -
OpenStack集成外部 DNS 服务
自从Mitaka发行版之后,Neutron有了一个与外部DNS服务交互的接口。这个接口基于一个抽象的驱动程序,其可用作基类以实现与各种DNS服务交互的准确的驱动程序。这种驱动的参考实现集成了Neutron与 _OpenStack Designate.此集成允许用户发布dns_name 和 dns_domain属性,这些属性关联与外部DNS服务的浮动IP地址、端口和网络。Neutron API的...原创 2019-07-07 22:48:22 · 706 阅读 · 0 评论 -
neutron 网络IP可用性扩展
此扩展是一个只提供信息的API,它允许用户或进程确定网络及其子网的分配池中已消耗的IP数量。每个网络和内嵌子网返回两个值used_ips 和 total_ips,有这两个值很容易确定网络的IP地址空间消耗量。此API使网络管理员能够定期列出检查IP使用情况(手动或自动),以便在超过阈值时,先一步添加新网络容量。重要事项:此API跟踪网络的“可消耗”IP地址。有什么区别?创建网络及其子网后,可...原创 2019-07-08 21:18:14 · 555 阅读 · 0 评论 -
Neutron RPC API 层
Neutron使用oslo.messaging库提供服务service模块间的内部通信通道。这种通信通常是通过AMQP完成,但大多数细节被oslo.messaging的使用所隐藏,将来可能使用其它的协议。RPC API在Neutron中定义为两个部分:客户端和服务器端。客户端这里是一个RPC客户端的定义示例: import oslo_messaging from neutron....原创 2019-07-08 21:19:23 · 732 阅读 · 0 评论 -
Neutron Macvtap mechanism驱动程序
ML2插件的Macvtap mechanism驱动程序通常会提高实例的网络性能。考虑此mechanism驱动程序的以下属性以确定在你的环境中的实用性:仅支持实例端口。用于DHCP和第3层(路由)服务的端口必须使用其它的mechanism驱动程序,如Linux网桥或Open vSwitch(OVS)。仅支持无标签(flat)和标签(VLAN)网络。缺乏对安全组的支持,包括基本(正...原创 2019-07-09 21:04:45 · 527 阅读 · 0 评论 -
Neutron中的三层网络 - 通过 Layer 3 agent 及 OpenVSwitch
本文讨论使能三层功能的Neutron使用.Neutron 逻辑网络建立 logical network setup vagrant@precise64:~/devstack$ openstack network list +--------------------------------------+---------+------------------------------...原创 2019-07-09 20:55:57 · 634 阅读 · 0 评论 -
Neutron代理扩展 Agent extensions
所有引用代理都使用一个通用的扩展机制,该机制允许引入和启用核心资源扩展而无需更改代理代码。此机制允许单个代理同时运行多个代理扩展。这种机制对位于Neutron代码树之外的第三方扩展特别有用。在此框架下,代理向其每个扩展公开其API,从而允许扩展访问代理内部的资源。例如,在第2层,在每个端口事件上,代理可以触发其扩展中的handle_port方法。与代理API对象的交互顺序如下:代理初始化代...原创 2019-07-09 20:49:31 · 379 阅读 · 0 评论 -
Open vSwitch硬件卸载
本文的目的是描述如何使能OpenStack中可用的Open vSwitch硬件卸载offloading功能(使用OpenStack Networking)。此功能首先在OpenStack Pike版本引入。本文作为一个指南,展示如何配置OpenStack Networking和计算节点,来使能Open vSwitch硬件卸载功能。基础 The basicsOpen vSwitch是一个生成级别...原创 2019-07-12 23:59:12 · 4773 阅读 · 0 评论 -
OpenStack之BGP动态路由
BGP动态路由可将self-service(私有)网络的前缀信息通告给支持BGP的物理网络设备,如routers,可消除到传统的静态路由的依赖。此特性依赖于OpenStack官方项目文档 address scopes中的地址信息,并需要正确部署的相关知识。BGP动态路由有一个服务插件和一个代理组成。服务插件实现Networking服务扩展,代理管理BGP对端会话。云管理员使用CLI或者API创建...原创 2019-07-12 23:54:41 · 1483 阅读 · 0 评论 -
OVS IPsec 指南
本文档提供了在Open vSwitch下运行IPsec隧道的步骤指南。更详细的关于OVS IPsec隧道及其配置模式的信息可在OVS官方工程的文件:/howto/ipsec中找到。要求 RequirementsOVS IPsec隧道要求Linux内核(>= v3.10.0)和 非内核基础的OVS模块。合适的IKE守护进程为 LibreSwan (>= v3.23) 和 Strong...原创 2019-07-12 23:30:42 · 1997 阅读 · 0 评论 -
OpenStack OVS防火墙驱动程序
OVS驱动程序与当前的iptables防火墙驱动程序具有相同的API接口,将安全组和端口的状态保留在防火墙内。创建类“SGPortMap”以保持防火墙状态的一致,并负责从端口映射到安全组,或者相反。每个端口和安全组都通过其封装必要信息的自身对象所表示。注:Open vSwitch防火墙驱动程序使用register 5标识与流关联的端口,使用register 6标识特别应用于conntrack ...原创 2019-07-09 08:28:09 · 1497 阅读 · 0 评论 -
Neutron 消息回调系统
Neutron已经有了callback system - 回调系统, 为进程内资源设置的回调,使得发布者publisher和订阅者subscriber可发布和订阅资源事件。文本介绍的系统与以上不同,本系统旨在通过消息扇出机制(fanout mechanism)实现进程间的回调。在Neutron中,代理可能需要订阅特定的资源细节,这些细节可能会随着时间而改变。此消息回调系统的目的是允许代理订阅这...原创 2019-07-08 21:21:33 · 882 阅读 · 0 评论 -
Neutron 授权策略实施
类似大多数的OpenStack projects,Neutron也使用oslo_policy。但是,由于Neutron喜欢与众不同,并使每个开发者的生活复杂化,它还通过以下方式“增强”了oslo_policy的能力:一个有自身API的封装模块:neutron.policy;对请求消息体中资源的属性添加细粒度检查的能力;使用策略引擎过滤响应中属性的能力;在oslo_policy中定义的规则...原创 2019-08-01 19:43:42 · 890 阅读 · 0 评论