1.2. 为超融合节点准备 overcloud 角色
要将节点标记为超线程,您需要定义一个超融合角色。Red Hat OpenStack Platform (RHOSP)为超融合节点提供预定义的角色 ComputeHCI。此角色将计算和 Ceph 对象存储守护进程(OSD)服务并置在一起,允许您在同一超融合节点上部署它们。
流程
-
以
stack用户的身份登录 undercloud。 Source
stackrc文件:[stack@director ~]$ source ~/stackrc
生成包含
ComputeHCI角色的新自定义角色数据文件,以及您想要用于 overcloud 的其他角色。以下示例生成角色数据文件roles_data_hci.yaml,其中包括角色Controller,ComputeHCI,Compute, 和CephStorage:(undercloud)$ openstack overcloud roles \ generate -o /home/stack/templates/roles_data_hci.yaml \ Controller ComputeHCI Compute CephStorage
注意生成的自定义角色数据文件中为
ComputeHCI角色列出的网络包括计算和存储服务所需的网络,例如:- name: ComputeHCI description: | Compute node role hosting Ceph OSD tags: - compute networks: InternalApi: subnet: internal_api_subnet Tenant: subnet: tenant_subnet Storage: subnet: storage_subnet StorageMgmt: subnet: storage_mgmt_subnet-
创建
network_data.yaml文件的本地副本,将可组合的网络添加到您的 overcloud 中。network_data.yaml文件与默认网络环境文件/usr/share/openstack-tripleo-heat-templates/environments114角色交互,将您为ComputeHCI角色定义的网络与超融合节点相关联。有关更多信息,请参阅高级 Overcloud 自定义指南中的 添加可组合网络。 -
要提高 Red Hat Ceph Storage 的性能,请在
network_data.yaml的本地副本中将Storage和StorageMgmt网络的 MTU 设置更新为9000,用于巨型帧。如需更多信息,请参阅 Configuring MTU Settings in Director 和 Configuring jumbo frames。 为超融合节点创建
computeHCIovercloud 类别:(undercloud)$ openstack flavor create --id auto \ --ram <ram_size_mb> --disk <disk_size_gb> \ --vcpus <no_vcpus> computeHCI
-
将
<ram_size_mb>替换为裸机节点的 RAM,以 MB 为单位。 -
将
<disk_size_gb>替换为裸机节点中的磁盘大小(以 GB 为单位)。 -
将
<no_vcpus>替换为裸机节点中的 CPU 数量。
注意这些属性不可用于调度实例。但是,计算调度程序使用磁盘大小来确定根分区大小。
-
将
检索节点列表来识别它们的 UUID:
(undercloud)$ openstack baremetal node list
使用自定义 HCI 资源类标记您要指定为超融合的每个裸机节点:
(undercloud)$ openstack baremetal node set \ --resource-class baremetal.HCI <node>
将
<node>替换为裸机节点的 ID。将
computeHCI类别与自定义 HCI 资源类关联:(undercloud)$ openstack flavor set \ --property resources:CUSTOM_BAREMETAL_HCI=1 \ computeHCI
要确定与 Bare Metal 服务节点的资源类对应的自定义资源类的名称,请将资源类转换为大写,请将所有 punctuation 替换为下划线,并使用
CUSTOM_前缀。注意类别只能请求一个裸机资源类实例。
设置以下类别属性,以防止计算调度程序使用裸机类别属性来调度实例:
(undercloud)$ openstack flavor set \ --property resources:VCPU=0 \ --property resources:MEMORY_MB=0 \ --property resources:DISK_GB=0 computeHCI
在
node-info.yaml文件中添加以下参数,以指定超融合和 Controller 节点的数量,以及用于指定超融合和控制器指定节点的类别:parameter_defaults: OvercloudComputeHCIFlavor: computeHCI ComputeHCICount: 3 Controller: control ControllerCount: 3
1.2.1. 为多磁盘集群定义根磁盘
如果节点使用多个磁盘,则 Director 在置备过程上必须识别根磁盘。例如,大多数 Ceph Storage 节点使用多个磁盘。默认情况下,director 在置备过程中将 overcloud 镜像写入根磁盘
您可以定义多个属性以帮助 director 识别根磁盘:
-
model(字符串):设备识别码。 -
vendor(字符串):设备厂商。 -
serial(字符串):磁盘序列号。 -
hctl(字符串):SCSI 的 Host:Channel:Target:Lun。 -
size(整数):设备的大小(以 GB 为单位)。 -
wwn(字符串):唯一的存储 ID。 -
wwn_with_extension(字符串):唯一存储 ID 附加厂商扩展名。 -
wwn_vendor_extension(字符串):唯一厂商存储标识符。 -
rotational(布尔值):旋转磁盘设备为 true (HDD),否则为 false (SSD)。 -
name(字符串):设备名称,例如:/dev/sdb1。
仅对具有持久名称的设备使用 name 属性。不要使用 name 来设置任何其他设备的根磁盘,因为此值在节点引导时可能会改变。
您可以使用其序列号指定根设备。
步骤
从每个节点的硬件内省检查磁盘信息。运行以下命令以显示节点的磁盘信息:
(undercloud)$ openstack baremetal introspection data save 1a4e30da-b6dc-499d-ba87-0bd8a3819bc0 | jq ".inventory.disks"
例如,一个节点的数据可能会显示 3 个磁盘:
[ { "size": 299439751168, "rotational": true, "vendor": "DELL", "name": "/dev/sda", "wwn_vendor_extension": "0x1ea4dcc412a9632b", "wwn_with_extension": "0x61866da04f3807001ea4dcc412a9632b", "model": "PERC H330 Mini", "wwn": "0x61866da04f380700", "serial": "61866da04f3807001ea4dcc412a9632b" } { "size": 299439751168, "rotational": true, "vendor": "DELL", "name": "/dev/sdb", "wwn_vendor_extension": "0x1ea4e13c12e36ad6", "wwn_with_extension": "0x61866da04f380d001ea4e13c12e36ad6", "model": "PERC H330 Mini", "wwn": "0x61866da04f380d00", "serial": "61866da04f380d001ea4e13c12e36ad6" } { "size": 299439751168, "rotational": true, "vendor": "DELL", "name": "/dev/sdc", "wwn_vendor_extension": "0x1ea4e31e121cfb45", "wwn_with_extension": "0x61866da04f37fc001ea4e31e121cfb45", "model": "PERC H330 Mini", "wwn": "0x61866da04f37fc00", "serial": "61866da04f37fc001ea4e31e121cfb45" } ]输入
openstack baremetal node set --property root_device=,为节点设置根磁盘。包括用于定义根磁盘的最合适的硬件属性值。(undercloud)$ openstack baremetal node set --property root_device='{"serial":"<serial_number>"}' <node-uuid>例如:要将根设备设定为磁盘 2,其序列号为
61866da04f380d001ea4e13c12e36ad6,输入以下命令:(undercloud)$ openstack baremetal node set --property root_device='{"serial": "61866da04f380d001ea4e13c12e36ad6"}' 1a4e30da-b6dc-499d-ba87-0bd8a3819bc0注意确保配置每个节点的 BIOS 以包括从您选择的根磁盘引导。将引导顺序配置为首先从网络引导,然后从根磁盘引导。
director 识别特定磁盘以用作根磁盘。运行
openstack overcloud deploy命令时,director 置备 overcloud 镜像并将其写入根磁盘。