跳转到: 导航, 搜索

Neutron/Spec-NVPPlugin-Provider-Nets

Warning.svg 旧设计页面

此页面曾用于帮助设计 OpenStack 早期版本的一个特性。该特性可能已经或尚未实现。因此,此页面可能不会更新,并且可能包含过时的信息。上次更新时间为 2014-05-15

NVP 插件对 Provider 网络的支持

范围

此蓝图的目的是在 NVP 插件中实现对 provider 网络 API 扩展的支持。

用例

此蓝图的使用场景与为 Folsom 版本实现的原始 provider 网络蓝图完全相同。没有 NVP 插件特有的使用场景

实现概述

实现方式将与其他插件(例如 OVS 和 Linux Bridge 插件)实现 provider 网络支持的方式相同。基本上,插件将提供用于处理逻辑网络和物理网络之间绑定的数据模型类;插件还将处理对 provider 网络扩展属性的操作授权;最后,插件将在适当的时候扩展响应以包含 provider 属性。

由于此代码大多来自 OVS 插件,这可能需要两个后续操作:1) 在这种情况下使用策略引擎进行授权(目前我们存在限制,因为我们无法使用它来剥离不应向标准用户可见的属性,例如 provider 属性) 2) 在 API 框架中提供钩子,以便扩展可以扩展响应,而无需在每个插件中复制样板代码。

此外,值得商榷的是,我们是否应该保留当前插件定义 provider 网络支持数据模型的方法,还是采用 mixin 方法(参见安全组和 l3)。

无论如何,所有这些项目都超出了此蓝图的范围,此蓝图专门针对 NVP 插件。将为此目的提交单独的 bug 报告/蓝图。

Nicira 插件将使用 NVP API 执行逻辑交换机和物理网络之间的映射。由于这可能会导致为单个 Quantum 网络创建多个逻辑交换机,因此 NVP 插件需要具有适当的逻辑来管理映射到多个逻辑交换机的 Quantum 网络。

数据模型变更

建议的数据模型更改与其它插件实现此扩展的方式一致

   ||<-4> NetworkBinding ||
   || network_id || String || ForeignKey('networks.id', ondelete="CASCADE" || primary_key=True ||
   || binding_type || Enum('flat', 'vlan', 'stt', 'gre') || || nullable=False ||
   || tz_uuid || String || || ||
   || vlan_id || Integer || || ||

配置变量

以下变量将被添加到 /etc/plugins/nicira/nvp.ini

每个桥接逻辑交换机的最大端口数 max_lp_per_bridged_ls = 64

每个叠加(stt, gre)逻辑交换机的最大端口数 max_lp_per_overlay_ls = 256

API

虽然此蓝图不会添加或更改 Quantum API 中的任何内容,但它需要更改 network_type provider 属性的验证器。这是因为需要支持 NVP 特定的网络类型,并且目前插件无法在加载属性到属性映射后以任何方式更改验证器。

这将是对扩展定义的微小更改,不会影响插件的当前工作方式。

测试用例

将向 test_nicira_plugin 模块添加 NVP 特定的单元测试,以验证插件中的代码。