Train 系列 (3.7.0 - 5.0.x) 发布说明

5.0.4-25

新特性

  • 添加了一个配置选项,它可以编码到 ramdisk 本身或提供给代理的 PXE 参数中,以指示代理忽略启动加载程序安装或配置失败。此功能对于规避一些有良好意图的硬件很有用,这些硬件会自动将所有可能的设备填充到 UEFI nvram 固件中,以尝试确保机器启动。但是,这也可能意味着任何显式配置尝试都将失败。需要此绕过的操作员可以使用 PXE 命令行上的 ipa-ignore-bootloader-failure 配置选项,或利用 Ramdisk 配置中的 ignore_bootloader_failure 选项。在 ironic 的未来版本中,此设置可能可以通过 ironic 节点级别配置覆盖。

  • 添加了代理读取和处理启动加载程序 CSV 文件的功能,这些文件作为权威指标,指示要加载的启动加载程序,而不是倾向于使用默认启动加载程序。

已知问题

  • 如果 EFI 文件系统上存在多个启动加载程序 CSV 文件,则将使用发现的第一个 CSV 文件。Ironic 团队认为多个文件是正在部署的镜像中的缺陷。这可能会在未来更改。

错误修复

  • 设置新的 ipa-ignore-bootloader-failure 配置选项可以防止由于多个附加设备自动启动加载程序条目配置导致的启动加载程序安装失败错误。

  • 对于 Linux 机器,系统文件系统配置文件 /etc/fstab 现在已更新为包含对分区镜像基础部署中 EFI 分区的引用。如果没有此引用,则使用分区镜像部署的镜像最终可能会遇到升级启动加载程序失败的情况。

  • 修复了 UEFI 重复条目清理中正则表达式的一个小问题,该问题是在先前更改中引入的,目的是重构清理操作,以避免 UEFI 固件将删除条目后的操作视为无效操作。

  • 修复了 UEFI 固件 NVRAM 启动条目表中可能找不到重复条目的情况,方法是显式查找并删除匹配的标签,然后再创建 EFI 启动加载程序条目。

  • 如果用于 bootloader hint 的 CSV 文件没有 BOM,我们将无法将其内容作为 utf-16 编解码器读取,因为该编解码器过于通用。回退到 utf-16-le,因为小端模式通常使用。

  • 修复了基于 UEFI 的部署中,使用分区镜像时 NVMe 设备之前失败的问题,原因是设备名称模式不同。

  • 修复了一个分区不可见的问题,原因是分区表重读调用的不正确。

  • 修复了由于内存限制导致磁盘镜像转换过程中出现内存分配或输入/输出错误的问题,方法是限制可用内存分配池的数量到一个合理的非动态数量,该数量不应超过可用系统内存。

  • CentOS 8.4 和 8.5 上的 lshw 包版本 B.02.19.2-5 包含一个 bug,该 bug 阻止报告单个内存条的大小,导致某些地方报告的总内存大小为 0。现在,当可用时,总内存大小将从 lshw 的总内存大小输出中获取(该输出不受相同问题的影响)。

  • 修复了代理的 EFI 启动处理,以便保留并使用分区镜像中的 EFI 资产,而不是覆盖它们。如果分区镜像中已经存在资产,这应该允许操作员使用安全启动。

  • 修复了部署完成后节点失败的问题,原因是 Grub2 EFI 加载程序条目添加中的问题,其中 BOOT.CSV 文件提供了指向要用于启动操作系统的启动加载程序的权威指针。Grub2 的基本问题是,它会使用供应商特定的 BOOT.CSVBOOTX64.CSV 文件更新 UEFI 启动加载程序 NVRAM 条目。在某些情况下,裸机可能会在此过程中崩溃。有关更多信息,请参阅 story 2008962

  • 修复了基于 Python3 的支持,用于加载文件,因为引导加载程序配置文件加载的文件加载需要显式的 open 操作,并带有 Unicode 指示符,而这在回移植到 Python2 支持时被无意中破坏了。

  • qemu-img convert 命令的内存使用量限制增加到 2 GiB。有关详细信息,请参阅 Story 2008667

5.0.4

错误修复

  • 修复了一个问题,当在软件 RAID 卷上没有设置 root_device hint 时,引导加载程序安装可能会失败。请参阅 Story 2007905

  • 修复了 IntelCnaHardwareManager 的问题,该问题阻止执行优先级较低的硬件管理器,因此可能会阻止这些管理器应该负责的硬件的初始化和收集。

  • 修复了 Agent Lookup 的重试逻辑问题,这可能导致查找过早失败,在完成之前就结束,通常会导致代理日志突然结束,并且可能会在代理进程的标准错误输出中报告 TypeError 等奇怪的错误。有关更多信息,请参阅 bug 2007968

  • 修复了 ironic-python-agent 中的一个问题,我们会调用设置引导加载程序,这对于软件 raid 是必要的,但也会尝试清理 iSCSI。这在使用 direct deploy_interface 时可能会导致问题。现在,代理只会清理 iSCSI 连接,如果 iSCSI 已显式启动。有关更多信息,请参阅 story 2007937

5.0.3

