规格¶
在 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:为使用此风味的实例启用安全启动。disabled或optional:(默认)为使用此风味的实例禁用安全启动。
注意
受 libvirt 驱动程序支持。
23.0.0 版本变更: (Wallaby)
已向 libvirt 驱动程序添加对安全启动的支持。
- 要覆盖的自定义资源类和标准资源类
指定自定义资源类以需要或覆盖标准资源类的数量值。
extra spec 的语法为
resources:<resource_class_name>=VALUE(VALUE是整数)。 自定义资源类的名称必须以CUSTOM_开头。 要覆盖的标准资源类是VCPU、MEMORY_MB或DISK_GB。 在这种情况下,可以通过将值设置为0来禁用基于标准资源类的调度。例如
resources:CUSTOM_BAREMETAL_SMALL=1resources: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=requiredtrait: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=forbiddentrait:STORAGE_DISK_SSD=forbidden
可以使用 osc-placement 插件管理 traits。
18.0.0 版本添加: (Rocky)
- 资源类和 traits 的编号分组
指定资源类和 traits 的编号分组。
语法如下(
N和VALUE是整数)resourcesN:<resource_class_name>=VALUE traitN:<trait_name>=required
可以通过重复给定的编号
resources或trait键来指定相同分组中的多个资源/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)