启动接口

启动接口管理裸机节点上部署 ramdisk 和用户实例的启动。

PXE 启动接口是通用的,适用于支持从网络启动的所有硬件。或者,一些供应商提供了启动接口的虚拟介质实现。它们的工作方式是将 ISO 镜像推送到节点的 管理控制器,并且不需要 PXE 或 iPXE。有关详细信息,请查看驱动程序文档,网址为 Ironic 的驱动程序、硬件类型和硬件接口

PXE 启动

pxeipxe 启动接口分别使用 PXEiPXE 来传递目标内核/ramdisk 对。PXE 使用相对较慢且不可靠的 TFTP 协议进行传输,而 iPXE 使用 HTTP。iPXE 的缺点是它不太常见,通常需要首先使用 PXE 进行引导。

pxeipxe 启动接口的工作方式是在文件系统上为节点准备 PXE/iPXE 环境,然后指示 DHCP 提供程序(例如,网络服务)从该环境启动节点。有关整个部署过程的更好理解,请参阅 示例:PXE 启动和直接部署流程

注意

当使用 UEFI 启动而不是传统的 BIOS 启动时,PXE 和 iPXE 的配置方式不同。这对于根本没有 BIOS 支持的 CPU 架构尤其重要。

ipxe 启动接口默认情况下用于许多硬件类型,包括 ipmi。一些硬件类型,特别是 iloirmc 具有 PXE 启动接口的特定实现。

此启动接口需要额外的配置 - 有关详细信息,请参阅 配置网络启动

HTTP 启动

httphttp-ipxe 启动接口分别基于 Ironic 对 pxeipxe 启动接口的实现,并利用 HTTP 在传输启动序列的起始位置。这些接口特定于 UEFI,因为它们植根于 UEFI 标准 v2.5 对从 HTTP URL 启动的支持。

需要记住的一个注意事项是,这些接口需要硬件支持以及向远程 BMC 发出信号,指示节点应使用 UEFIHTTP 启动。如果硬件类型不支持将其作为选项,我们将回退并请求 PXE 启动,但实际上只有当机器上的固件足够智能,可以检查并评估 HTTP 启动 URL 而不是 PXE 启动服务器和文件名时才有效。

应该注意的是,这些启动接口可用于供应商独立的通用硬件类型 ipmiredfish。硬件供应商通常只有在他们自己执行了验证和资格测试后才会包含其他接口。

内核参数

如果您需要将其他内核参数传递给部署/清理 ramdisk(例如,配置串行控制台),请使用以下配置选项

[pxe]
kernel_append_params = nofb vga=normal

注意

在 Xena 周期之前,该选项称为 pxe_append_params

也可以对每个节点和每个实例进行覆盖,例如

baremetal node set node-0 \
  --driver-info kernel_append_params="nofb vga=normal"
baremetal node set node-0 \
  --instance-info kernel_append_params="nofb vga=normal"

从 Zed 周期开始,您可以使用特殊的 %default% 语法来组合配置和节点中的参数

baremetal node set node-0 \
  --driver-info kernel_append_params="%default% console=ttyS0,115200n8"

与上述配置一起,以下参数将被附加到内核命令行

nofb vga=normal console=ttyS0,115200n8

注意

Ironic 不会对生成的内核参数进行任何去重。内核本身和 dracut 似乎都优先考虑相同参数的最后一个实例。

警告

以前我们的文档将 Linux 内核参数 nomodeset 列为一种选项。此选项用于故障排除,并且可能会大大降低使用 Matrox/Aspeed BMC 图形控制器的性能,而这些控制器在物理服务器上非常常用。性能下降可能会大大降低每次控制台图形更新写入屏幕时的 IO 容量。

常用选项

启用部署/清理操作的持久启动设备

对于 (i)PXE 启动,Ironic 默认情况下使用非持久的启动顺序更改来进行清理/部署。对于某些驱动程序,持久更改的成本远高于非持久更改,因此这种方法可以带来性能优势。

为了控制此行为,Ironic 在节点的 driver_info 中提供了 force_persistent_boot_device 标志。它允许的值为 Default(在部署时使所有更改(最后一个除外)非持久),Always(使所有更改持久),和 Never(使所有启动顺序更改非持久)。例如,为了只进行持久更改,需要设置如下内容

$ openstack baremetal node set --driver-info force_persistent_boot_device='Always' <node>

注意

建议检查节点的状态是否已更改,因为无法在这些命令之间锁定节点。

注意

节点驱动程序信息中选项“force_persistent_boot_device”的“True”/“False”值已被弃用,并且对其支持可能会在未来的版本中删除。以前的默认值“False”被替换为新的值“Default”,值“True”被替换为“Always”。