3.3. 类型元数据
使用 --property
选项指定创建类别时的类别元数据。类别元数据也称为额外规格。类别元数据决定了实例硬件支持和配额,这会影响实例放置、实例限值和性能。
实例资源使用量
使用下表中的属性键配置实例的 CPU、内存和磁盘 I/O 使用情况的限制。
限制实例 CPU 资源使用的额外规格是特定于主机的可调属性,这些属性直接传递给 libvirt,然后将限制传递给主机操作系统。因此,支持的实例 CPU 资源限制配置取决于底层主机操作系统。
有关如何在 RHOSP 部署中为 Compute 节点配置实例 CPU 资源使用情况的更多信息,请参阅 RHEL 9 文档中的了解 cgroups 文档,以及 Libvirt 文档中的 CPU 调优。
键 | 描述 |
---|---|
|
指定域的 CPU 时间成比例权重共享。默认为 OS 提供的默认值。计算调度程序相对于同一域中的其他实例上设置此属性的计算调度程序。例如,使用 |
|
以微秒为单位指定强制实施 |
|
以微秒为单位,指定每个
您可以使用 $ openstack flavor set cpu_limits_flavor \ --property quota:cpu_quota=10000 \ --property quota:cpu_period=20000 |
实例磁盘调整
使用下表中的属性键调整实例磁盘性能。
Compute 服务将以下服务质量设置应用到调配了 Compute 服务的存储,如临时存储。要调整块存储(cinder)卷的性能,还必须为卷类型配置和关联服务质量(QoS)规格。如需更多信息,请参阅 配置持久性存储 指南中的 块存储服务(cinder)服务质量规格。
键 | 描述 |
---|---|
| 指定实例可以使用的最大磁盘读取,以字节为单位。 |
| 在 IOPS 中指定实例可以使用的最大磁盘读取。 |
| 指定实例可以使用的最大磁盘写入,以字节为单位。 |
| 指定 IOPS 中可用于实例的最大磁盘写入。 |
| 指定实例可以使用的最大 I/O 操作,以每秒字节数为单位。 |
| 指定 IOPS 中可用于实例的最大 I/O 操作。 |
实例网络流量带宽
通过配置 VIF I/O 选项,使用下表中的属性键配置实例网络流量的带宽限制。
quota :vif
curator 属性已弃用。相反,您应该使用 Networking (neutron)服务服务质量(QoS)策略。如需有关 QoS 策略的更多信息,请参阅配置 Red Hat OpenStack Platform 网络指南中的配置服务质量(QoS)策略。只有在使用 ML2/OVS 机制驱动 NeutronOVSFirewallDriver
设置为 iptables_hybrid
时,才会支持 quota:vif_*
属性。
键 | 描述 |
---|---|
| (已弃用)指定传入实例的流量所需的平均位率,单位为 kbps。 |
| (已弃用)指定可以 KB 为单位突发的最大传入流量量。 |
| (已弃用)指定实例可以接收传入流量的最大率,单位为 kbps。 |
| (已弃用)指定来自实例的流量所需的平均位率(单位为 kbps)。 |
| (已弃用)指定可以 KB 为单位突发的最大传出流量量。 |
| (已弃用)指定实例可以发送传出流量的最大速率(单位为 kbps)。 |
硬件视频 RAM
使用下表中的 property 键配置实例 RAM 的限值,以用于视频设备。
键 | 描述 |
---|---|
|
指定用于视频设备的最大 RAM,以 MB 为单位。使用 |
watchdog 行为
使用下表中的 property 键在实例上启用虚拟硬件 watchdog 设备。
键 | 描述 |
---|---|
|
指定 以启用虚拟硬件 watchdog 设备并设置其行为。如果实例挂起或失败,则 watchdog 设备执行配置的操作。watchdog 使用 i6300esb 设备,它模拟 PCI Intel 6300ESB。如果没有指定 设置为以下有效值之一:
|
随机数字生成器(RNG)
使用下表中的属性键在实例上启用 RNG 设备。
键 | 描述 |
---|---|
|
设置为
Default: |
| 指定实例在每个期间可以从主机的熵读取的最大字节数。 |
| 以毫秒为单位指定读取周期的持续时间。 |
虚拟性能监控单元(vPMU)
使用下表中的 property 键为实例启用 vPMU。
键 | 描述 |
---|---|
|
设置为
|
虚拟受信任的平台模块(vTPM)设备
使用下表中的属性键为实例启用 vTPM 设备。
键 | 描述 |
---|---|
|
设置为要使用的 TPM 版本。TPM 版本 |
|
设置为要使用的 TPM 设备模型。如果没有配置
|
实例 CPU 拓扑
使用下表中的属性键定义实例中处理器的拓扑。
键 | 描述 |
---|---|
| 指定实例的首选插槽数。 默认: 请求的 vCPU 数量 |
| 指定实例的每个插槽的首选内核数。
默认: |
| 指定实例的每个内核的首选线程数量。
默认: |
| 指定用户可以使用镜像属性为其实例选择的最大插槽数。
示例: |
| 指定每个插槽的最大内核数,用户可以使用镜像属性为其实例选择的最大内核数。 |
| 指定用户可使用镜像属性为实例选择的每个内核的最大线程数量。 |
串行端口
使用下表中的 property 键来配置每个实例的串行端口数量。
键 | 描述 |
---|---|
| 每个实例的最大串行端口。 |
CPU 固定策略
默认情况下,实例虚拟 CPU (vCPU)是带有一个内核和一个线程的套接字。您可以使用属性来创建将实例 vCPU 固定到主机的物理 CPU 内核(pCPU)的类别。您还可以在并发多线程(SMT)架构中配置硬件 CPU 线程的行为,其中一个或多个内核有线程同级。
使用下表中的属性键来定义实例的 CPU 固定策略。
键 | 描述 |
---|---|
| 指定要使用的 CPU 策略。设置为以下有效值之一:
|
|
指定当
|
| 指定专用(固定)或共享(未固定/浮动)的 CPU。
|
实例 PCI NUMA 关联性策略
使用下表中的 property 键创建类别,为 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 拓扑冲突,Compute 服务会引发 ImageNUMATopologyForbidden
错误。
您不能使用此功能将实例限制到特定的主机 CPU 或 NUMA 节点。只有在完成广泛的测试和性能测量后,才使用此功能。您可以使用 hw:pci_numa_affinity_policy
属性替代。
使用下表中的属性键来定义实例 NUMA 拓扑。
键 | 描述 |
---|---|
| 指定主机 NUMA 节点数量,以限制实例 vCPU 线程的执行。如果没有指定,vCPU 线程可以在任意数量的可用主机 NUMA 节点上运行。 |
| 以逗号分隔的实例 vCPU 列表,映射到实例 NUMA 节点 N。如果没有指定此密钥,则 vCPU 在可用的 NUMA 节点之间平均划分。 N 从 0 开始。请谨慎使用 ./N 值,只有在您至少有两个 NUMA 节点时才使用。
只有在设置了 |
| 映射到实例 NUMA 节点 N 的实例内存数量。如果没有指定此密钥,则内存在可用的 NUMA 节点之间平均划分。 N 从 0 开始。请谨慎使用 ./N 值,只有在您至少有两个 NUMA 节点时才使用。
只有在设置了 |
如果 hw:numa_cpus.N
或 hw:numa_mem.N
的合并值分别大于可用 CPU 或内存的数量,则计算服务会引发异常。
CPU 实时策略
使用下表中的属性键定义实例中处理器的实时策略。
- 虽然大多数实例 vCPU 都可以使用实时策略运行,但您必须将至少一个 vCPU 标记为非实时客户端进程和仿真程序开销进程。
- 要使用这个额外规格,您必须启用固定 CPU。
键 | 描述 |
---|---|
|
设置为
默认: |
| 指定不为其分配实时策略的 vCPU。您必须使用逗号(^)前添加掩码值。以下示例显示,除 vCPU 0 和 1 以外的所有 vCPU 都有一个实时策略: $ openstack flavor set <flavor> \ --property hw:cpu_realtime="yes" \ --property hw:cpu_realtime_mask=^0-1 注意
如果在镜像上设置 |
仿真程序线程策略
您可以将 pCPU 分配给用于仿真程序线程的实例。仿真程序线程是与实例直接相关的仿真程序进程。实时工作负载需要专用的仿真程序线程 pCPU。要使用仿真程序线程策略,您必须通过设置以下属性来启用固定 CPU:
--property hw:cpu_policy=dedicated
使用下表中的 property 键来定义实例的仿真程序线程策略。
键 | 描述 |
---|---|
| 指定用于实例的仿真程序线程策略。设置为以下有效值之一:
|
实例内存页面大小
使用下表中的属性键创建带有显式内存页面大小的实例。
键 | 描述 |
---|---|
|
指定用于支持实例的大页面大小。使用此选项会创建 1 NUMA 节点的隐式 NUMA 拓扑,除非由
|
PCI passthrough
使用下表中的属性键将物理 PCI 设备(如图形卡或网络设备)附加到实例。有关使用 PCI 透传的更多信息,请参阅配置 PCI 透传。
键 | 描述 |
---|---|
| 使用以下格式指定要分配给实例的 PCI 设备: <alias>:<count>
|
hypervisor 签名
使用下表中的 property 键从实例中隐藏 hypervisor 签名。
键 | 描述 |
---|---|
|
设置为 |
UEFI 安全引导
使用下表中的 property 键创建一个通过 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 设置为以下有效值之一:
例如: $ openstack flavor set --property trait:HW_CPU_X86_AVX512BW=required avx512-flavor |
实例裸机资源类
使用下表中的 property 键为实例请求裸机资源类。
键 | 描述 |
---|---|
| 使用此属性指定标准裸机资源类来覆盖 的值,或者指定实例所需的自定义裸机资源类。
您可以覆盖的标准资源类是
自定义资源类的名称必须以
例如,要在具有 $ openstack flavor set \ --property resources:CUSTOM_BAREMETAL_SMALL=1 \ --property resources:VCPU=0 --property resources:MEMORY_MB=0 \ --property resources:DISK_GB=0 compute-small |