8.3. 类别元数据
在创建类别时,使用 --property
选项指定类别元数据。类别元数据也称为额外规格。类别元数据决定了实例硬件支持和配额,这会影响实例放置、实例限值和性能。
实例资源使用量
使用下表中的属性键配置实例的 CPU、内存和磁盘 I/O 使用量的限制。
表 8.3. 资源使用量的类别元数据
键 | 描述 |
---|---|
|
指定域的 CPU 时间的比例权重共享。默认为操作系统提供的默认值。计算调度程序相对于同一域中的其他实例设置此属性的权重。例如,配置有 |
|
指定以微秒为单位强制执行 |
|
指定每个
您可以使用 $ openstack flavor set cpu_limits_flavor \ --property quota:cpu_quota=10000 \ --property quota:cpu_period=20000 |
实例磁盘调整
使用下表中的属性键调整实例磁盘性能。
Compute 服务对 Compute 服务调配的存储(如临时存储)应用下列服务质量设置。要调整 Block Storage (cinder)卷的性能,还必须为卷类型配置服务质量(QOS)值。如需更多信息,请参阅 存储指南中的使用服务质量规格。
表 8.4. 磁盘调整的类别元数据
键 | 描述 |
---|---|
| 指定实例可用的最大磁盘读取,以字节/秒为单位。 |
| 指定实例可用的最大磁盘读取,以 IOPS 为单位。 |
| 指定实例可用的最大磁盘写入,以字节/秒为单位。 |
| 指定实例可用的最大磁盘写入,以 IOPS 为单位。 |
| 指定实例可用的最大 I/O 操作,以字节/秒为单位。 |
| 指定实例可用的最大 I/O 操作,以 IOPS 为单位。 |
实例网络流量带宽
通过配置 VIF I/O 选项,使用下表中的属性键配置实例网络流量的带宽限制。
配额 :vif
114 属性已弃用。取而代之,您应该使用 Networking (neutron)服务质量(QoS)策略。如需有关 QoS 策略的更多信息,请参阅网络指南中的配置服务质量(QoS)策略。只有在使用 ML2/OVS 机制驱动 NeutronOVSFirewallDriver
设置为 iptables_hybrid
时,才会支持 quota:vif_*
属性。
表 8.5. 带宽限制的类别元数据
键 | 描述 |
---|---|
| (已弃用)指定进入实例的流量所需的平均位率(以 kbps 为单位)。 |
| (已弃用)以 KB 为单位指定可能以峰值速度突发的最大传入流量数量。 |
| (已弃用)指定实例可以接收传入流量的最大速率,以 kbps 为单位。 |
| (已弃用)指定从实例传出的流量所需的平均位率(以 kbps 为单位)。 |
| (已弃用)以 KB 为单位指定可突发的最大传出流量数量。 |
| (已弃用)指定实例可以发送传出流量的最大速率,以 kbps 为单位。 |
硬件视频 RAM
使用下表中的属性键配置用于视频设备的实例 RAM 的限制。
表 8.6. 视频设备的类别元数据
键 | 描述 |
---|---|
|
以 MB 为单位指定视频设备使用的最大 RAM。与 |
watchdog 行为
使用下表中的属性键,在实例上启用虚拟硬件 watchdog 设备。
表 8.7. watchdog 行为的类别元数据
键 | 描述 |
---|---|
|
指定以启用虚拟硬件 watchdog 设备并设置其行为。如果实例挂起或失败,watchdog 设备会执行配置的操作。watchdog 使用 i6300esb 设备,它模拟 PCI Intel 6300ESB。如果没有指定 设置为以下有效值之一:
|
随机数生成器(RNG)
使用下表中的属性键在实例上启用 RNG 设备。
表 8.8. RNG 的类别元数据
键 | 描述 |
---|---|
|
设置为
Default: |
| 指定实例可在每个期间从主机的熵中读取的最大字节数。 |
| 以毫秒为单位指定读取周期的持续时间。 |
虚拟性能监控单元(vPMU)
使用下表中的属性键为实例启用 vPMU。
表 8.9. vPMU 的类别元数据
键 | 描述 |
---|---|
|
设置为
|
实例 CPU 拓扑
使用下表中的属性键来定义实例中处理器的拓扑。
表 8.10. CPU 拓扑的类别元数据
键 | 描述 |
---|---|
| 指定实例的首选插槽数。 默认:请求的 vCPU 数量 |
| 指定实例每个插槽的首选内核数。
默认: |
| 指定实例每个内核的首选线程数量。
默认: |
| 使用镜像属性指定用户可以为其实例选择的最大插槽数。
示例: |
| 使用镜像属性指定用户可以为其实例选择的最大内核数。 |
| 使用镜像属性指定用户可以为其实例选择的最大线程数量。 |
串行端口
使用下表中的属性键配置每个实例的串行端口数。
表 8.11. 串行端口的类别元数据
键 | 描述 |
---|---|
| 每个实例的最大串行端口。 |
CPU 固定策略
默认情况下,实例虚拟 CPU (vCPU)是带有一个内核的插槽,以及一个线程。您可以使用属性创建将实例 vCPU 固定到主机的物理 CPU 内核(pCPU)的类别。您还可以在并发多线程(SMT)架构中配置硬件 CPU 线程行为,其中一个或多个内核有线程同级。
使用下表中的属性键来定义实例的 CPU 固定策略。
表 8.12. CPU 固定的类别元数据
键 | 描述 |
---|---|
| 指定要使用的 CPU 策略。设置为以下有效值之一:
|
|
指定
|
实例 PCI NUMA 关联性策略
使用下表中的属性键创建类别,为 PCI 透传设备和 SR-IOV 接口指定 NUMA 关联性策略。
表 8.13. PCI NUMA 关联性策略的类别元数据
键 | 描述 |
---|---|
| 指定 PCI 透传设备和 SR-IOV 接口的 NUMA 关联性策略。设置为以下有效值之一:
|
实例 NUMA 拓扑
您可以使用属性创建类别,为实例 vCPU 线程定义主机 NUMA 放置,以及从主机 NUMA 节点分配实例 vCPU 和内存。
为实例定义 NUMA 拓扑可提高实例操作系统的性能,用于内存和 vCPU 分配大于 Compute 主机中的 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 拓扑。
表 8.14. NUMA 拓扑的类别元数据
键 | 描述 |
---|---|
| 指定限制实例 vCPU 线程执行的主机 NUMA 节点数量。如果没有指定,vCPU 线程可以在任意数量的可用主机 NUMA 节点上运行。 |
| 以逗号分隔的实例 vCPU 列表,用于映射到实例 NUMA 节点 N。如果没有指定此密钥,则 vCPU 会均匀地划分到可用的 NUMA 节点。 N 从 0 开始。请谨慎使用 sVirtN 值,只有在您至少有两个 NUMA 节点时才使用。
只有在设置了 |
| 映射到实例 NUMA 节点 N 的 MB 实例内存量。如果没有指定此密钥,内存将平均划分到可用的 NUMA 节点。 N 从 0 开始。请谨慎使用 sVirtN 值,只有在您至少有两个 NUMA 节点时才使用。
只有在设置了 |
如果 hw:numa_cpus.N
或 hw:numa_mem.N
的组合分别大于可用的 CPU 或内存量,则计算服务会引发异常。
实例内存加密
使用下表中的属性键启用实例内存的加密。
表 8.15. 内存加密的类别元数据
键 | 描述 |
---|---|
|
设置为 |
CPU 实时策略
使用下表中的属性键来定义实例中处理器的实时策略。
- 虽然大多数实例 vCPU 都可以使用实时策略运行,但必须至少将一个 vCPU 标记为非实时客户机进程,以用于非实时客户机处理和模拟器开销。
- 要使用此额外规格,您必须启用固定 CPU。
表 8.16. 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
使用下表中的属性键来定义实例的仿真程序线程策略。
表 8.17. 模拟器线程策略的类别元数据
键 | 描述 |
---|---|
| 指定用于实例的仿真程序线程策略。设置为以下有效值之一:
|
实例内存页面大小
使用下表中的属性键创建具有显式内存页面大小的实例。
表 8.18. 内存页面大小的类别元数据
键 | 描述 |
---|---|
|
指定用于支持实例的巨页大小。使用此选项会创建一个 1 个 NUMA 节点的隐式 NUMA 拓扑,除非由
|
PCI 透传
使用下表中的属性键将物理 PCI 设备(如图形卡或网络设备)附加到实例。有关使用 PCI 透传的更多信息,请参阅配置 PCI 透传。
表 8.19. PCI 透传的类别元数据
键 | 描述 |
---|---|
| 使用以下格式指定要分配给实例的 PCI 设备: <alias>:<count>
|
hypervisor 签名
使用下表中的属性键从实例隐藏 hypervisor 签名。
表 8.20. 用于隐藏 hypervisor 签名的类别元数据
键 | 描述 |
---|---|
|
设置为 |
实例资源特征
每个资源供应商都有一组特征。特征是资源提供程序的限定方面,如存储类型或 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。
使用下表中的属性键来定义实例的资源特征。
表 8.21. 资源特征的类别元数据
键 | 描述 |
---|---|
| 指定 Compute 节点特征。将特征设置为以下有效值之一:
例如: $ openstack flavor set --property trait:HW_CPU_X86_AVX512BW=required avx512-flavor |
实例裸机资源类
使用下表中的属性键为实例请求裸机资源类。
表 8.22. 裸机资源类的类别元数据
键 | 描述 |
---|---|
| 使用此属性指定标准裸机资源类来覆盖值,或者指定实例所需的自定义裸机资源类。
您可以覆盖的标准资源类有
自定义资源类的名称必须以
例如,要将实例调度到具有 $ 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 |