搜索

4.5. 将物理机器添加为裸机节点

download PDF

使用以下方法之一注册裸机节点:

  • 使用节点详情准备清单文件,将文件导入到裸机置备服务,并使节点可用。
  • 将物理机注册为裸机节点,然后手动添加其硬件详情并为每个以太网 MAC 地址创建端口。您可以在具有 overcloudrc 文件的任何节点上执行这些步骤。

4.5.1. 使用清单文件注册裸机节点

您可以准备清单文件来注册定义每个裸机节点的详细信息的裸机节点。您可以将文件导入到裸机置备服务(ironic),并使每个节点可用。

注意

有些驱动程序可能需要特定的配置。如需更多信息,请参阅 裸机驱动程序

先决条件

流程

  1. 创建一个清单文件来定义每个节点的详细信息,如 overcloud-nodes.yaml
  2. 对于每个节点,定义节点名称以及裸机驱动程序的地址和凭证。有关启用驱动程序的可用属性的详情,请参阅 裸机驱动程序

    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 属性,并将 & lt;value > 替换为属性值。有关可用属性的详情,请参考 裸机驱动程序
  3. 定义节点属性和端口:

    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 中的根磁盘大小。只有机器有多个磁盘时才需要。
    • &lt;serial> 替换为您要用于部署的磁盘的序列号。
    • <mac_address > 替换为用于 PXE 引导的 NIC 的 MAC 地址。
  4. 获取 overcloudrc 文件:

    $ source ~/overcloudrc
  5. 将清单文件导入到裸机置备服务中:

    $ openstack baremetal create overcloud-nodes.yaml

    节点现在处于 注册 状态。

  6. 指定部署内核并在每个节点上部署 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
  7. 可选:如果您配置了 IPMI 驱动程序,请为每个节点指定 IPMI 密码套件:

    $ openstack baremetal node set <node> \
     --driver-info ipmi_cipher_suite=<version>
    • <node> 替换为节点的名称或 ID。
    • <version > 替换为节点上要使用的密码套件版本。设置为以下有效值之一:

      • 3 - 节点使用带有 SHA1 密码套件的 AES-128。
      • 17 - 节点使用带有 SHA256 密码套件的 AES-128。
  8. 等待额外的网络接口端口配置数据填充网络服务(neutron)。这个过程至少需要 60 秒。
  9. 将每个节点的置备状态设置为 available

    $ openstack baremetal node manage <node>
    $ openstack baremetal node provide <node>

    如果启用了节点清理,裸机置备服务会清理节点。

  10. 在每个节点上设置本地引导选项:

    $ openstack baremetal node set <node> --property capabilities="boot_option:local"
  11. 检查节点是否已注册:

    $ openstack baremetal node list

    注册节点及其状态之间可能会有延迟。

4.5.2. 手动注册裸机节点

将物理机注册为裸机节点,然后手动添加其硬件详情并为每个以太网 MAC 地址创建端口。您可以在具有 overcloudrc 文件的任何节点上执行这些步骤。

前提条件

  • 包括裸机置备服务的 overcloud 部署。如需更多信息,请参阅使用 裸机置备服务部署 overcloud
  • 必须使用 IronicEnabledHardwareTypes 参数启用新节点的驱动程序。有关支持的驱动程序的更多信息,请参阅 裸机驱动程序