错误修复

  • 修复了在镜像下载过程中断时部署失败的问题,而内容正在下载。 之前重试仅限于打开初始连接。

  • 修复了短超时重试间隔的问题,之前为 5 秒,现在延长到允许代理在网络中断后重试的长度。重试之间的时间间隔现在为 10 秒,重试次数设置为 9,以帮助确保间歇性网络中断不会导致可恢复的故障。

  • 通过在步骤之间缓存硬件信息,加快从检查到清理的速度,并启用快速通道。

  • 修复了 ironic-lib 产生的异常序列化问题。 之前尝试这样做会导致 TypeError,例如:Object of type ‘InstanceDeployFailure’ is not JSON serializable.

  • 修复了在内核未快速检测到远程服务器挂断套接字的情况下,无法检测到挂起的的文件下载连接的问题。这可能发生在由于交换机结构中 LACP 故障响应保持时间器导致的间歇性和瞬态连接问题时。

5.0.2

错误修复

  • 修复了在 UEFI 启动模式下运行的部署 ramdisk 中的一个问题,双启动镜像可能会导致逻辑过早退出,从而无法更新 UEFI 参数。内部检查 BIOS 引导加载程序现在始终在机器处于 UEFI 模式时返回 False

  • 修复了 efibootmgr 不存在于 ramdisk 中的错误处理。请参阅 story 以获取更多详细信息。

  • standby 扩展中下载镜像时,提供了建立连接的超时和重试。降低了在网络问题的情况下镜像下载卡住的可能性。

    默认超时时间为 60 秒,可以通过内核参数 ipa-image-download-connection-timeout 进行设置。默认重试次数为 2,可以通过参数 ipa-image-download-connection-retries 进行设置。

  • 修复了一个问题,在部署的设备上,在检查 UEFI 内容之前,代理未能重新扫描设备。这会发生在基于 iSCSI 的部署中,因为分区管理操作是由 conductor 执行的,而不是本地执行的。

  • 不再尝试为同时存在 EFI 分区但仅标记为 boot(而不是 esp)的整个磁盘镜像使用 GRUB2 进行引导配置。

5.0.1

错误修复

  • 修复了在可能的情况下使用 efibootmgr 而不是 grub2 更新 nvram 的 wholedisk 镜像工作流程,在 UEFI 启动模式下使用。

  • 通过提供基于 findfs 实用程序的 TinyIPA CI 测试镜像的备用根卷 UUID 检测方法来修复问题,该实用程序也已打包到大多数发行版中,并带有 lsblk

    由于 TinyIPA 构建的 TinyCore Linux 中的 lsblk 命令未按预期返回卷 UUID 值,因此需要此备用方案。

  • 修复了在硬件级别为只读的设备上元数据擦除清理失败的问题。通常,这些是操作系统为了自安装目的而提供的虚拟设备。

    在完全设备擦除的情况下,这明确地被视为需要操作员干预的硬性故障。

  • 如果未分配到 numa_node,则跳过 NIC numa_node 发现,因为在某些罕见情况下,例如带有虚拟 NUMA 节点的 VM,NIC 可能不在 NUMA 节点中,这会破坏 numa-topology 发现。

  • 修复了 numa-topology 检查收集器,使其与 Pint < 0.5.2 兼容。

  • 修复了一个问题,请求 wholedisk 镜像进行部署时会覆盖引导加载程序。IPA 现在显式查找引导分区,如果磁盘看起来是 MBR 可引导的,则检查其内容。如果存在 UEFI 或 PREP 引导分区,则不应用覆盖/跳过引导加载程序安装。

其他说明

  • 将 ipa-ip-lookup-attempts 增加到 6,为网络设置增加额外时间,然后再放弃。

5.0.0

新功能

  • 添加了对在 NVMe 驱动器上创建软件 RAID 的支持。

升级说明

  • 基于 CoreOS 的镜像不再受支持和构建。它们在 Stein 周期中已被弃用,并且正在开发基于 diskimage-builder 的替代方案。

错误修复

  • 修复了由于 lshw 实用程序的输出不同而导致的 AArch64 上物理内存量检测问题。

  • 修复了一个问题,如果它们是 NVMe 驱动器,则无法正确列出 md 设备的磁盘持有者。

  • 修复了在裸机节点上存在软盘设备时清理操作的问题。现在显式忽略软盘设备。

  • 不再尝试使用 zRAM 设备进行任何操作。

  • 修复了使用 size_gb 提供时创建软件 RAID 时的尺寸转换问题。从 RAID 文档 size_gb 单位是 GiB,但 parted 默认单位是 MB。

  • 修复了在指定了大小(即不是“MAX”)的多个逻辑驱动器时创建软件 RAID 的问题。请参阅 story 2006352

  • 修复了当大小为“MAX”的逻辑驱动器不是逻辑驱动器列表中的最后一个时创建软件 RAID 的问题。

  • 从所有块设备中清除超级块,作为尝试擦除在调用 delete_configuration 时从设备中删除任何软 raid 提示,包括从不再是任何 raid 成员的驱动器中删除。

  • 尝试在启动时自动组装软件 RAID,以避免 ramdisk 未自动执行此操作时出现问题(例如 tinyipa)。

其他说明

  • 默认的 list_all_block_devices 硬件管理器方法已更改为忽略软盘设备,引入了一个参数 ignore_floppy,默认值为 True。可以将值 False 传递给 list_all_block_devices 方法以包含这些设备。