Rocky 系列 (11.0.0 - 11.1.x) 发行说明

11.1.4-12

错误修复

  • 修复了在使用 Python 3 配置 RAID 时“SpanLength 的参数值无效”的 issue。它将错误的数据类型传递给 iDRAC,例如,它传递了 2.0 而不是 2。请参阅 story 2004265

  • 清理在 conductor 重启时卡在 deleting 状态的节点。

  • 修复了部署步骤失败时节点 last_error 字段报告模糊的 issue,通过提供失败步骤以及异常错误消息。

  • 如果配置的超时时间到期后 ipmitool 进程未退出,则终止 ironic 调用的 ipmitool 进程。 似乎 ipmitool 在遇到无响应的裸机节点时运行五分钟(使用当前的 ironic 默认值)的情况非常常见。 这可能会因周期性任务槽用尽而减慢其他节点的管理速度。 新行为默认启用,但可以通过 ironic 配置文件中的 [ipmi]kill_on_timeout 选项禁用。

  • 修复了一个 bug,在使用 WS-MAN 电源接口时,使用 idrac 硬件类型管理节点重启有时会因 The command failed to set RequestedState 错误而失败。有关详细信息,请参阅 bug 2007487

  • 为 IPA 添加了 command_timeoutmax_command_attempts 配置选项,以便在发生连接错误时再次执行该命令。

  • 修复了 ironic-conductor 初始化可能在需要锁的请求时返回 NodeNotLocked 错误的 issue。这是因为 conductor 在开始接受新工作后删除了锁。锁的移除已移动到数据库连接建立之后但在 RPC 总线初始化之前。

11.1.4

错误修复

  • 修复了在部署过程中遇到的部署 issue,更具体地说是在 configdrive 分区创建步骤中。在某些特定设备(例如 NVMe 驱动器)上,创建的 configdrive 分区无法正确识别(之后需要将数据转储到其中)。https://storyboard.openstack.org/#!/story/2005764

  • 修复了使用序列号作为根设备提示与 ansible 部署接口的 issue。

  • 修复了与 ansible 部署接口相关的问题。 由于在获取某些镜像信息时原始请求上下文不再可用,因此对于任何非公共镜像,节点部署都会中断。

  • 修复了资源列表 API 返回结果仅包含请求字段直到 API MAX_LIMIT。在达到 API MAX_LIMIT 后,API 开始忽略用户请求的字段。此修复将确保分页代码生成的下一个 url 将包含用户请求的字段作为查询参数。

  • 修复了一个问题,即在执行列表查询时,如果请求字段列表中没有 uuid,则分页标记未被设置。 受影响的 API 端点为:端口、端口组、卷目标、卷连接器、节点和机箱。 请参阅 story 2003192 以获取更多详细信息

  • 修复了在具有大量安全组的云中部署时,由于列出安全组花费的时间过长而导致的问题。不再列出所有安全组,而是添加了查询过滤器以仅列出要用于网络的安全组。(请参阅 bug 2006256。)

  • 修复了 grub ramdisk 引导模板处理中的一个 bug,使得模板现在正确引用用户提供的 kernal 和 ramdisk。之前部署 ramdisk 和内核被引用在模板中。

  • 修复了使用 update_firmware_sum 清理步骤从 ilo 硬件类型的管理接口更新固件时,由于身份验证失败而无法连接到 iLO 地址的 issue。有关详细信息,请参阅 story 2006223

11.1.3

弃用说明

  • 使用 fake 管理接口和 manual-management 硬件类型已被弃用,请改用 noop。 升级后需要更新现有节点。

