规格

在 OpenStack 中,风味定义了 nova 计算实例的计算、内存和存储容量。 简单来说,风味是服务器可用的硬件配置。 它定义了可以启动的虚拟服务器的大小

注意

风味还可以确定可以在哪个计算主机上使用风味来启动实例。 有关自定义风味的更多信息,请参阅 管理风味

概述

风味由以下参数组成

风味 ID

新风味的唯一 ID(整数或 UUID)。 此属性是必需的。 如果指定 ‘auto’,将自动生成 UUID。

名称

新风味的名称。 此属性是必需的。

历史上,名称采用 XX.SIZE_NAME 格式。 通常不需要这些名称,但某些第三方工具可能依赖于它们。

VCPUs

要使用的虚拟 CPU 数量。 此属性是必需的。

内存 MB

要使用的 RAM 大小(以兆字节为单位)。 此属性是必需的。

根磁盘 GB

要用于根 (/) 分区的磁盘空间大小(以千兆字节为单位)。 此属性是必需的。

根磁盘是一个临时磁盘,基本镜像会被复制到其中。 从持久卷启动时,它不会被使用。大小为 0 是一种特殊情况,它使用基本镜像的原始大小作为临时根卷的大小。 但是,在这种情况下,调度器无法基于虚拟镜像大小选择计算主机。 因此,0 仅应用于从卷启动的实例或用于测试目的。 具有零根磁盘的风味可以通过 os_compute_api:servers:create:zero_disk_flavor 策略规则强制使用基于卷的实例。

临时磁盘 GB

要用于临时分区的磁盘空间大小(以千兆字节为单位)。 此属性是可选的。 如果未指定,则默认值为 0

临时磁盘提供与 VM 实例生命周期相关的机器本地磁盘存储。 当 VM 终止时,临时磁盘上的所有数据都会丢失。 临时磁盘不包含在任何快照中。

Swap

要使用的交换空间大小(以兆字节为单位)。 此属性是可选的。 如果未指定,则默认值为 0

RXTX 因子(已弃用)

此值仅在使用 xen 计算驱动程序和 nova-network 网络驱动程序时适用。 由于 nova-network 已被删除,因此不再适用,不应指定。 它可能会在未来的版本中被删除。 neutron 用户应参阅 neutron QoS 文档

是否公开

布尔值,定义风味是否对所有用户可用,或者仅对创建它的项目私有。 此属性是可选的。 如果未指定,则默认值为 True

默认情况下,风味是公开的,可供所有项目使用。 私有风味只能被访问给定项目访问列表中的用户访问,并且对其他项目不可见。

额外规格

定义风味可以在哪些计算节点上运行的键值对。 这些是可选的。

Extra specs 通常用作调度器提示,用于更高级的实例配置。 使用的键值对必须与众所周知的选项对应。 有关可用的标准化 extra specs 的更多信息,请 参见下文

描述

风味的自由格式描述。 长度限制为 65535 个字符。 仅允许可打印字符。 从 microversion 2.55 开始可用。

额外规格

待办事项

现在这已记录在 Extra Specs 中,因此应将其删除并将文档移动到这些 specs 中。

硬件视频 RAM

指定 hw_video:ram_max_mb 以控制视频镜像的最大 RAM。 与 hw_video_ram 镜像属性一起使用。 hw_video_ram 必须小于或等于 hw_video:ram_max_mb

这目前受 libvirt 和 vmware 驱动程序支持。

有关如何使用 libvirt 驱动程序设置 vram 属性的更多信息,请参阅 https://libvirt.org/formatdomain.html#elementsVideo

有关如何使用 vmware 驱动程序设置 videoRamSizeInKB 属性的更多信息,请参阅 https://pubs.vmware.com/vi-sdk/visdk250/ReferenceGuide/vim.vm.device.VirtualVideoCard.html

Secure Boot

安全启动 可以帮助确保用于实例的引导加载程序是受信任的,从而防止可能的攻击向量。

$ openstack flavor set FLAVOR-NAME \
    --property os:secure_boot=SECURE_BOOT_OPTION

