4.5. 将物理机器添加为裸机节点
使用以下方法之一注册裸机节点:
- 使用节点详情准备清单文件,将文件导入到裸机置备服务,并使节点可用。
-
将物理机注册为裸机节点,然后手动添加其硬件详情并为每个以太网 MAC 地址创建端口。您可以在具有
overcloudrc
文件的任何节点上执行这些步骤。
4.5.1. 使用清单文件注册裸机节点
您可以准备清单文件来注册定义每个裸机节点的详细信息的裸机节点。您可以将文件导入到裸机置备服务(ironic),并使每个节点可用。
有些驱动程序可能需要特定的配置。如需更多信息,请参阅 裸机驱动程序。
先决条件
- 包括裸机置备服务的 overcloud 部署。如需更多信息,请参阅使用 裸机置备服务部署 overcloud。
流程
-
创建一个清单文件来定义每个节点的详细信息,如
overcloud-nodes.yaml
。 对于每个节点,定义节点名称以及裸机驱动程序的地址和凭证。有关启用驱动程序的可用属性的详情,请参阅 裸机驱动程序。
nodes: - name: <node> driver: <driver> driver_info: <driver>_address: <ip> <driver>_username: <user> <driver>_password: <password> [<property>: <value>]
-
将
<node
> 替换为节点的名称。 将
<driver
> 替换为以下裸机驱动程序之一:-
ipmi
-
Redfish
-
DRAC
-
irmc
-
ilo
-
-
将
<ip
> 替换为 Bare Metal 控制器的 IP 地址。 -
将 &
lt;user&
gt; 替换为您的用户名。 -
将 &
lt;password&
gt; 替换为您的密码。 -
可选:将
<
property> 替换为您要配置的 driver 属性,并将 <value
> 替换为属性值。有关可用属性的详情,请参考 裸机驱动程序。
-
将
定义节点属性和端口:
nodes: - name: <node> ... properties: cpus: <cpu_count> cpu_arch: <cpu_arch> memory_mb: <memory> local_gb: <root_disk> root_device: serial: <serial> ports: - address: <mac_address>
-
将
<cpu_count
> 替换为 CPU 数量。 -
将
<cpu_arch
> 替换为 CPU 构架类型。 -
将
<memory
> 替换为 MiB 的内存量。 -
将
<root_disk
> 替换为 GiB 中的根磁盘大小。只有机器有多个磁盘时才需要。 -
将
<
;serial> 替换为您要用于部署的磁盘的序列号。 -
将
<mac_address
> 替换为用于 PXE 引导的 NIC 的 MAC 地址。
-
将
获取
overcloudrc
文件:$ source ~/overcloudrc
将清单文件导入到裸机置备服务中:
$ openstack baremetal create overcloud-nodes.yaml
节点现在处于
注册
状态。指定部署内核并在每个节点上部署 ramdisk:
$ 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
。
-
将
可选:如果您配置了 IPMI 驱动程序,请为每个节点指定 IPMI 密码套件:
$ openstack baremetal node set <node> \ --driver-info ipmi_cipher_suite=<version>
-
将
<node>
替换为节点的名称或 ID。 将
<version
> 替换为节点上要使用的密码套件版本。设置为以下有效值之一:-
3
- 节点使用带有 SHA1 密码套件的 AES-128。 -
17
- 节点使用带有 SHA256 密码套件的 AES-128。
-
-
将
- 等待额外的网络接口端口配置数据填充网络服务(neutron)。这个过程至少需要 60 秒。
将每个节点的置备状态设置为
available
:$ openstack baremetal node manage <node> $ openstack baremetal node provide <node>
如果启用了节点清理,裸机置备服务会清理节点。
在每个节点上设置本地引导选项:
$ openstack baremetal node set <node> --property capabilities="boot_option:local"
检查节点是否已注册:
$ openstack baremetal node list
注册节点及其状态之间可能会有延迟。
4.5.2. 手动注册裸机节点
将物理机注册为裸机节点,然后手动添加其硬件详情并为每个以太网 MAC 地址创建端口。您可以在具有 overcloudrc
文件的任何节点上执行这些步骤。
前提条件
- 包括裸机置备服务的 overcloud 部署。如需更多信息,请参阅使用 裸机置备服务部署 overcloud。
-
必须使用
IronicEnabledHardwareTypes
参数启用新节点的驱动程序。有关支持的驱动程序的更多信息,请参阅 裸机驱动程序。
流程
-
以
stack
用户身份登录 undercloud 主机。 提供 overcloud 凭证文件:
(undercloud)$ source ~/overcloudrc
添加新节点:
$ openstack baremetal node create --driver <driver_name> --name <node_name>
-
将
<driver_name
> 替换为驱动程序的名称,如ipmi
。 -
将
<node_name
> 替换为新裸机节点的名称。
-
将
- 注意在创建节点时分配给节点的 UUID。
为每个注册的节点将引导选项设置为
local
:$ openstack baremetal node set \ --property capabilities="boot_option:local" <node>
将
<node>
替换为裸机节点的 UUID。指定部署内核并为节点驱动程序部署 ramdisk:
$ 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
。
-
将
更新节点属性以匹配节点上的硬件规格:
$ 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 为单位)。 -
将
<arch
> 替换为构架类型。
-
将
可选:为每个节点指定 IPMI 密码套件:
$ openstack baremetal node set <node> \ --driver-info ipmi_cipher_suite=<version>
-
将
<node>
替换为裸机节点的 ID。 将
<version
> 替换为节点上要使用的密码套件版本。设置为以下有效值之一:-
3
- 节点使用带有 SHA1 密码套件的 AES-128。 -
17
- 节点使用带有 SHA256 密码套件的 AES-128。
-
-
将
可选:指定每个节点的 IPMI 详情:
$ openstack baremetal node set <node> \ --driver-info <property>=<value>
-
将
<node>
替换为裸机节点的 ID。 -
将
<property
> 替换为您要配置的 IPMI 属性。有关可用属性的详情,请参考 智能平台管理接口(IPMI)电源管理驱动程序。 -
将
<value
> 替换为属性值。
-
将
可选:如果您有多个磁盘,请设置 root 设备提示,以通知部署 ramdisk 用于部署的磁盘:
$ 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 地址的端口来告知节点网卡的裸机置备服务:
$ openstack baremetal port create --node <node_uuid> <mac_address>
-
将
<node>
替换为裸机节点的唯一 ID。 -
将
<mac_address
> 替换为用于 PXE 引导的 NIC 的 MAC 地址。
-
将
验证节点的配置:
$ 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
: 接口不支持您的驱动。
-
4.5.3. 裸机节点置备状态
裸机节点在生命周期内转换多个置备状态。在节点上执行的 API 请求和编排器事件启动转换。调配状态有两种类别: "stable" 和 "in transition"。
使用下表了解节点可以处于的调配状态,以及用于将节点从一个调配状态转换到另一个调配状态的操作。
状态 | 类别 | 描述 |
---|---|---|
| 稳定 | 每个节点的初始状态。有关注册节点的详情,请参考 将物理机添加为裸机节点。 |
| 过渡 |
Bare Metal Provisioning 服务使用节点注册过程中提供的 |
| 稳定 |
当裸机置备服务验证了它可以管理节点时,节点将过渡到 manageable 状态。您可以使用以下命令将节点从
在转换到以下失败状态之一后,您必须将节点移到
当您需要更新节点时,将节点移到 |
| 过渡 |
裸机置备服务使用节点内省来更新硬件派生的节点属性,以反映硬件的当前状态。节点过渡到 |
| 过渡 |
指示异步检查正在进行的调配状态。如果节点检查成功,节点将过渡到 |
| 稳定 |
指示节点检查失败的置备状态。您可以使用以下命令将节点从
|
| 过渡 |
处于
|
| 过渡 |
处于
您可以通过运行 |
| 稳定 |
在成功预配置和清理节点后,它们会被移到
|
| 过渡 |
处于
|
| 过渡 |
处于
您可以通过运行 |
| 稳定 |
指示节点部署失败的置备状态。您可以使用以下命令将节点从
|
| 稳定 |
处于
|
| 过渡 |
当节点处于 |
| 稳定 |
如果节点删除失败,节点将移到
|
| 过渡 |
您可以使用 |
| 过渡 |
处于
|
| 过渡 |
处于
您可以通过运行 |
| 稳定 |
指示节点救援失败的置备状态。您可以使用以下命令将节点从
|
| 稳定 |
处于
|
| 过渡 |
处于 |
| 稳定 |
指示节点 unrescue 操作失败的置备状态。您可以使用以下命令将节点从
|