错误修复

  • 修复了关于 ansible deployment interface 清理工作流程的一个 issue。在驱动程序中处理错误并返回空值会导致管理器认为该步骤已完成并进入下一个步骤,而不是中断清理工作流程。

  • 修复了使用 ansible 部署接口时,无法正确将原始镜像流式传输到主机的 issue。

  • 修复了使用 ansible 部署接口和具有 GPT 分区表的实例镜像的部署问题。

  • 修复了在 ipmitool 接口的传感器数据解析方法中,缺乏处理自动包含的 ipmitool 调试信息的能力,当 ironic.conf 文件中将 debug 选项设置为 True 时。因此,底层 ipmitool 命令提供的额外调试信息被忽略。有关更多信息,请参阅 story 2005331

  • 修复了节点准备期间部署失败的问题,如果节点的 capabilities 作为字符串传递。

  • 修复了在尝试计算实际校验和并出现 UnicodeDecode 错误时校验和验证的问题。 该修复使用 oslo_utils 库来计算实际校验和。

  • manual-management 硬件类型现在默认使用 noop 管理接口。 与 fake 管理接口不同,它不会在尝试将启动设备设置为本地磁盘时失败。

  • 修复了一个 cinder 块存储服务卷无法附加的问题,该问题期望挂载点是一个有效的字符串。有关更多信息,请参阅 story 2004864

  • 在提供对 image_source 的无效引用时,返回正确的错误消息。 之前会引发内部错误。

  • 撤销了对 idrac 硬件类型创建端口对象进行检查的修复,其中 pxe_enabled 字段未设置为反映物理端口的配置。 这与稳定分支策略 [1] 不一致。 它需要 python-dracclient 版本 1.5.0 或更高版本;但是,driver-requirements.txt 指定可以使用版本 1.3.0 或更高版本在此分支上。

    [1] https://docs.openstack.org/project-team-guide/stable-branches.html

11.1.2

错误修复

  • 已修复节点更新代码中的一个错误,该错误可能导致如果其驱动程序不再可用,节点将无法更新。

  • 修复了一个无法禁用主实例镜像缓存的问题。 配置选项 [pxe]/instance_master_path 现在可以设置为一个空字符串来禁用缓存。

  • 修复了一个无法禁用主 TFTP 镜像缓存的问题。 配置选项 [pxe]/tftp_master_path 现在可以设置为一个空字符串来禁用缓存。 有关更多信息,请参阅 story 2004608

  • 修复了一个错误,即 ironic 端口未根据 idrac 硬件类型的 PXE 启用设置在节点检查中更新。 有关详细信息,请参阅 bug 2004340

11.1.1

新特性

  • 将这些配置选项设置为 0 将禁用周期性任务

    • [conductor]sync_power_state_interval: 同步节点的电源状态

    • [conductor]check_provision_state_interval

      • 检查部署并超时,如果部署时间过长

      • 检查节点清理的状态并超时,如果时间过长

      • 检查节点检查的状态并超时,如果时间过长

      • 检查并处理被新 conductor 接管的节点(如果旧 conductor 消失)

    • [conductor]send_sensor_data_interval: 将传感器数据发送到 ceilometer

    • [conductor]sync_local_state_interval: 刷新 conductor 对一致哈希环的副本。 如果任何映射发生更改,则确定需要“接管”哪些节点(如果有)。 后续操作可能包括准备 PXE 环境、更新 DHCP 服务器等。

    • [oneview]periodic_check_interval

      • 检查被 OneView 用户接管的节点

      • 检查被 OneView 用户释放的节点

已知问题

  • 使用 python-dracclient 1.4.0 或更早版本构建 RAID1 已知无法工作。 升级到 python-dracclient 1.5.0 以使用此功能。

升级说明

  • hash_ring_reset_interval 配置选项已从 180 更改为 15 秒。 以前,此选项在 API 侧基本上被忽略,因为哈希环在每次 API 访问时都会重置。 较低的值可最大限度地减少在需要重新平衡时将请求路由到错误 conductor 的可能性。

  • 如果您正在进行次要版本升级,请重新运行 ironic-dbsync online_data_migrations 命令以正确更新数据库中对象的版本。 否则,下一次主要升级可能会失败。

关键问题

  • ironic-dbsync online_data_migrations 命令未将对象更新到最新版本,这可能会阻止升级工作(例如,在运行下一个版本的 ironic-dbsync upgrade 时)。 现在,在运行该命令时,对象将更新到最新版本。 有关更多信息,请参阅 story 2004174

