SR-IOV 网络支持¶
SR-IOV 是一种将硬件虚拟化网络功能 (VF) 或完整物理功能 (PF) 直接传递到 KVM 实例的机制;OpenStack charms 应该更新以支持此功能。
问题描述¶
使用 Open vSwitch 和桥接链、veth 对以及 tap 设备会给网络吞吐量和延迟带来开销,这在某些 OpenStack 用例中是不可接受的。
SR-IOV 允许通过 libvirt 提供的虚拟化层将 SR-IOV 支持的网络卡的全部 (PF) 或部分 (VF) 直接连接到 KVM 实例。
在 Mitaka 版本中完全实现了对这两种类型的直通的支持。
提议的变更¶
支持 SR-IOV 需要对三个 charms 进行更改;具体来说
neutron-api:启用 SR-IOV 的 ML2 机制驱动程序
nova-cloud-controller:启用适当的调度器过滤器,用于管理 PCI 直通设备
nova-compute:白名单 PCI 设备,供计算实例使用。
SR-IOV 将使用 neutron-api charm 上的配置选项 ‘enable-sriov’ 启用;nova-cloud-controller charm 将通过 nova-cloud-controller charm 和 neutron-api charm 之间的关系收到此选项的状态通知。
在首次实现中,nova-compute charm 将提供一个 pci-device-whitelist 配置选项,以允许将特定的 PCI 设备分配给计算实例。这是直接传递到 Nova 配置选项。此功能的后续版本可能会使用 Juju 中尚未实现的功能,以在单元级别管理 PCI 设备分配。
初始 SR-IOV 支持将是无代理的(即不使用 neutron-sriov-agent)。
将支持 Flat 和 VLAN 网络模式。
备选方案¶
无
实现¶
负责人¶
- 主要负责人
james-page
Gerrit Topic¶
对于与此规范相关的所有补丁,请使用 Gerrit 主题 “sriov-support”。
git-review -t sriov-support
工作项¶
SR-IOV 的初始 charm 支持¶
neutron-api:添加 enable-sriov 配置选项,启用机制驱动程序,将详细信息传递给 nova-cloud-controller charm。
nova-cloud-controller:当 neutron-api charm 启用 enable-sriov 时,将 PciPassthroughFilter 添加到调度器过滤器。
nova-compute:添加 pci-device-whitelist 配置选项,直接传递到 nova.conf 配置文件模板。
SR-IOV 基本启用的 Mojo 规范¶
部署启用了 SR-IOV 的 OpenStack Cloud 的功能测试规范。
SR-IOV VF/PF 调度测试¶
专注于测试,以确保在云中使用 SR-IOV 时调度行为得到适当调整。
Juju 设备绑定支持¶
Newton 周期中的 Stretch 目标;取代 nova-compute charm 上的 pci-device-whitelist 选项
仓库¶
不需要新的 git 仓库。
文档¶
作为此更改的一部分,将更新受影响的 charms 中的 README 文件。
安全性¶
没有额外的安全问题。
测试¶
代码更改将由单元测试覆盖;功能测试将使用 Mojo 规范完成。
依赖项¶
OpenStack Mitaka。
用于功能测试的 Ubuntu OpenStack QA 实验室中的 SR-IOV 支持的硬件
Juju 设备管理支持