流程

  1. stack 用户身份登录 undercloud 主机。
  2. 提供 overcloud 凭证文件:

    (undercloud)$ source ~/overcloudrc
  3. 添加新节点:

    $ openstack baremetal node create --driver <driver_name> --name <node_name>
    • <driver_name > 替换为驱动程序的名称,如 ipmi
    • <node_name > 替换为新裸机节点的名称。
  4. 注意在创建节点时分配给节点的 UUID。
  5. 为每个注册的节点将引导选项设置为 local

    $ openstack baremetal node set \
      --property capabilities="boot_option:local" <node>

    <node> 替换为裸机节点的 UUID。

  6. 指定部署内核并为节点驱动程序部署 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
  7. 更新节点属性以匹配节点上的硬件规格:

    $ 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 > 替换为构架类型。
  8. 可选:为每个节点指定 IPMI 密码套件:

    $ openstack baremetal node set <node> \
     --driver-info ipmi_cipher_suite=<version>
    • <node> 替换为裸机节点的 ID。
    • <version > 替换为节点上要使用的密码套件版本。设置为以下有效值之一:

      • 3 - 节点使用带有 SHA1 密码套件的 AES-128。
      • 17 - 节点使用带有 SHA256 密码套件的 AES-128。
  9. 可选:指定每个节点的 IPMI 详情:

    $ openstack baremetal node set <node> \
     --driver-info <property>=<value>
  10. 可选:如果您有多个磁盘,请设置 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 仅对具有持久名称的设备使用此属性。

        注意

        如果您指定多个属性,该设备必须与所有这些属性匹配。

  11. 通过在 provisioning 网络中创建带有 NIC 的 MAC 地址的端口来告知节点网卡的裸机置备服务:

    $ openstack baremetal port create --node <node_uuid> <mac_address>
    • <node> 替换为裸机节点的唯一 ID。
    • <mac_address > 替换为用于 PXE 引导的 NIC 的 MAC 地址。
  12. 验证节点的配置:

    $ 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"。

使用下表了解节点可以处于的调配状态,以及用于将节点从一个调配状态转换到另一个调配状态的操作。

表 4.1. 置备状态
状态类别描述

注册

稳定

每个节点的初始状态。有关注册节点的详情,请参考 将物理机添加为裸机节点

验证

过渡

Bare Metal Provisioning 服务使用节点注册过程中提供的 driver_info 配置验证它是否可以管理节点。

可管理

稳定

当裸机置备服务验证了它可以管理节点时,节点将过渡到 manageable 状态。您可以使用以下命令将节点从 manageable 状态转换到以下状态之一:

  • OpenStack baremetal node adopt adopting active
  • OpenStack baremetal 节点提供 cleaning available
  • OpenStack baremetal node clean cleaning available
  • OpenStack baremetal node inspect check manageable

在转换到以下失败状态之一后,您必须将节点移到 manageable 状态:

  • 采用失败
  • 清理失败
  • 检查失败

当您需要更新节点时,将节点移到 manageable 状态。

inspecting

过渡

裸机置备服务使用节点内省来更新硬件派生的节点属性,以反映硬件的当前状态。节点过渡到 manageable 以进行同步检查,并检查等待 异步检查。如果发生错误,节点将转换 来检查失败

检查等待

过渡

指示异步检查正在进行的调配状态。如果节点检查成功,节点将过渡到 manageable 状态。

检查失败

稳定

指示节点检查失败的置备状态。您可以使用以下命令将节点从 检查失败状态 转换到以下状态之一:

  • OpenStack baremetal node inspect check manageable
  • OpenStack baremetal node manage manageable

清理

过渡

处于 清理 状态的节点正在清理并重新编程到已知配置中。当节点处于 清理 状态时,根据网络管理,编排器执行以下任务:

  • 带外:编排器执行清理 步骤
  • In-band:编排器准备环境来引导 ramdisk 以运行带内清理步骤。准备任务包括构建 PXE 配置文件以及配置 DHCP。

清理等待

过渡

处于 clean 等待状态的节点 将被清理,并被重新编程到已知配置中。这个状态与 清理 状态类似,但处于 clean wait 状态,编排器正在等待 ramdisk 引导或 清理 步骤完成。

您可以通过运行 openstack baremetal node abort 中断处于 干净等待状态 节点的清理过程。

可用

稳定

在成功预配置和清理节点后,它们会被移到 available 状态,并准备好置备。您可以使用以下命令将节点从 available 状态转换到以下状态之一:

  • openstack baremetal node deploy deploying active
  • OpenStack baremetal node manage manageable

部署

过渡