错误修复

  • 修复了一个裸机节点在清理过程中超时的问题。 ironic-conductor 试图将节点的置备状态更改为“clean failed”两次,导致节点的 last_error 被错误地设置。 现在不再发生这种情况。 有关更多信息,请参阅 story 2004299

  • 修复了一个将这些配置选项设置为 0 会引发 ValueError 异常的问题。 现在可以将它们设置为 0 以禁用相关的周期性任务。 (有关更多信息,请参阅 story 2002059。)

    • [conductor]sync_power_state_interval: 同步节点的电源状态

    • [conductor]check_provision_state_interval

      • 检查部署并超时,如果部署时间过长

      • 检查节点清理的状态并超时,如果时间过长

      • 检查节点检查的状态并超时,如果时间过长

      • 检查并处理被新 conductor 接管的节点(如果旧 conductor 消失)

    • [conductor]send_sensor_data_interval: 将传感器数据发送到 ceilometer

    • [conductor]sync_local_state_interval: 刷新 conductor 对一致哈希环的副本。 如果任何映射发生更改,则确定需要“接管”哪些节点(如果有)。 后续操作可能包括准备 PXE 环境、更新 DHCP 服务器等。

    • [oneview]periodic_check_interval

      • 检查被 OneView 用户接管的节点

      • 检查被 OneView 用户释放的节点

  • 修复了一个问题,即在从裸机主机删除实例后,Neutron 端口会与 baremetal MAC 地址关联。 这导致后续部署到同一裸机主机时出现 MAC 地址冲突。 bug 2004428

  • 修复了一个问题,即在从裸机主机删除实例后,flat Neutron 端口会与主机 ID 关联。 这导致无法为新实例重用同一端口,因为它已绑定到旧实例。

  • 修复了一个错误,即 idrac 硬件类型在内省期间返回 CPU 插槽的数量,而不是虚拟 CPU 的数量。 有关详细信息,请参阅 bug 2004155

  • 修复了哈希环实现中的一个竞争条件,该条件可能导致任何请求发生内部服务器错误。 有关详细信息,请参阅 story 2003966

  • 正确报告一个错误,当镜像缓存和镜像 HTTP 或 TFTP 位置位于不同的文件系统上时,导致硬链接失败。

  • 修复了一个问题,即如果节点上未指定 cpu_arch 属性,则基于 iSCSI 的部署会失败。

  • 修复了 redfish 硬件类型,在与使用会话身份验证的 BMC 通信时重用 HTTP 会话令牌。 在此修复之前,redfish 硬件类型从未尝试重用 BMC 在先前连接期间发出的会话令牌,这有时会导致某些 BMC 实现的会话池耗尽。

  • 修复了一个问题,即如果 ironic 节点配置了 ramdisk 部署接口,则部署会在节点准备期间失败。 有关更多详细信息,请参阅 bug 2003532

  • IPMI 硬件类型无条件地指示 BMC 不要自动清除启动标志有效位,如果在 60 秒超时内未收到机箱控制命令(倒计时在收到机箱控制命令时重新启动)。 某些 BMC 不支持设置此项;如果发送,会导致启动中止。 对于 IPMI 硬件类型,可以指定一个新的驱动程序选项 node['driver_info']['ipmi_disable_boot_timeout']。 默认值为 True;将其设置为 False 以绕过发送此命令。 有关更多信息,请参阅 story 2004266

11.1.0

序言

Ironic 11.1… 音量旋钮调得更高!

虽然 Pixie Boots 在摇滚乐中摇摆,但 Bare Metal as a Service 团队完成了我们的 Rocky 版本 11.1。 这个新版本包含许多主要功能,我们希望这些功能能够改善所有裸机运营商的生活!

  • Conductor 分组,使节点能够分配给不同 conductor 的组。

  • 部署步骤框架,使部署者能够请求特定的步骤,从而提供更大的灵活性。

  • iloirmc 硬件类型的 BIOS 设置接口。

  • 用于无盘部署的 Ramdisk 部署接口。

  • 重置节点到其默认接口的能力,通过 API 在重置节点的驱动程序时。

