Rocky 系列发布说明

17.0.1

已知问题

  • 在此版本中,show_multiple_locations 配置选项仍然被弃用,但尚未移除。(此前计划在 Pike 版本中移除。)请关注 Glance 发布说明和 glance-specs 仓库,以了解此问题的最新进展。

    计划是移除此选项,并仅使用策略来控制镜像位置的访问。然而,这需要进行大量的重构。请参阅 策略重构规范草案 以获取更多信息。

    目前尚无此更改的预计时间表,因为还没有人能够投入时间进行开发。Glance 团队乐于与任何对此感兴趣并愿意参与开发的人员进行更深入的讨论。

    解决方法是继续在专用的“内部”Glance 节点中使用 show_multiple_locations 选项,该节点不可供最终用户访问。我们仍然建议不要将镜像位置暴露给最终用户。请参阅 OSSN-0065 以获取更多信息。

17.0.0

序言

移除了已弃用的 ‘enable_image_import’ 配置选项。从本版本开始,镜像导入将始终启用,如设计的那样。

此版本的 OpenStack Glance 引入了 2 个新的 API 版本。Images API v2.7 添加了对隐藏镜像和多哈希功能的支持和修改,这些功能是在 Rocky 周期中引入的。版本 2.8 作为可选的 EXPERIMENTAL API 包含在内,用于测试和准备支持多个后端。

Rocky 开发周期标志着 Glance 工作中长期等待的里程碑。已弃用多年的 Images API v1 终于被移除,并且在 Glance 17.0.0 版本及更高版本中不再可用。

本版本处理了一些安全方面的问题。多哈希提供安全的哈希算法来处理镜像数据,并具有面向未来的选项,从而结束了在验证镜像负载时依赖 MD5 校验和的做法。OSSN-0075 缓解措施降低了在需要数据库清除的极少数情况下 ID 可重用性的风险。

当启用延迟删除时,如果 scruber 在数据删除间隔之前停止,操作员可以恢复镜像记录。虽然在这种情况下镜像元数据仍然无法保留,但这提供了一种在意外删除时保存镜像数据的方法。

在使用可互操作镜像导入工作流时,云操作员现在可以启用自动镜像转换到所需的格式。当插件启用时,最终用户对其操作没有任何输入,但他们的本地校验和可能与 Glance 中记录的校验和不匹配。

新特性

  • 此版本提供了 Glance 规范 多存储后端支持 的 EXPERIMENTAL 实现,该规范允许操作员配置多个后端存储,以便最终用户可以将镜像数据定向到特定的后端存储。有关更多信息,请参阅 Glance 管理指南中的 多存储支持

    此实验性功能作为 EXPERIMENTAL Image Service API 版本 2.8 可选地暴露出来。目前不建议在生产系统中使用它。我们鼓励大家将此功能用于测试目的,并报告任何问题,以便在 Stein 版本中使其稳定并完全支持。

  • 可互操作镜像导入的自动镜像转换插件。在本版本中,操作员可以指定目标镜像格式,并通过 Images API v2.6 中引入的镜像导入方法创建的所有镜像都将自动转换为该格式。该功能在底层使用 qemu-img,这限制了用户可以上传的源镜像格式。如果启用此插件,任何无法通过转换的镜像创建都将失败。

  • 此版本实现了 Glance 规范 安全哈希算法支持(也称为“多哈希”)。此功能使用自描述的安全哈希来补充当前的 ‘checksum’ 镜像属性。自描述包含两个新的镜像属性

    • os_hash_algo - 此属性包含用于生成此镜像上值的安全哈希算法的名称

    • os_hash_value - 这是通过将 os_hash_algo 属性中命名的安全哈希算法应用于镜像数据而计算出的十六进制摘要

    这些是只读镜像属性,用户无法修改。

    使用的安全哈希算法是操作员可配置的。有关更多信息,请参阅 Glance 示例配置文件中 ‘hashing_algorithm’ 的帮助文本。

    默认的安全哈希算法是 SHA-512。它应该适用于大多数应用程序。

    为了向后兼容,保留了旧的 ‘checksum’ 镜像属性,该属性提供镜像数据的 MD5 消息摘要。

  • glance-scrubber 现在支持将镜像的状态从 pending_delete 恢复到 active。用法是 glance-scrubber –restore <image-id>。请确保在恢复镜像之前停止 glance-scrubber 守护程序,以避免镜像数据不一致。

