XenAPI vCPU 拓扑

https://blueprints.launchpad.net/nova/+spec/xenapi-vcpu-topology

该提案旨在为 XenAPI 添加 vCPU 拓扑支持。它将利用 virt-driver-vcpu-toplogy 蓝图中所做的工作。该蓝图的大部分内容都从 virt-driver-vcpu-topology 蓝图复制而来,因为它们对齐良好,但在每个 hypervisor 的实现上略有不同。

问题描述

请参阅蓝图末尾引用的 Virt Driver VCPU Topology 规范。

提议的变更

请参阅蓝图末尾引用的 Virt Driver VCPU Topology 规范。

对于 XenServer 实现,将使用以下配置

  • hw:cpu_sockets=NN - 告知客户机暴露的首选套接字数量

  • hw:cpu_cores=NN - 告知客户机暴露的首选核心数量

  • hw:cpu_max_sockets=NN - 告知客户机暴露的最大套接字数量

  • hw:cpu_max_cores=NN - 告知客户机暴露的最大核心数量

在镜像级别,将允许完全相同的参数集,但不同之处在于镜像属性将使用下划线代替初始冒号。

  • hw_cpu_sockets=NN - 告知客户机暴露的首选套接字数量

  • hw_cpu_cores=NN - 告知客户机暴露的首选核心数量

  • hw_cpu_max_sockets=NN - 告知客户机暴露的最大套接字数量

  • hw_cpu_max_cores=NN - 告知客户机暴露的最大核心数量

请注意,XenServer 没有专门用于线程数量的设置,因此目前在 XenServer 上设置线程将不起作用。

备选方案

无,将利用 virt-driver-vcpu-topology 蓝图中所做的工作。

数据模型影响

没有影响。

新的属性将使用现有的 flavor extra specs 和镜像属性存储模型。

REST API 影响

没有影响。

新的属性将使用现有的 flavor extra specs 和镜像属性 API 功能。

安全影响

在涉及 NUMA 时,套接字与核心的选择会对主机资源利用率产生影响,因为过度使用核心会阻止客户机跨多个 NUMA 节点拆分。此功能通过允许 flavor 管理员定义硬性上限,并确保 flavor 始终优先于镜像设置来解决此问题。

通知影响

没有影响。

此功能不需要与通知集成。

其他最终用户影响

用户将获得控制其客户机使用的 vCPU 拓扑的各个方面。他们将通过在 glance 中设置镜像属性来实现这一点。

性能影响

核心与套接字与线程的决策不涉及任何调度器交互,因为此设计并非尝试将主机拓扑与客户机拓扑匹配。后续蓝图中的 CPU pinning 将使其能够实现这种主机到客户机拓扑匹配,其性能影响将在那时考虑。

其他部署者影响

flavor extra specs 将在 extra specs 中获得新的参数,云管理员可以选择使用这些参数。如果没有设置任何参数,则默认行为不会从以前的版本中更改。

开发人员影响

实现将为 XenAPI 驱动程序添加支持。

实现

负责人

主要负责人

antonym johngarbutt

工作项

  • 添加 XenAPI 驱动程序支持,以根据给定的 hw_cpu_* 参数选择 CPU 拓扑解决方案。

依赖项

没有外部依赖项

测试

此功能的测试将由 XenServer CI 涵盖。

文档影响

需要记录新的 flavor extra specs 和镜像属性。应向云管理员提供有关如何最有效地使用新功能的指导。应向最终用户提供有关如何使用新功能来解决其用例的指导。

参考资料