8.2. 创建裸机节点硬件的清单
director 需要 Red Hat OpenStack Platform (RHOSP)部署中节点的硬件清单进行配置集标记、基准测试和手动根磁盘分配。
您可以使用以下方法之一向 director 提供硬件清单:
- 自动:您可以使用 director 的内省过程,从每个节点收集硬件信息。这个过程在每个节点上启动内省代理。内省代理从节点收集硬件数据并将数据送回 director。director 将硬件数据存储在 undercloud 节点上运行的对象存储服务(swift)中。
- 手动:您可以手动配置每个裸机的基本硬件清单。此清单存储在裸机置备服务(ironic)中,用于管理和部署裸机机器。
如果您的 overcloud 使用 derived _params.yaml
,则需要使用 director 的自动内省过程,这需要存在内省数据。如需有关 derived _params.yaml
的更多信息,请参阅 工作流和派生参数。
director 自动内省流程比设置裸机置备服务端口的手动方法提供以下优点:
-
内省记录了硬件信息中的所有连接端口,包括在
nodes.yaml
中尚未配置 PXE 引导的端口。 -
如果属性可以使用 LLDP 发现,内省会为每个端口设置
local_link_connection
属性。使用手动方法时,您必须在注册节点时为每个端口配置local_link_connection
。 -
在部署 spine-and-leaf 或 DCN 架构时,内省为裸机置备服务端口设置
physical_network
属性。
8.2.1. 使用 director 内省来收集裸机节点硬件信息
将物理机注册为裸机节点后,您可以使用 director 内省自动添加其硬件详情并为每个以太网 MAC 地址创建端口。
作为自动内省的替代选择,您可以手动为 director 提供裸机节点的硬件信息。如需更多信息,请参阅 手动配置裸机节点硬件信息。
先决条件
- 您已为 overcloud 注册了裸机节点。
流程
-
以
stack
用户身份登录 undercloud 主机。 查找
stackrc
undercloud 凭证文件:$ source ~/stackrc
运行 pre-introspection 验证组来检查内省要求:
(undercloud)$ openstack tripleo validator run --group pre-introspection
- 查看验证报告的结果。
可选:查看特定验证的详细输出:
(undercloud)$ openstack tripleo validator show run --full <validation>
将
<
;validation> 替换为您要查看报告的特定验证 UUID。重要FAILED
验证不会阻止您部署或运行 Red Hat OpenStack Platform。但是,FAILED
验证可能会显示生产环境中潜在的问题。
检查每个节点的属性。您可以检查所有节点的硬件属性或特定节点:
检查所有节点的硬件属性:
(undercloud)$ openstack overcloud node introspect --all-manageable --provide
-
使用
--all-manageable
选项仅内省处于受管理状态的节点。在此示例中,所有节点都处于受管理状态。 -
使用
--provide
选项在内省后将所有节点重置为available
状态。
-
使用
检查特定节点的硬件属性:
(undercloud)$ openstack overcloud node introspect --provide <node1> [node2] [noden]
-
使用
--provide
选项,在内省后将所有指定节点重置为available
状态。 -
将
<node1>
,[node2]
, 及所有节点(直到[noden]
)替换为您要内省的每个节点的 UUID。
-
使用
在一个单独的终端窗口中监控内省进度日志:
(undercloud)$ sudo tail -f /var/log/containers/ironic-inspector/ironic-inspector.log
重要确保内省进程运行完。内省通常需要 15 分钟时间用于裸机节点。但是,不正确的内省网络可能会导致它花费更长的时间,这可能会导致内省失败。
可选:如果您已将 undercloud 配置为通过 IPv6 进行裸机置备,那么您还需要检查 LLDP 是否已为裸机置备服务(ironic)端口设置了
local_link_connection
:(undercloud)$ openstack baremetal port list --long -c UUID -c "Node UUID" -c "Local Link Connection"
如果裸机节点上的端口的 Local Link Connection 字段为空,则必须使用虚拟数据手动填充
local_link_connection
值。以下示例将虚拟交换机 ID 设置为52:54:00:00:00:00
,并将虚拟端口 ID 设置为p0
:(undercloud)$ openstack baremetal port set <port_uuid> \ --local-link-connection switch_id=52:54:00:00:00:00 \ --local-link-connection port_id=p0
验证 “Local Link Connection” 字段是否包含虚拟数据:
(undercloud)$ openstack baremetal port list --long -c UUID -c "Node UUID" -c "Local Link Connection"
内省完成后,所有节点都会变为 available
状态。
8.2.2. 手动配置裸机节点硬件信息
将物理机注册为裸机节点后,您可以手动添加其硬件详情,并为每个以太网 MAC 地址创建裸机端口。在部署 overcloud 前,必须至少创建一个裸机端口。
作为手动内省的替代选择,您可以使用自动 director 内省流程来收集裸机节点的硬件信息。如需更多信息,请参阅使用 director 内省来收集裸机节点硬件信息。
先决条件
- 您已为 overcloud 注册了裸机节点。
-
您已为 node
.json
中注册的节点上的每个端口配置了local_link_connection
。有关更多信息,请参阅为 overcloud 注册节点。
流程
-
以
stack
用户身份登录 undercloud 主机。 查找
stackrc
undercloud 凭证文件:$ source ~/stackrc
通过在节点的功能中添加
boot_option':'local
来将每个注册的节点的引导选项设置为local
:(undercloud)$ openstack baremetal node set \ --property capabilities="boot_option:local" <node>
-
将
<node>
替换为裸机节点的 ID。
-
将
指定部署内核并为节点驱动程序部署 ramdisk:
(undercloud)$ openstack baremetal node set <node> \ --driver-info deploy_kernel=<kernel_file> \ --driver-info deploy_ramdisk=<initramfs_file>
-
将
<node>
替换为裸机节点的 ID。 -
将
<kernel_file
> 替换为.kernel
镜像的路径,例如file:///var/lib/ironic/httpboot/agent.kernel
。 -
将
<initramfs_file
> 替换为.initramfs
镜像的路径,例如file:///var/lib/ironic/httpboot/agent.ramdisk
。
-
将
更新节点属性以匹配节点上的硬件规格:
(undercloud)$ openstack baremetal node set <node> \ --property cpus=<cpu> \ --property memory_mb=<ram> \ --property local_gb=<disk> \ --property cpu_arch=<arch>
-
将
<node>
替换为裸机节点的 ID。 -
将
<cpu
> 替换为 CPU 数量。 -
将 &
lt;ram&
gt; 替换为 RAM (以 MB 为单位)。 -
将
<disk>
替换为磁盘大小(以 GB 为单位)。 -
将 &
lt;arch&
gt; 替换为构架类型。
-
将
可选:为每个节点指定 IPMI 密码套件:
(undercloud)$ openstack baremetal node set <node> \ --driver-info ipmi_cipher_suite=<version>
-
将
<node>
替换为裸机节点的 ID。 将
<version
> 替换为节点上要使用的密码套件版本。设置为以下有效值之一:-
3
- 节点使用带有 SHA1 密码套件的 AES-128。 -
17
- 节点使用带有 SHA256 密码套件的 AES-128。
-
-
将
可选:如果您有多个磁盘,请设置 root 设备提示来告知部署 ramdisk 哪个磁盘用于部署:
(undercloud)$ openstack baremetal node set <node> \ --property root_device='{"<property>": "<value>"}'
-
将
<node>
替换为裸机节点的 ID。 将
<property
> 和 <value
> 替换为您要用于部署的磁盘的详情,如root_device='{"size": "128"}'
RHOSP 支持以下属性:
-
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 仅将此属性用于具有持久名称的设备。注意如果您指定多个属性,该设备必须与所有这些属性匹配。
-
-
将
通过在 provisioning 网络中创建带有 NIC 的 MAC 地址的端口来通知节点网卡的裸机置备服务:
(undercloud)$ openstack baremetal port create --node <node_uuid> <mac_address>
-
将
<node_uuid>
替换为裸机节点的唯一 ID。 -
将
<mac_address
> 替换为用于 PXE 引导的 NIC 的 MAC 地址。
-
将
验证节点的配置:
(undercloud)$ openstack baremetal node validate <node> +------------+--------+---------------------------------------------+ | Interface | Result | Reason | +------------+--------+---------------------------------------------+ | boot | False | Cannot validate image information for node | | | | a02178db-1550-4244-a2b7-d7035c743a9b | | | | because one or more parameters are missing | | | | from its instance_info. Missing are: | | | | ['ramdisk', 'kernel', 'image_source'] | | console | None | not supported | | deploy | False | Cannot validate image information for node | | | | a02178db-1550-4244-a2b7-d7035c743a9b | | | | because one or more parameters are missing | | | | from its instance_info. Missing are: | | | | ['ramdisk', 'kernel', 'image_source'] | | inspect | None | not supported | | management | True | | | network | True | | | power | True | | | raid | True | | | storage | True | | +------------+--------+---------------------------------------------+
验证输出
Result
表示以下内容:-
false
:接口失败验证。如果提供的原因包括缺少instance_info
参数[\'ramdisk', \'kernel', \'image_source']
,这可能是因为计算服务在部署过程开始时填充缺少的参数,因此在此时没有设置它们。如果您使用完整磁盘镜像,则可能需要设置image_source
才能通过验证。 -
true
:接口已通过验证。 -
None
: 接口不支持您的驱动。
-