已知问题

  • 作为 安全哈希算法支持(“多哈希”)功能的一部分引入的 os_hash_value 镜像属性限制为 128 个字符。这足以将 512 位作为十六进制数字存储。

  • 本版本中实现的多哈希(安全哈希算法支持)仅对新镜像进行计算。没有提供为现有镜像计算多哈希的机制。因此,用户应该期望看到 os_hash_algoos_hash_value 镜像属性的 JSON ‘null’ 值,这些镜像是在您的站点安装 Rocky 版本之前创建的。

  • Pike 发布说明指出,虽然已添加支持将 Glance 作为由 Web 服务器托管的 WSGI 应用程序运行,但 Glance 团队建议在正常独立配置下运行 Glance,尤其是在生产环境中。

    我们重申了对 Queens 版本的建议。特别是,Glance 任务(对于可互操作镜像导入功能是必需的)在 Glance 在 uWSGI 下运行时不会执行(这是 OpenStack 推荐的运行由 Web 服务器托管的 WSGI 应用程序的方式)。

    除了解决了 Bug 1703856 中解决的分块传输编码问题之外,这还将更难修复。 (此外,据我们所知,Bug 1703856 的修复程序从未经过大规模测试。)简而言之,Glance 任务由 API 服务运行,必须拆分为不同的服务,以便仅 API 可以在 uWSGI 下运行。Glance 项目团队在 Queens 周期内没有足够的测试和开发资源来尝试此操作(甚至讨论这是否是一个好主意)。

    Glance 项目团队致力于 Glance 的稳定性。作为 OpenStack 的一部分,我们致力于 四个开放。如果您认为能够在 uWSGI 下运行 Glance 很重要,请随时参与 Glance 社区,以帮助协调和推动此类工作。(我们温和地提醒您,“参与”包括提供测试和开发资源。)

  • 由于 glance_store 实现中多哈希功能的错误,Glance 17.0.0 无法使用 glance_store 的第一个稳定 Rocky 版本 (0.26.0)。请注意,需要版本 0.26.1+ 的存储库库。尝试将数据上传到后端时,由于缺少所用函数的包装,镜像创建将失败。

升级说明

  • 由于镜像导入将始终启用,因此需要从本版本开始正确配置它。‘enable_image_import’ 选项将被静默忽略。

  • 以下元数据定义已在本版本中修改

    • CIM::ProcessorAllocationSettingData 命名空间中,OS:::Nova::Server 资源类型关联的属性中存在一个拼写错误。它已更正为 scheduler_hints

    您可以使用以下命令升级这些定义:

    glance-manage db load_metadefs [--path <path>] [--merge] [--prefer_new]

  • 请确保使用 glance_store 库的版本 0.26.1 或更高版本。

弃用说明

  • Glance API 配置选项 owner_is_tenant 在此版本中已被弃用,并且可能在 ‘S’ 开发周期的开始时被移除,遵循 OpenStack 标准弃用策略

安全问题

  • glance-manage 工具已更新,以解决 OSSN-0075。有关详细信息,请参阅 Glance 管理指南的 数据库维护 部分。

  • 此版本实现了 Glance 规范 安全哈希算法支持,该规范为镜像-show 响应引入了一个自描述的“多哈希”。此功能使用自描述的安全哈希来补充当前的 ‘checksum’ 镜像属性。默认的哈希算法是 SHA-512,当前被认为安全。如果该算法受到损害,您可以立即开始使用不同的算法(只要它受 Python ‘hashlib’ 库支持并且输出适合 128 个字符),方法是修改 ‘hashing_algorithm’ 配置选项的值并重新启动或向 Glance 发送 SIGHUP 信号。

错误修复

  • 在修复测试和文档之后,解决了以下错误

    • Bug 1695299:支持密码中的 RFC1738 引号字符

    • Bug 1734832:修复镜像上传中的无法访问的 ‘ImageSizeLimitExceeded’ 异常

    • Bug 1765748:为 WebOb 1.8.1 做好准备

其他说明

  • 多存储后端支持 功能以 EXPERIMENTAL Image Service API 版本 2.8 的形式引入

    请记住,由于 Image Service API 版本 2.8 是 EXPERIMENTAL,我们保留根据用户反馈修改这些 API 方面的权利,如果用户反馈表明需要更改。