PCI 直通白名单正则表达式¶
https://blueprints.launchpad.net/nova/+spec/pci-passthrough-whitelist-regex
增强 PCI 直通白名单,以支持地址属性的正则表达式。
问题描述¶
当前的 PCI 直通白名单地址条目定义为:[“address”: “[[[[<domain>]:]<bus>]:][<slot>][.[<function>]]”,其中地址使用与 lspci 或使用 ‘*’ 的 PCI 设备聚合声明中相同的语法。因此,无法从 PCI 直通白名单地址中排除特定的 VF(s)。
用例¶
部署者可能希望排除特定的 VF(s) 以用于其他目的。例如,VF 可用于通过运行 iSER(RDMA 的 iSCSI 扩展)传输将计算节点连接到存储节点。
项目优先级¶
无
提议的变更¶
增强 PCI 直通白名单,以支持地址属性的正则表达式语法。将为 address 键引入新的语法:“address”:{ “domain”: <domain>, “bus”: <bus>, “slot”: <slot>, “function”: <function> } 传统的 glob 风格仍然受支持:“address”: “<domain>:<bus>:<slot>.<function>”
正则表达式语法的示例
这允许分配函数从 2 向上开始的 VF:pci_passthrough_whitelist= {“address”:{“domain”: “.*”, “bus”: “02”, “slot”: “01”, “function”: “[2-7]”}, “physical_network”:”net1”}
这允许分配函数从 2 向下开始的 VF:pci_passthrough_whitelist= {“address”:{“domain”: “.*”, “bus”: “02”, “slot”: “01”, “function”: “[0-2]”}, “physical_network”:”net1”}
这允许分配槽位在 1 到 2 之间的 VF:pci_passthrough_whitelist= {“address”:{“domain”: “.*”, “bus”: “02”, “slot”: “0[1-2]”, “function”: “.*”}, “physical_network”:”net1”}
备选方案¶
我们可以为每个主机添加多个 PCI 直通白名单条目,而不是白名单正则表达式。这些条目包括所有可用的 VF。这已经受支持。
我们可以添加 PCI 直通黑名单与白名单一起使用,以排除特定的 PCI 地址,而不是白名单正则表达式。
数据模型影响¶
无
REST API 影响¶
无
安全影响¶
无
通知影响¶
无
其他最终用户影响¶
无
性能影响¶
无
其他部署者影响¶
无
开发人员影响¶
无
实现¶
负责人¶
主要负责人:moshele (moshele@mellanox.com)
工作项¶
在 devspec.py 中为 PciAddress 添加正则表达式语法支持。
依赖项¶
无
测试¶
将添加单元测试。
Mellanox 第三方 CI 将更新以测试此功能。 https://wiki.openstack.org/wiki/ThirdPartySystems/Mellanox_CI
文档影响¶
已将正则表达式语法添加到 pci_passthrough_whitelist 条目,如上文所述。
参考资料¶
[1] https://review.openstack.org/#/c/99043/ [2] https://wiki.openstack.org/wiki/SR-IOV-Passthrough-For-Networking