Neutron/Spec-NVPPlugin-Provider-Nets
| |
旧设计页面
此页面曾用于帮助设计 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 特定的单元测试,以验证插件中的代码。