新功能

  • 为 ppc64* 硬件添加了对启动分区镜像的支持。 如果在部署到 ppc64* 机器时检测到 PReP 分区,则会将分区指定给 IPA,从而将引导加载程序直接安装到那里。 此功能需要具有 ironic-lib >= 2.14 的 ironic-python-agent ramdisk。

  • snmp 驱动程序配置(通过节点的 driver_info 字段指定)添加了新的可选 snmp_community_readsnmp_community_write 属性。 如果存在,则这些值将分别用于 SNMP 读取和/或写入 PDU。 如果不存在,则将使用 snmp_community 值。

  • iRMC 驱动程序现在可以根据节点在节点检查期间提供的信息自动更新节点。traits 字段中的 CUSTOM_CPU_FPGA 值。

  • 添加了一个 ramdisk 部署接口,用于希望通过网络启动到 ramdisk 的部署,而不是执行到物理介质的完整传统部署。 这可能在科学用例或需要临时裸机机器时很有用。

    ramdisk 部署接口面向高级用户,用户在使用前应注意一些特定的操作注意事项,例如网络访问列表要求和配置驱动程序架构限制以及无法利用配置驱动程序。

  • 添加了一个新的配置选项 [pxe]pxe_config_subdir,以允许运营商定义 /tftpboot/httpboot 内部可用于引导加载程序查找节点配置文件(例如,pxelinux.cfg/grub.cfg)的特定目录。 此选项默认为 pxelinux.cfg,这是 Syslinux pxelinux.0 引导加载程序使用的目录。 如果使用其他引导加载程序(例如 GRUBiPXE),运营商可能希望更改目录名称。

  • Conductor 和节点可以任意分组,以便在 conductor 和节点之间提供基本的亲和力。 Conductor 使用 [conductor]/conductor_group 配置选项来设置其所属的组。 相同的组值可以设置为 API 版本 1.46 中 conductor_group 字段(可在 API 版本 1.46 中使用)中的一个或多个节点,并且这些节点将匹配,以便只有具有给定组的 conductor 才会管理具有相同组的节点。

    组名最多可包含 255 个字符,包含 a-z0-9_-.。 组名不区分大小写。 默认组是空字符串 ("")。

    “节点列表”API 端点 (GET /v1/nodes) 也可以在 API 版本 1.46 中按 conductor 组进行筛选。

  • 部署步骤框架 已经到位。 所有入树驱动程序(DeployInterfaces)都有一个(大的)部署步骤;conductor 在部署节点时执行此步骤。

    从 Bare Metal REST API 1.44 版本开始,正在执行的当前部署步骤(如果有)可在节点的以下查询的响应中,节点的 deploy_step 字段中找到:

    • GET /v1/nodes/<节点 标识符>

    • GET /v1/nodes/detail

    • GET /v1/nodes?fields=deploy_step,...

  • 实现了 bios 接口,用于 ilo 硬件类型。添加了 ilo 硬件类型支持的 bios 接口列表。添加了手动清理步骤 apply_configurationfactory_reset,支持使用 ilo 硬件类型管理 iLO 服务器的 BIOS 设置。

  • ipmi 硬件类型添加了新的 noop 接口的支持。此接口针对无法通过 IPMI 协议正确更改启动模式的硬件。使用它需要预先配置节点上的启动顺序为尝试 PXE,然后回退到本地启动。

  • irmc 硬件类型添加了新的 bios 接口。这为 iRMC 驱动程序提供了带外 BIOS 配置解决方案,使该功能可通过手动清理获得。

  • 为 iRMC 驱动程序添加了带外 RAID 配置解决方案,使该功能可通过手动清理获得。有关更多详细信息,请参阅 iRMC 硬件类型文档

  • 从 API 版本 1.45 开始,对 /v1/nodes/<NODE> 的 PATCH 请求接受新的查询参数 reset_interfaces。每当更新 driver 字段时,都可以提供它。如果设置为“true”,则所有硬件接口都将重置为默认值,但同一请求中更新的接口除外。