处于 deploying 状态的节点是为工作负载准备的,这涉及执行以下任务:

  • 为节点部署设置适当的 BIOS 选项。
  • 分区驱动器并创建文件系统。
  • 创建其他子系统可能需要的任何其他资源,如特定于节点的网络配置和配置驱动器分区。

wait call-back

过渡

处于 wait call-back 状态的节点是为工作负载准备的。这个状态与 deploying 状态类似,除了处于 wait call-back 状态时,编排器会在准备节点前等待任务完成。例如,在编排器可以准备节点前必须完成以下任务:

  • ramdisk 已引导。
  • 已安装引导装载程序。
  • 该镜像写入磁盘。

您可以通过运行 openstack baremetal node deleteopenstack baremetal node undeploy 中断处于 wait call-back 状态的节点部署。

部署失败

稳定

指示节点部署失败的置备状态。您可以使用以下命令将节点从 deploy failed 状态转换到以下状态之一:

  • openstack baremetal node deploy deploying active
  • OpenStack baremetal node rebuild deploying active
  • openstack baremetal node delete deleting cleaning clean wait cleaning available
  • OpenStack baremetal node undeploy deleting cleaning clean wait cleaning available

active

稳定

处于 active 状态的节点有一个工作负载正在其上运行。裸机置备服务可能会定期收集带外传感器信息,包括电源状态。您可以使用以下命令将节点从 active 状态转换到以下状态之一:

  • openstack baremetal node delete deleting available
  • OpenStack baremetal node undeploy cleaning available
  • OpenStack baremetal node rebuild deploying active
  • OpenStack baremetal node rescue rescuing rescue

删除

过渡

当节点处于 删除状态时,裸机置备服务会解析活跃工作负载,并在节点部署或救援过程中删除它添加到节点的任何配置和资源。节点从 删除 状态快速过渡到 清理 状态,然后过渡到 clean 等待状态

错误

稳定

如果节点删除失败,节点将移到 错误状态。您可以使用以下命令将节点从错误状态转换到以下状态之一:

  • openstack baremetal node delete deleting available
  • OpenStack baremetal node undeploy cleaning available

adopting

过渡

您可以使用 openstack baremetal node adopt 命令将具有现有工作负载的节点直接从 manageable 转换为 active 状态,而无需首先清理和部署节点。当节点处于 采用 状态时,裸机置备服务接管使用其现有工作负载管理节点。

rescuing

过渡

处于 rescuing 状态的节点已准备好执行以下救援操作:

  • 为节点部署设置适当的 BIOS 选项。
  • 创建其他子系统可能需要的任何其他资源,如特定于节点的网络配置。

rescue wait

过渡

处于 rescue wait 状态的节点正在救援。这个状态与 rescuing 状态类似,除了处于 rescue 等待状态外,编排器正在等待 ramdisk 引导,或者执行需要在该节点上运行 in-band 的 rescue 部分,如为名为 rescue 的用户设置密码。

您可以通过运行 openstack baremetal node abort 中断处于 rescue wait 状态的节点的救援操作。

rescue 失败

稳定

指示节点救援失败的置备状态。您可以使用以下命令将节点从 rescue failed 状态转换到以下状态之一:

  • OpenStack baremetal node rescue rescuing rescue
  • OpenStack baremetal node unrescue unrescuing active
  • openstack baremetal node delete deleting available

rescue

稳定

处于 rescue 状态的节点正在运行救援 ramdisk。裸机置备服务可能会定期收集带外传感器信息,包括电源状态。您可以使用以下命令将节点从 rescue 状态转换到以下状态之一:

  • OpenStack baremetal node unrescue unrescuing active
  • openstack baremetal node delete deleting available

unrescuing

过渡

处于 unrescuing 状态的节点已准备好从 rescue 状态过渡到 active 状态。

unrescue 失败

稳定

指示节点 unrescue 操作失败的置备状态。您可以使用以下命令将节点从 unrescue failed 状态转换到以下状态之一:

  • OpenStack baremetal node rescue rescuing rescue
  • OpenStack baremetal node unrescue unrescuing active
  • openstack baremetal node delete deleting available
Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

© 2024 Red Hat, Inc.