Freescale SDN 机制驱动程序,用于 Neutron ML2 插件¶
https://blueprints.launchpad.net/neutron/+spec/fsl-sdn-os-mech-driver
FSL-SDN MD:Freescale SDN 机制驱动程序
- CRD云资源发现服务 - 类似于 neutron,
使用 keystone 身份验证进行所有 ReSTful 调用。
Freescale SDN (FSL-SDN) 机制驱动程序代理来自 Neutron 的 ML2 插件到 CRD 服务的 ReSTful 调用(格式化为 CRD 服务)。
它通过将网络、子网和端口的创建/更新/删除数据更新到 CRD 数据库来支持云资源发现 (CRD) 服务。
CRD 服务管理网络节点、虚拟网络设备和 openflow 控制器网络应用程序。
基本工作流程如下所示。
+---------------------------------+
| |
| Neutron Server |
| (with ML2 plugin) |
| |
| +-------------------------------+
| | Freescale SDN |
| | Mechanism Driver |
+-+--------+----------------------+
|
| ReST API
|
+----------+-------------+
| CRD server |
+------------------------+
问题描述¶
CRD 服务需要基于 Openstack neutron 的网络和端口信息来管理虚拟网络设备和 openflow 控制器应用程序。
为了将此信息从 neutron 服务发送出去,需要一个新的 ML2 机制驱动程序来将 _postcommit 数据发布到 CRD 服务。
提议的变更¶
Freescale 机制驱动程序处理以下 postcommit 操作。
网络创建/更新/删除 子网创建/更新/删除 端口创建/删除
FSL OF 控制器支持的网络类型包括 vlan 和 vxlan。
Freescale SDN 机制驱动程序在机制驱动程序内部处理 VM 端口绑定(如 ODL MD)。
‘bind_port’ 函数验证支持的网络类型(vlan,vxlan)并使用绑定详细信息调用 context.set_binding。
Freescale Openflow 控制器管理 OVS 上所需的流。
create_network 事件的序列流程如下
create_network
{
neutron -> ML2_plugin
ML2_plugin -> FSL-SDN-MD
FSL-SDN-MD -> crd_service
FSL-SDN-MD <-- crd_service
ML2_plugin <-- FSL-SDN-MD
neutron <-- ML2_plugin
}
端口绑定任务在机制驱动程序内部处理,因此在启用此机制驱动程序时不需要 OVS 代理驱动程序。
备选方案¶
无
数据模型影响¶
无
REST API 影响¶
无
安全影响¶
无
通知影响¶
无
其他最终用户影响¶
无
性能影响¶
可忽略/无
虽然数据从机制驱动程序发送到 CRD 服务,但性能影响可以忽略不计(小于 1%)或没有影响。
其他部署者影响¶
此更改不会立即生效。
要与此更改一起工作,需要将 neutron 配置为 ml2,并将 fslsdn 配置为机制驱动程序,同时运行 CRD 服务。
要启用 Freescale SDN 机制驱动程序,需要进行以下配置更改。
在 /etc/neutron/plugins/ml2/ml2_conf.ini 的 [ml2] 部分,修改 ‘mechanism_drivers’ 属性为:
mechanism_drivers = fslsdn
更新 /etc/neutron/plugins/ml2/ml2_conf_fslsdn.ini,如下所示。
[ml2_fslsdn]
crd_auth_strategy = keystone
crd_url = http://127.0.0.1:9797
crd_auth_url = http://127.0.0.1:5000/v2.0/
crd_tenant_name = service
crd_password = <-service-password->
crd_user_name = <-service-username->
CRD 服务必须在 Controller 上运行。
开发人员影响¶
无。
实现¶
负责人¶
- 主要负责人
trinath-somanchi
- 其他贡献者
无
工作项¶
机制驱动程序 (mechanism_fslsdn.py)
依赖项¶
无
测试¶
包含代码的完整单元测试覆盖率。
对于 tempest 测试覆盖率,提供第三方测试(Freesacle CI)。
Freescale CI 报告所有影响此驱动程序的更改。
使用 devstack 和 CRD 服务进行测试。
CRD 服务日志也发布到 CI 日志存储库。
文档影响¶
配置参考指南将从代码中更新。
参考资料¶
无