Queens 系列发布说明

16.0.1-11

已知问题

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

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

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

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

16.0.1

已知问题

  • ‘enabled_import_methods’ 是 ListOpt 类型的配置选项。如果只启用了一种方法,格式需要为 [‘method’],这并不明显,因为即使示例中也没有默认值周围的 ‘[’ 和 ‘]’ 边界。

  • 如果创建时签名验证失败,即使镜像进入 ‘killed’ 状态,镜像数据仍会保留在后端。即使用户删除了已杀死镜像的记录,数据仍然存在。

关键问题

  • Image Import API 在 PY35 上的失败已修复。

  • 当 ‘node_staging_uri’ 以 ‘/’ 结尾时,Image Import 方法 ‘web-download’ 失败的问题已修复。

  • Image Import 调用接受所有已实现的方法,而不是已配置的方法的问题已得到纠正。它仅接受配置选项 ‘enabled_import_methods’ 中列出的方法的导入调用

错误修复

  • 此版本在以下错误修复的基础上,还解决了文档和测试问题

    • Bug 1753964:web-download 在默认 node_staging_uri 下失败

    • Bug 1759510:Image Import 在 Python 3.5 下失败

    • Bug 1754634:Image Import 调用不遵守已启用方法

16.0.0

序言

  • Images API v2 的 CURRENT 版本已升级到 2.6。2.6 API 在之前的 (Pike) 版本中作为实验性 API 提供,以引入 可互操作的镜像导入功能 所需的调用。

  • 引入了一种新的可互操作的镜像导入方法,web-download

  • 本版本引入了一个插件框架,用于自定义导入镜像的处理过程,使其在变为活动状态之前,以及一个新插件,用于将镜像元数据属性注入到导入的镜像中。

新特性

  • 引入了一种新的可互操作的镜像导入方法,web-download。此方法允许最终用户从远程 URL 导入镜像。镜像数据从 URL 检索并存储在 Glance 后端。(换句话说,这是一个 从...复制 操作。)

    此功能默认启用,但它是可选的。它是否在您的安装中提供取决于 glance-api.conf 文件中 enabled_import_methods 配置选项的值(当然,如果您没有在您的站点禁用镜像导入)。

  • 添加了一个插件,用于将镜像元数据属性注入到通过可互操作的镜像导入过程创建的非管理员镜像中。

  • 添加了一个新的命令 glance-manage db check,该命令将允许用户检查数据库中升级的状态。

已知问题

  • 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 的一部分,我们致力于 The Four Opens。如果您认为能够在 uWSGI 下运行 Glance 很重要,请随时参与 Glance 社区,以协调和推动此类工作。(我们温和地提醒您,“参与”包括提供测试和开发资源。)