升级说明

  • 通常使用 UEFI 进行 PXE 启动的、使用 grub 的操作员,应更改为其部署的主 PXE 配置文件,该文件用于通过 grub 进行节点 PXE 启动。Ironic 11.1 现在为通过 grub 进行网络启动,写入基于 MAC 地址和 IP 地址的 PXE 配置链接。应将 grub 变量从 $net_default_ip 更改为 $net_default_mac。IP 地址支持已被弃用,将在 Stein 版本中删除。

  • pysnmp 的最低要求版本已提高到 4.3。此 pysnmp 版本引入了更简单、更快、更实用的高级 SNMP API, ironic snmp 驱动程序已迁移到该 API。

  • 现在 osprofiler 库的最低要求版本为 1.5.0。这是一个新的依赖项,自从 Pike 版本引入此依赖项以来, ironic 无法使用 1.4.0 版本启动。

  • 配置选项 swift/endpoint_type 已被删除。python-swiftclient 3.2.0 (Ocata) 及更高版本删除了 radosgw 使用的本机 URL 类型支持。由于使用 swift/endpoint_type 值为 radosgw 无论如何都会失败,因此已将其删除。部署者现在必须使用 rgw swift account in url = True 配置 ceph。在升级到此版本之前必须设置此选项。

  • 现在 snmp 硬件类型使用 noop 管理接口,而不是之前使用的 fake。为了向后兼容,保留了对 fake 的支持。

弃用说明

  • 所有驱动程序必须使用 部署步骤 实现其部署过程。在 Stein 版本之前,没有部署步骤的树外驱动程序将继续受到支持。有关更多详细信息,请参阅 story 1753128

  • xclarity 硬件类型以及支持的驱动程序接口已被弃用,并计划在 Stein 开发周期中从 ironic 中删除。这是由于缺乏操作性的第三方测试,以帮助确保对 Lenovo XClarity 的支持是可用的。

    xclarity 硬件类型是在 Queens 开发周期结束时引入的。在实施第三方 CI 时,联想团队遇到了一些意想不到的延误。联想正在继续致力于第三方 CI,并在建立和验证功能性的第三方 CI 后,将撤销此弃用。

  • 已弃用 ironic 链接 PXE 启动配置文件通过分配的接口 IP 地址的方式。只有在 [pxe]ipxe_enabled 设置为 false 且节点正在使用 UEFI 部署时,才适用此选项。

  • 现在不建议使用 fake 管理接口与 snmp 硬件类型一起使用,请使用 noop 代替。

错误修复

  • 更好地处理操作员尝试从早于 Pike 的版本直接升级到晚于 Pike 的版本,跳过一个或多个版本的情况(即“跳跃版本升级”)。操作员不会崩溃,而是会被告知从早于上一个版本的版本升级不受支持(跳跃版本升级),并且(从 Pike 开始)所有数据库迁移都需要使用上一个版本执行,以进行快速升级。[Bug 2002558]

  • 通过启用将 PXE 配置文件链接写入节点的 MAC 地址以及接口 IP 地址,修复了对基于 grub 的 UEFI PXE 启动的支持。如果将 [dhcp]dhcp_provider 选项设置为 none,则仅会创建基于 MAC 的链接。

  • 修复了一个问题,该问题导致集成 Dell Remote Access Controller (iDRAC) management 硬件接口实现,idrac,在 Unified Extensible Firmware Interface (UEFI) 启动模式下启动节点失败。 该接口受 idrac 硬件类型支持。 该问题已针对 Dell EMC PowerEdge 第 13 代和第 14 代服务器解决。 它未针对 PowerEdge 第 12 代及更早服务器解决。 有关更多信息,请参阅 story 1656841

  • 如果由于某种原因(例如,在执行任务时 conductor 崩溃),节点卡在 deployingcleaningverifyinginspectingadoptingrescuingunrescuing 等状态之一,则下次 conductor 启动时,它将被移动到适当的失败状态。

  • 更改 iPXE 行为,以总共重试 10 次,并在每次重试之间增加退避时间,以避免对 iPXE HTTP 服务器造成拒绝服务。如果重试失败,将在控制台上显示警告 30 秒后,节点将被关闭。有关更多信息,请参阅 story

  • 如果带内清理步骤在执行完成节点重启的带外清理步骤之后,清理操作可能会失败。这是由于竞态条件造成的,在 Ironic Python Agent (IPA) 准备好执行清理步骤之前,清理操作恢复了。此问题已修复。有关更多信息,请参阅 bug 2002731

其他说明

  • 已删除弃用的配置选项 [ipmi]retry_timeout,请使用 [ipmi]command_retry_timeout 代替。