Ussuri 系列发布说明 (6.0.0 - 6.1.x)¶
6.1.3-4¶
错误修复¶
如果用于 bootloader hint 的 CSV 文件没有 BOM,我们将无法将其内容作为 utf-16 编解码器读取,因为该编解码器过于通用。回退到 utf-16-le,因为小端模式通常使用。
6.1.3¶
错误修复¶
修复了 UEFI 重复条目清理中正则表达式的一个小问题,该问题是在先前更改中引入的,目的是重构清理操作,以避免 UEFI 固件将删除条目后的操作视为无效操作。
修复了 UEFI 固件 NVRAM 启动条目表中可能找不到重复条目的情况,方法是显式查找并删除匹配的标签,然后再创建 EFI 启动加载程序条目。
修复了一个分区不可见的问题,原因是分区表重读调用的不正确。
修复了一个分区不可见的问题,原因是 RAID 配置创建期间分区表重读调用的不正确。
6.1.2¶
新特性¶
添加了一个配置选项,它可以编码到 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 分区的引用。如果没有此引用,则使用分区镜像部署的镜像最终可能会遇到升级启动加载程序失败的情况。
修复了在软件 RAID 卷上,未设置 root_device hint 时,引导加载程序安装可能失败的问题。请参阅 Story 2007905
修复了 IntelCnaHardwareManager 的问题,该问题阻止执行优先级较低的硬件管理器,因此可能会阻止这些管理器应该负责的硬件的初始化和收集。
修复了基于 UEFI 的部署中,使用分区镜像时 NVMe 设备之前失败的问题,原因是设备名称模式不同。
修复了一个错误,在软件 RAID 设置期间创建的分区过早被清理,因此可能阻止正确清理 md 超块。留下超块会影响以后创建新的 md 设备。
修复了 Agent Lookup 的重试逻辑问题,这可能导致查找过早失败,在完成之前就结束,通常会导致代理日志突然结束,并且可能会在代理进程的标准错误输出中报告 TypeError 等奇怪的错误。有关更多信息,请参阅 bug 2007968。
通过 UUID 检测 md 组件设备,而不是通过扫描 mdadm 的输出。这将防止设备在当前未成为阵列的一部分时,错过 md 超块清理。
修复了由于内存限制导致磁盘镜像转换过程中出现内存分配或输入/输出错误的问题,方法是限制可用内存分配池的数量到一个合理的非动态数量,该数量不应超过可用系统内存。
CentOS 8.4 和 8.5 上的 lshw 包版本 B.02.19.2-5 包含一个 bug,该 bug 阻止报告单个内存条的大小,导致某些地方报告的总内存大小为 0。现在,当可用时,总内存大小将从 lshw 的总内存大小输出中获取(该输出不受相同问题的影响)。
修复了代理的 EFI 启动处理,以便保留并使用分区镜像中的 EFI 资产,而不是覆盖它们。如果分区镜像中已经存在资产,这应该允许操作员使用安全启动。
自 Ussuri 发布以来,IPA 忽略了 listen_host 和 listen_port 指令。此修复恢复了该行为,并将这些配置值恢复到工作状态。 https://storyboard.openstack.org/#!/story/2008016
修复了部署完成后节点失败的问题,原因是 Grub2 EFI 加载程序条目添加中的问题,其中
BOOT.CSV文件提供了指向要用于启动操作系统的启动加载程序的权威指针。Grub2 的基本问题是,它会使用供应商特定的BOOT.CSV或BOOTX64.CSV文件更新 UEFI 启动加载程序 NVRAM 条目。在某些情况下,裸机可能会在此过程中崩溃。有关更多信息,请参阅 story 2008962。
将
qemu-img convert命令的内存使用量限制增加到 2 GiB。有关详细信息,请参阅 Story 2008667。
6.1.1¶
错误修复¶
修复了在镜像下载过程中断时,部署失败的问题。 之前重试仅限于打开初始连接。
修复了
apply_configuration部署步骤的返回值:agentRAID 接口期望返回最终的 RAID 配置。
修复了短超时重试间隔,之前为
5秒,调整为允许代理在网络中断后重试的长度。现在重试之间的时间间隔为10秒,重试次数设置为9,以帮助确保间歇性网络中断不会导致可恢复的故障。
修复了由 ironic-python-agent greenthread eventlent 实现引起的高 CPU 使用率问题。
使用 eventlet.sleep(0.1) 代替 eventlet.sleep(0) 可以让 IPA 的其他进程有更多的 CPU 时间来运行。
通过缓存硬件信息在步骤之间,加快从检查到清理的速度,并启用快速通道。
修复了 ironic-lib 产生的异常的序列化问题。 之前尝试这样做会导致
TypeError,例如:Object of type ‘InstanceDeployFailure’ is not JSON serializable.
修复了 ironic-python-agent 中的一个问题,我们会调用设置引导加载程序,这对于软件 raid 是必要的,但也会尝试清理 iSCSI。这在使用
directdeploy_interface时可能会导致问题。现在,代理只会清理 iSCSI 连接,如果 iSCSI 已显式启动。有关更多信息,请参阅 story 2007937。
为软件 RAID 创建的 ESP 分区的大小已从 128 MiB 增加到 550 MiB。 此更改与最近的 diskimage-builder 更改 以及 gdisk 作者的指导 相符。
修复了在内核未快速检测到远程服务器挂断套接字的情况下,无法检测到挂起的的文件下载连接的问题。 当存在间歇性和瞬态连接问题时,例如由于交换机织网中的 LACP 故障响应保持时间定时器而可能发生这种情况。
在收集清单时,现在会忽略大小为 0 的设备。 一些硬件以这种方式表示虚拟软盘设备,请参阅例如 https://www.dell.com/community/Systems-Management-General/How-to-disable-iDRAC-Virtual-CD/td-p/4734424
6.1.0¶
新特性¶
添加了对代理接收、存储和返回来自 Ironic 部署的
agent token的支持,以帮助保护 ironic API/v1/heartbeat端点以及 ironic-python-agent ramdisk 的 API 的使用。
现在可以在设备提示(与根设备相同)的形式中指定软件 RAID 的目标设备,位于逻辑磁盘配置的
physical_disks参数中。
添加了一个特性,IPA 将利用
[DEFAULT]ntp_server或ipa-ntp-server内核命令行参数,使代理尝试将时钟与 NTP 源同步。 代理还尝试将软件时钟与 NTP 时间源同步,并在关机前断言对硬件时钟的更新。 请注意,如果您的系统时钟设置为本地时间而不是 UTC,这可能会导致不良行为。
为软件 RAID 添加了 UEFI 引导支持,以及基于使用的引导模式的基于分区表的创建。
升级说明¶
受支持的 ironic API 的最低版本现在是 1.31,对应于 Ocata 发布版中最新的版本。 早期版本不再受支持。
为软件 RAID 创建的分区表的类型现在基于使用的引导模式(UEFI 或 GPT 的情况下,如果通过实例的功能或节点的属性显式传递,否则为 MSDOS)。 驱动器上保留的空间量现在也取决于引导模式(UEFI/GPT 为 128MiB,BIOS/GPT 为 8MiB,否则为 1 个扇区)。
安全问题¶
盐值使用随机生成,并且该模块不符合 FIPS 140-2 标准。 现在我们让盐值由加密函数自动生成(它将使用最强的方法)。
错误修复¶
修复了在 UEFI 引导模式下运行的部署 ramdisk 中,双引导镜像可能导致逻辑过早退出,从而无法更新 UEFI 参数的问题。 现在,当机器处于 UEFI 模式时,内部检查 BIOS 引导加载程序将始终返回
False。
修复了一个问题,在
ironic-python-agent将磁盘镜像写入目标磁盘后,未更新辅助 GPT 分区表。 代理现在无条件地尝试修复辅助分区表。 之前,软件 RAID 卷在重新启动时会报告错误。
修复了 ramdisk 中缺少 efibootmgr 时的错误处理。 请参阅 story 以获取更多详细信息。
在建立连接以在
standby扩展中下载镜像时,提供超时和重试。 降低了在网络问题发生时镜像下载卡住的可能性。默认超时时间为 60 秒,可以通过
ipa-image-download-connection-timeout内核参数设置。 默认重试次数为 2,可以通过ipa-image-download-connection-retries参数设置。
通过在
ironic-collect-introspection-data中引入抖动处理,来修复潜在的活动节点雷鸣效应。 默认情况下,抖动将导致基于配置参数introspection_daemon_post_interval的时间值在所需时间窗口的 70% 到 120% 之间得到尊重。如果初始连接和守护进程模式的内省数据收集启动后发生故障,则回退是内省守护进程发布间隔的 400%。
现在盐值将由加密函数自动生成。
在安装引导加载程序时,重新扫描软件 RAID 设备重启后的分区。
修复了一个问题,在部署的设备上,在检查 UEFI 内容之前,代理未能重新扫描设备。这会发生在基于 iSCSI 的部署中,因为分区管理操作是由 conductor 执行的,而不是本地执行的。
不再尝试为仅标记为
boot(而不是esp)的 EFI 分区存在的整个磁盘镜像配置 GRUB2。