为使用 Bare Metal 服务创建风味¶
您需要在 Compute 服务中创建一个特殊的裸金属风味。该风味通过节点的 resource_class 字段(从 Bare Metal API 版本 1.21 开始可用)映射到裸金属节点。一个风味可以请求恰好一个裸金属资源类别的实例。
请注意,在创建风味时,为了方便用户,添加 RAM_MB 和 CPU 属性会很有用,尽管它们不用于调度。 DISK_GB 属性也不用于调度,但仍然用于确定根分区大小。
请根据您的硬件进行更改
$ RAM_MB=1024 $ CPU=2 $ DISK_GB=100
通过执行以下命令创建裸金属风味
$ 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