为使用 Bare Metal 服务创建风味

您需要在 Compute 服务中创建一个特殊的裸金属风味。该风味通过节点的 resource_class 字段(从 Bare Metal API 版本 1.21 开始可用)映射到裸金属节点。一个风味可以请求恰好一个裸金属资源类别的实例。

请注意,在创建风味时,为了方便用户,添加 RAM_MBCPU 属性会很有用,尽管它们不用于调度。 DISK_GB 属性也不用于调度,但仍然用于确定根分区大小。

  1. 请根据您的硬件进行更改

    $ RAM_MB=1024
    $ CPU=2
    $ DISK_GB=100
    
  2. 通过执行以下命令创建裸金属风味

    $ openstack flavor create --ram $RAM_MB --vcpus $CPU --disk $DISK_GB \
      my-baremetal-flavor
    

    注意

    您可以添加 --id <id> 来指定风味的 ID。

有关此命令的其他选项,请参阅 此处的文档

创建后,将每个风味与一个自定义资源类别关联。与 Bare Metal 服务中节点的资源类别对应的自定义资源类别的名称是

  • 将裸金属节点的资源类别全部转换为大写

  • 并在其前加上 CUSTOM_

  • 将所有标点符号替换为下划线

例如,如果资源类别名为 baremetal-small,则通过以下方式将风味与此自定义资源类别关联

$ openstack flavor set --property resources:CUSTOM_BAREMETAL_SMALL=1 my-baremetal-flavor

必须使用另一组风味属性来禁用基于标准属性的裸金属风味的调度

$ openstack flavor set --property resources:VCPU=0 my-baremetal-flavor
$ openstack flavor set --property resources:MEMORY_MB=0 my-baremetal-flavor
$ openstack flavor set --property resources:DISK_GB=0 my-baremetal-flavor

示例

如果您想定义一类名为 baremetal.with-GPU 的节点,请先使用它标记一些节点

$ baremetal node set <node> --resource-class baremetal.with-GPU

警告

可以添加资源类别到 active 节点,但不能替换它们上的现有资源类别。

然后,您可以更新风味以请求资源类别,而不是标准属性

$ openstack flavor set --property resources:CUSTOM_BAREMETAL_WITH_GPU=1 my-baremetal-flavor
$ openstack flavor set --property resources:VCPU=0 my-baremetal-flavor
$ openstack flavor set --property resources:MEMORY_MB=0 my-baremetal-flavor
$ openstack flavor set --property resources:DISK_GB=0 my-baremetal-flavor

请注意,节点 resource_class 字段中的 baremetal.with-GPU 变为风味属性中的 CUSTOM_BAREMETAL_WITH_GPU

基于特征的调度

从 Queens 版本开始,Compute 服务支持使用特征进行基于定性属性的调度。从 Bare Metal REST API 版本 1.37 开始,可以将特征列表分配给每个裸金属节点。分配给裸金属节点的特征将被分配给 Compute 服务放置 API 中的相应资源提供程序。

在 Compute 服务中创建风味时,可以通过风味属性指定所需的特征。然后,Compute 服务将仅将实例调度到具有所有所需特征的裸金属节点。

特征可以是标准特征或自定义特征。标准特征列在 os_traits 库 中。自定义特征必须满足以下要求

  • 并在其前加上 CUSTOM_

  • 仅包含大写字母 A 到 Z、数字 0 到 9 或下划线

  • 长度不超过 255 个字符

一个裸金属节点最多可以有 50 个特征。

示例

要将标准特征 HW_CPU_X86_VMX 和自定义特征 CUSTOM_TRAIT1 添加到节点

$ baremetal node add trait <node> CUSTOM_TRAIT1 HW_CPU_X86_VMX

然后,更新风味以需要这些特征

$ openstack flavor set --property trait:CUSTOM_TRAIT1=required my-baremetal-flavor
$ openstack flavor set --property trait:HW_CPU_X86_VMX=required my-baremetal-flavor