升级说明

  • Glance 提供的 Images API 的 CURRENT 版本被引入为 2.6。它包括在 Pike 版本中作为实验性 API 引入的新 API 调用。

    虽然 2.6 API 是 CURRENT 的,但它提供的可互操作镜像导入功能是否暴露给最终用户由配置选项 enable_image_import 控制。虽然此选项存在于之前的版本中,但它在 Queens 中的效果略有不同。

    • enable_image_import 默认情况下为 True(在 Pike 中为 False)

    • enable_image_importTrue 时,一种新的导入方法 web-download 可用。(在 Pike 中,仅提供 glance-direct。)您可以使用 glance-api.conf 文件中的 enabled_import_methods 选项来配置您提供的导入方法。

    • 如果将 enable_image_import 设置为 False,则对仅在 v2.6 中定义的 URI 的 v2 端点的请求将返回 404(未找到),并在响应主体中包含一条消息,说明“此站点不支持镜像导入”。此外,镜像创建响应将不包含 “OpenStack-image-import-methods” 标头。

    在 Pike 中引入的 enable_image_import 配置选项在 Rocky 中将被删除。

    重构的镜像导入规范 中定义的发现调用在本版本中以缩写形式保留。

    最后,本版本中没有对版本 2.5 API 的任何更改。所有版本 2.5 调用都将有效,无论是否启用新的导入功能。

  • 添加了一个插件,用于将镜像元数据属性注入到通过可互操作的镜像导入过程创建的非管理员镜像中。此插件实现了规范 自动将元数据属性注入到非管理员镜像。有关此插件解决的用例的讨论,请参阅该规范。

    使用该插件需要进行配置,如 镜像属性注入插件 部分的 Glance 管理员指南中所述。

    请注意,该插件仅适用于通过 可互操作的镜像导入过程 导入的镜像。因此,使用 镜像数据上传 调用设置数据的镜像将不会被插件处理,因此不会注入属性。您可以通过限制数据上传调用来强制最终用户使用可互操作的镜像导入过程,该调用由 Glance policy.json 文件中的 upload_image 策略控制。有关更多信息,请参阅文档。

  • 使用 db check

    为了检查数据库升级的当前状态,您可以运行命令 glance-manage db check。这将告知您还有哪些未完成的操作。

    以下是可能的返回代码列表

    • 返回代码 0 表示您当前已更新到最新的迁移脚本版本,并且所有 db 升级已完成。

    • 返回代码 3 表示您的当前数据库版本可用升级,您的第一步是运行 glance-manage db expand

    • 返回代码 4 表示扩展阶段已完成,下一步是运行 glance-manage db migrate

    • 返回代码 5 表示扩展和数据迁移阶段已完成,下一步是运行 glance-manage db contract

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

    • 属性 img_linked_clone 已添加到命名空间 OS::Compute::VMware

    • OS::Compute::VMwareFlavor 命名空间中的 vmware:hw_version 属性添加了值的枚举。

    • OS::Compute::LibvirtImage 命名空间中的 hw_disk_bus 属性的枚举添加了更多值。

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

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

  • API 配置选项 workers 的默认值先前是可用的 CPU 数量。它已更改为 {CPU 数量,8} 的最小值。当然,为该选项设置的任何值都将被遵守。有关详细信息,请参阅 Bug 1748916

  • 为了使可互操作的镜像导入功能正常工作,需要进行一些配置。特别是,必须设置 glance-api.conf 文件中的 node_staging_uri 值。有关更多信息,请参阅 Glance 管理员指南 中的可互操作镜像导入部分。

弃用说明

  • 随着 web-download 导入方法的引入,我们认为 Image Service v2 API 在所有重要方面都达到了已弃用的 v1 API 的功能对等性。对 Image Service API v1 的支持在 Queens 版本中结束。 v1 API 在 Newton 中已弃用,并且将在 Rocky 开发周期开始时从代码库中删除。请相应地进行计划。

安全问题

  • 旨在替代流行的 Image Service API v1 “copy-from” 功能的 web-download 导入方法是可配置的,因此您可以避免 OSSN-0078 中描述的漏洞。有关详细信息,请参阅 Glance 管理员指南 中的可互操作镜像导入部分。

错误修复

  • 以下是此版本中包含的一些错误修复亮点。

    • Bug 1714240:在终止时避免重启子进程

    • Bug 1719252:Metadefs:修复名称长度超过 80 个字符时的 500 错误

    • Bug 1720354:正确地将身份验证请求发送到 oslo.policy

    • Bug 1733813:修复排队镜像上的 image-import 导致的 500 错误

    • Bug 1688189:修复成员创建以处理 Unicode 字符

    • Bug 1737952:修复自定义属性名称大于 255 时的 500 错误

    • Bug 1744824:修复 py27 eventlet 问题 <0.22.0

    • Bug 1748916:Glance 默认 worker 总数对于现代服务器来说过大

    • Bug 1749297:修复使用 postgresql 时的 list-tasks 调用导致的 500 错误

其他说明

  • 先前,‘property’、‘properties’、‘tag’、‘tags’、‘object’ 和 ‘objects’ 元定义架构指定了最大长度为 255 个字符的 ‘name’ 元素。但是,任何尝试添加长度大于 80 个字符的名称都会导致 500 响应。架构已更正为指定 ‘name’ 字段的最大长度为 80 个字符。

  • 已更新 Glance 管理员指南 中的可互操作镜像导入部分。请参阅指南的该部分,了解有关使导入功能正常工作的配置信息。

  • 已修订和更新 Glance 管理员指南 中的数据库管理部分。这包括有关滚动升级和零停机数据库升级的当前实验状态的信息。