有效的 SECURE_BOOT_OPTION 值是

  • required:为使用此风味的实例启用安全启动。

  • disabledoptional:(默认)为使用此风味的实例禁用安全启动。

注意

受 libvirt 驱动程序支持。

23.0.0 版本变更: (Wallaby)

已向 libvirt 驱动程序添加对安全启动的支持。

要覆盖的自定义资源类和标准资源类

指定自定义资源类以需要或覆盖标准资源类的数量值。

extra spec 的语法为 resources:<resource_class_name>=VALUEVALUE 是整数)。 自定义资源类的名称必须以 CUSTOM_ 开头。 要覆盖的标准资源类是 VCPUMEMORY_MBDISK_GB。 在这种情况下,可以通过将值设置为 0 来禁用基于标准资源类的调度。

例如

  • resources:CUSTOM_BAREMETAL_SMALL=1

  • resources:VCPU=0

有关更多示例,请参阅 为裸机服务创建风味

在版本 16.0.0 中添加: (Pike)

所需的 traits

所需的 traits 允许指定要在 Placement API 中表示计算节点的资源提供程序中具有指定 traits 集合的服务器。 有关资源提供程序 traits API 参考的更多详细信息,请参阅:https://docs.openstack.org/api-ref/placement/#resource-provider-traits

extra spec 的语法为 trait:<trait_name>=required,例如

  • trait:HW_CPU_X86_AVX2=required

  • trait:STORAGE_DISK_SSD=required

调度器会将所需的 traits 传递给 Placement API 中的 GET /allocation_candidates 端点,以仅包含可以满足所需 traits 的资源提供程序。 在 17.0.0 中,唯一有效的值是 required。 在 18.0.0 中,添加了 forbidden(如下所示)。 任何其他值都将被视为无效。

可以使用 osc-placement 插件管理 traits。

17.0.0 版本新增: (Queens)

禁止的 traits

禁止的 traits 与上述描述的所需的 traits 类似,但不是指定计算节点必须满足的一组 traits,而是禁止的 traits 不能存在。

extra spec 的语法为 trait:<trait_name>=forbidden,例如

  • trait:HW_CPU_X86_AVX2=forbidden

  • trait:STORAGE_DISK_SSD=forbidden

可以使用 osc-placement 插件管理 traits。

18.0.0 版本添加: (Rocky)

资源类和 traits 的编号分组

指定资源类和 traits 的编号分组。

语法如下(NVALUE 是整数)

resourcesN:<resource_class_name>=VALUE
traitN:<trait_name>=required

可以通过重复给定的编号 resourcestrait 键来指定相同分组中的多个资源/traits,就像使用未编号的语法一样。

通过 group_policy 键指定组间亲和力策略,该策略可能有以下值

  • isolate:不同的编号请求组将由不同的提供程序满足。

  • none:不同的编号请求组可以由不同的提供程序公共提供程序满足。

注意

如果指定了多个组,则请求中 group_policy 是必需的。 但是,这些组可能来自风味 extra_spec 以外的其他来源(例如,来自带有 QoS 最小带宽策略的 Neutron 端口)。 如果风味没有指定任何组并且 group_policy,但有多个组来自其他来源,那么 nova 将默认将 group_policy 设置为 none 以避免调度器失败。

例如,要创建一个具有以下 VFs 的服务器

  • 在 NET1 上具有 10000 字节/秒带宽的一个 SR-IOV 虚拟功能 (VF)

  • 在不同的 NIC 上具有 20000 字节/秒带宽且具有 SSL 加速的一个 SR-IOV 虚拟功能 (VF)

它在 extra specs 中指定如下

resources1:SRIOV_NET_VF=1
resources1:NET_EGRESS_BYTES_SEC=10000
trait1:CUSTOM_PHYSNET_NET1=required
resources2:SRIOV_NET_VF=1
resources2:NET_EGRESS_BYTES_SEC:20000
trait2:CUSTOM_PHYSNET_NET2=required
trait2:HW_NIC_ACCEL_SSL=required
group_policy=isolate

有关更多详细信息,请参阅 细粒度资源请求语法

18.0.0 版本添加: (Rocky)