9.3. 类别元数据
在创建类别时 ,使用--property 选项指定类别元数据。类别元数据也称为额外规格。类别元数据决定了实例硬件支持和配额,影响实例放置、实例限值和性能。
实例资源使用量
使用下表中的属性键,配置实例的 CPU、内存和磁盘 I/O 使用量限制。
用于限制实例 CPU 资源使用的额外 spec 是特定于主机的可调属性,这些属性直接传递给 libvirt,然后将限制传递给主机操作系统。因此,支持的实例 CPU 资源限值配置取决于底层主机操作系统。
有关如何在 RHOSP 部署中为 Compute 节点配置实例 CPU 资源使用情况的更多信息,请参阅 RHEL 9 文档中的了解 cgroups 以及 Libvirt 文档中的 CPU 调优。
| 键 | 描述 |
|---|---|
|
|
指定域的 CPU 时间的比例加权共享。默认为提供的默认值。计算调度程序相对于同一域中其他实例上的此属性设置的值。例如,使用 |
|
|
指定以微秒为单位强制 |
|
|
指定每个
您可以使用
|
实例磁盘调整
使用下表中的属性键来调优实例磁盘性能。
计算服务将以下服务质量设置应用到计算服务调配的存储,如临时存储。要调整 Block Storage (cinder)卷的性能,还必须为卷类型配置和关联服务质量(QoS)规格。如需更多信息,请参阅存储指南中的块存储服务(cinder)服务质量规格。
| 键 | 描述 |
|---|---|
|
| 指定实例可使用的最大磁盘读取,以每秒为单位。 |
|
| 指定 IOPS 中可供实例使用的最大磁盘读取。 |
|
| 指定实例可使用的最大磁盘写入,以每秒为单位。 |
|
| 指定 IOPS 中可供实例使用的最大磁盘写入。 |
|
| 指定可供实例使用的最大 I/O 操作,以字节为单位。 |
|
| 指定可供实例使用的最大 I/O 操作(以 IOPS 为单位)。 |
实例网络流量带宽
通过配置 VIF I/O 选项,使用下表中的属性键来配置实例网络流量的带宽限制。
配额 :vif swig 属性已弃用。反之,您应该使用 Networking (neutron)服务服务质量(QoS)策略。有关 QoS 策略的更多信息,请参阅网络指南中的配置服务质量(QoS)策略。只有在使用 ML2/OVS 机制驱动 NeutronOVSFirewallDriver 设置为 iptables_hybrid 时,才会支持 quota:vif_* 属性。
| 键 | 描述 |
|---|---|
|
| (已弃用)指定进入实例的流量所需的平均位率(单位为 kbps)。 |
|
| (已弃用)指定以 KB 为单位的峰值速度的最大传入流量量。 |
|
| (已弃用)指定实例可以接收传入流量的最大速率,以 kbps 为单位。 |
|
| (已弃用)指定从实例传出的流量所需的平均位率(单位为 kbps)。 |
|
| (已弃用)指定可在峰值速度(KB)中突发的最大传出流量。 |
|
| (已弃用)指定实例可以发送传出流量(以 kbps 为单位)的最大速率。 |
硬件视频 RAM
使用下表中的 property key 来配置用于视频设备的实例 RAM 的限制。
| 键 | 描述 |
|---|---|
|
|
指定用于视频设备的最大 RAM,以 MB 为单位。与 |
watchdog 行为
使用下表中的 property 键,在实例上启用虚拟硬件 watchdog 设备。
| 键 | 描述 |
|---|---|
|
|
指定启用虚拟硬件 watchdog 设备并设置其行为。如果实例挂起或失败,则 watchdog 设备执行配置的操作。watchdog 使用 i6300esb 设备,模拟 PCI Intel 6300ESB。如果没有指定 设置为以下有效值之一:
|
随机数字生成器(RNG)
使用下表中的属性键在实例上启用 RNG 设备。
| 键 | 描述 |
|---|---|
|
|
设置为
Default: |
|
| 指定实例可以从主机熵中读取的最大字节数。 |
|
| 以毫秒为单位指定读取周期的持续时间。 |
虚拟性能监控单元(vPMU)
使用下表中的 property 键,为实例启用 vPMU。
| 键 | 描述 |
|---|---|
|
|
设置为
|
实例 CPU 拓扑
使用下表中的属性键定义实例中处理器的拓扑。
| 键 | 描述 |
|---|---|
|
| 指定实例的首选插槽数。 默认:请求的 vCPU 数量 |
|
| 指定实例的每个插槽的首选内核数。
默认: |
|
| 指定实例每个内核的首选线程数量。
默认: |
|
| 使用镜像属性指定用户可以为其实例选择的最大插槽数。
示例: |
|
| 指定用户可以使用镜像属性为每个插槽选择的最大内核数。 |
|
| 指定每个内核可使用镜像属性为实例选择的最大线程数。 |
串行端口
使用下表中的 property key 来配置每个实例的串行端口数量。
| 键 | 描述 |
|---|---|
|
| 每个实例的最大串行端口。 |
CPU 固定策略
默认情况下,实例虚拟 CPU (vCPU)是带有一个核心和一个线程的套接字。您可以使用属性创建将实例 vCPU 固定到主机的物理 CPU 内核(pCPU)的类别。您还可以在并发多线程(SMT)架构中配置硬件 CPU 线程行为,其中一个或多个内核有线程同级。
使用下表中的属性键来定义实例的 CPU 固定策略。
| 键 | 描述 |
|---|---|
|
| 指定要使用的 CPU 策略。设置为以下有效值之一:
|
|
|
指定在
|
实例 PCI NUMA 关联性策略
使用下表中的 property key 创建类别,以指定 PCI 透传设备和 SR-IOV 接口的 NUMA 关联性策略。
| 键 | 描述 |
|---|---|
|
| 指定 PCI 透传设备和 SR-IOV 接口的 NUMA 关联性策略。设置为以下有效值之一:
|
实例 NUMA 拓扑
您可以使用属性创建类别,以定义实例 vCPU 线程的主机 NUMA 放置,以及从主机 NUMA 节点分配实例 vCPU 和内存。
为实例定义 NUMA 拓扑可提高实例操作系统的性能,其内存和 vCPU 分配会大于计算主机中的 NUMA 节点的大小。
计算调度程序使用这些属性来确定适合实例的主机。例如,云用户使用以下类型启动一个实例:
$ openstack flavor set numa_top_flavor \
--property hw:numa_nodes=2 \
--property hw:numa_cpus.0=0,1,2,3,4,5 \
--property hw:numa_cpus.1=6,7 \
--property hw:numa_mem.0=3072 \
--property hw:numa_mem.1=1024
计算调度程序搜索有两个 NUMA 节点的主机,一个有 3GB RAM,另一个运行 6 个 CPU,另一个具有 1GB RAM 和两个 CPU。如果主机只有一个 NUMA 节点,其能力运行 8 个 CPU 和 4GB RAM,则计算调度程序不会将其视为有效的匹配。
由类别定义的 NUMA 拓扑不能被镜像定义的 NUMA 拓扑覆盖。如果镜像 NUMA 拓扑与类别 NUMA 拓扑冲突,计算服务会引发 ImageNUMATopologyForbidden 错误。
您不能使用此功能将实例限制到特定的主机 CPU 或 NUMA 节点。只有在完成广泛的测试和性能测量后,才使用此功能。您可以使用 hw:pci_numa_affinity_policy 属性。
使用下表中的属性键来定义实例 NUMA 拓扑。
| 键 | 描述 |
|---|---|
|
| 指定将实例 vCPU 线程的执行限制为的主机 NUMA 节点数量。如果没有指定,vCPU 线程可以在任意数量的可用主机 NUMA 节点上运行。 |
|
| 映射到实例 NUMA 节点 N 的实例 vCPU 列表。如果没有指定此密钥,则 vCPU 会平均划分到可用的 NUMA 节点。 N 从 0 开始。请谨慎使用 3.0.N 值,只有在至少有两个 NUMA 节点时才使用。
只有在设置了 |
|
| 映射到实例 NUMA 节点 N 的实例内存数量。如果没有指定这个键,则会在可用的 NUMA 节点之间平均划分内存。 N 从 0 开始。请谨慎使用 3.0.N 值,只有在至少有两个 NUMA 节点时才使用。
只有在设置了 |
如果 hw:numa_cpus.N 或 hw:numa_mem.N 的组合值分别大于 CPU 或内存的数量,则计算服务会引发异常。
CPU 实时策略
使用下表中的属性键定义实例中处理器的实时策略。
- 虽然大多数实例 vCPU 可使用实时策略运行,但您必须将至少一个 vCPU 标记为非实时客户机进程和仿真程序开销进程。
- 要使用这个额外规格,您必须启用固定的 CPU。
| 键 | 描述 |
|---|---|
|
|
设置为
默认: |
|
| 指定不为其分配实时策略的 vCPU。您必须使用符号(^)添加掩码值。以下示例显示除 vCPU 0 和 1 外的所有 vCPU 都有实时策略:
注意
如果镜像上设置了 |
仿真程序线程策略
您可以为实例分配一个用于仿真程序线程的 pCPU。仿真程序线程是不与实例直接相关的仿真程序进程。实时工作负载需要专用仿真程序线程 pCPU。要使用仿真程序线程策略,您必须通过设置以下属性来启用固定的 CPU:
--property hw:cpu_policy=dedicated
使用下表中的 property 键来定义实例的仿真程序线程策略。
| 键 | 描述 |
|---|---|
|
| 指定用于实例的仿真程序线程策略。设置为以下有效值之一:
|
实例内存页面大小
使用下表中的属性键,创建具有显式内存页面大小的实例。
| 键 | 描述 |
|---|---|
|
|
指定用于支持实例的大页大小。使用此选项会创建 1 NUMA 节点的隐式 NUMA 拓扑,除非被
|
PCI 透传
使用下表中的 property key 将物理 PCI 设备(如图形卡或网络设备)附加到实例。有关使用 PCI 透传的更多信息,请参阅配置 PCI 透传。
| 键 | 描述 |
|---|---|
|
| 使用以下格式指定要分配给实例的 PCI 设备:
|
hypervisor 签名
使用下表中的 property key 从实例隐藏管理程序签名。
| 键 | 描述 |
|---|---|
|
|
设置为 |
UEFI 安全引导
使用下表中的 property key 创建使用 UEFI 安全引导保护的实例。
带有 UEFI 安全引导的实例必须支持 UEFI 和 GUID 分区表(GPT)标准,并包括一个 EFI 系统分区。
| 键 | 描述 |
|---|---|
|
|
设置为 |
实例资源特征
每个资源提供程序都有一组特征。特征是资源提供程序的定性方面,例如存储磁盘类型或 Intel CPU 指令集扩展。实例可以指定它需要的特征。
可以指定的特征在 os-traits 库中定义。特征示例包括:
-
COMPUTE_TRUSTED_CERTS -
COMPUTE_NET_ATTACH_INTERFACE_WITH_TAG -
COMPUTE_IMAGE_TYPE_RAW -
HW_CPU_X86_AVX -
HW_CPU_X86_AVX512VL -
HW_CPU_X86_AVX512CD
有关如何使用 os-traits 库的详情,请参考 https://docs.openstack.org/os-traits/latest/user/index.html。
使用下表中的 property 键来定义实例的资源特征。
| 键 | 描述 |
|---|---|
|
| 指定 Compute 节点特征。将 trait 设置为以下有效值之一:
例如:
|
实例裸机资源类
使用下表中的 property key 为实例请求裸机资源类。
| 键 | 描述 |
|---|---|
|
| 使用此属性指定标准裸机资源类来覆盖实例所需的自定义裸机资源类。
您可以覆盖的标准资源类是
自定义资源类的名称必须以
例如,要在具有
|