Victoria 系列 (6.2.0 - 6.4.x) 发行说明

6.4.4

新特性

  • 添加了一个配置选项,它可以编码到 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 启动加载程序条目。

  • IPA 现在可以正确检查根分区是否已挂载。有关详细信息,请参阅 Story 2008631

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

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

  • 修复了一个分区不可见的问题,原因是 RAID 配置创建期间分区表重读调用的不正确。

  • 修复了 IPA 启动时通过 chronyd 进行 NTP 时间同步不立即生效的问题(这可能会破坏 TLS 证书生成等对时间敏感的组件)。

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

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

  • 如果无法确定其中一个网络接口的 MAC 地址,则不再崩溃。

  • 修复了元数据擦除清理在分区上失败的问题,因为找不到只读文件,而该文件在基本设备上可用。在失败时添加了对基本设备文件的检查。请参阅 story 2008696

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

  • 镜像 UEFI 软件 RAID 设置中的先前断开连接的 EFI 系统分区 (ESP)。断开连接的 ESP 可能导致节点使用过时的内核参数启动,或者 UEFI 固件找不到可启动的内核。

  • 修复了流式传输原始分区镜像后不正确的根分区 UUID。

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

  • 在 write_image.sh 中添加了对“udevadm settle”的调用。在销毁 GPT 和 MBR 后,systemd-udevd 会被触发,这可能会打开 /dev/sda,从而阻止 qemu-img 写入镜像。

  • 如果使用 UEFI 模式使用不兼容 UEFI 的镜像,则提供更具体的错误消息。

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

6.4.3

新功能

  • 添加了启动 VLAN 接口并将它们包含在内省报告中的功能。这在需要在标记 VLAN 上配置 IP 地址的环境中是必需的。添加了一个新的内核参数字段 - ipa-enable-vlan-interfaces,它定义要启用的 VLAN 接口、要使用的接口或“all” - 表示所有接口。如果未提供特定的 VLAN,IPA 将使用接口的 LLDP 信息来确定应启用哪些 VLAN。请参阅 story 2008298

错误修复

  • 自动生成的 TLS 证书现在具有过去(默认情况下为 1 小时)的有效期,以允许时钟偏差。

  • 修复了代理进程确定在写入分区镜像时使用哪种分区标签类型的问题。在许多情况下,如果实例 flavor 未正确标记,它可能会回退到 msdos

  • 正确解码来自 ironic API 的错误消息。

6.4.2

错误修复

  • 不再需要 mdadm 实用程序。如果使用软件 RAID(即使不由 ironic 管理),则仍然需要它。

6.4.1

错误修复

  • 修复了 write_image 部署步骤,以实际检查并返回其执行期间发生的任何错误。

  • 避免在使用 install_bootloader 与整个磁盘镜像时出现回溯。如果无法检测到根 UUID,则不要尝试调用 grub。

6.4.0

新功能

  • 在 IPA 中启用通过 TLS 托管 API 服务器的支持。使用此支持需要将 [DEFAULT]listen_tls 设置为 True,然后将 [ssl]cert_file[ssl]key_file 和可选的 [ssl]ca_file 设置为嵌入在 ramdisk IPA 运行内部的文件中。

  • 当检测到足够新的 ironic 版本并且 listen_tlsFalse 时,代理现在将生成自签名 TLS 证书并将其发送到 ironic 进行心跳。这确保了从 ironic 到代理的加密通信。将 enable_auto_tls 设置为 False 以禁用此行为。

  • 默认情况下现在启用了 logs 检查收集器,请更改 ipa-inspection-collectors 以禁用它。

升级说明

  • IPA 心跳间隔现在依赖于准确的时钟时间。任何尝试同步时钟的清理或部署步骤都可能导致不发送心跳。IPA 在启动和关闭时同步时间,因此不应需要这些步骤。

错误修复

  • 修复了正在进行快速跟踪的节点的问题,从内省到部署,其中代理的节点内部缓存可能已过时。特别是,如果节点不遵守保存到 Ironic 的 API 的根设备提示,该提示在代理启动后保存,则可能会观察到这一点。有关更多信息,请参阅 story 2008039

  • 修复了一个小的错误关键字参数,该参数在方法调用者和单元测试之间匹配,但与实际方法、单元测试和调用者不匹配。这是一个非致命问题,现在应该允许代理在部署实例镜像之前最后一次尝试查找节点,以获取根设备提示。

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

  • 修复了一个在软件 RAID 设置期间创建的分区过早清理的问题,因此可能会阻止正确清理 md 超块。将超块保留在后台会影响以后创建新的 md 设备。

  • 通过 UUID 检测 md 组件设备,而不是扫描 mdadm 的输出。这将防止设备在当前未成为数组的一部分时错过 md 超块清理。

其他说明

  • 在心跳过程中添加了对连接失败的显式捕获,以便提供更详细的错误消息,以反映正在发生的事情,而不是仅仅指示发生了错误。这个新的异常称为 HeartbeatConnectionError,可能只有在存在本地连接失败(例如路由器故障、交换端口处于阻止状态或连接中心瞬态故障)时才能看到。