Train 系列发布说明

19.0.4

错误修复

  • Bug 1855708:PY3 中重新加载失败

  • Bug 1887994:管理文档中的混合消息,以在 httpd 下部署

  • Bug 1888349:glance-cache-manage 工具已损坏

  • Bug 1886374:改进多存储的延迟加载机制

19.0.2

升级说明

  • 在 Train 版本中,配置选项 show_multiple_locations 仍然被标记为已弃用,但并未移除。我们继续建议不要将镜像位置暴露给最终用户。有关更多信息,请参阅 OSSN-0065

    该计划仍然是消除此选项并仅使用策略来控制镜像位置访问。然而,这需要进行重大的重构,如 草案策略重构规范 中所述。此外,由于没有人能够投入时间,因此目前还没有此更改的预计时间表。(Glance 团队乐于与任何对此感兴趣并愿意参与开发的人员进一步讨论。)

    请关注 Glance 发布说明和 glance-specs 仓库,以了解有关此问题的最新进展。

19.0.0

序言

Train 版本包含 Glance 开发优先级中的多个重要里程碑。

  • 多存储功能稳定化;从 Train 开始,多存储被认为是 glance、glance_store 和 python-glanceclient 中的稳定功能。社区鼓励大家尽早采用这种配置后端存储的新方式,因为旧的配置选项已被弃用以简化底层代码维护的负担。用户可以在导入过程中选择希望存储镜像的存储。

  • glance-cache-manage 和预缓存已恢复;在开发周期中,我们修复了导致无法进行缓存管理的问题。预取器代码被移动到 glance-api 中,以打破对 glance-registry 的依赖,并且不再通过 cron 运行。

  • 文档示例已从 openstack 命令更改回 glance。这应该有助于避免 glance 社区维护与示例中引用不同的客户端的问题。‘python-glanceclient’ 是并且将是 Images API 的参考实现,团队也将把所有 API 更改实现到相关周期的客户端版本中。

  • 此版本还将 Images API CURRENT 版本提升到 2.9

新特性

  • Train 版本包含对缓存预取工作方式的更改。由于预取器是仍然依赖 glance-registry 的最后一个组件,因此通过将预取器实现为 glance-api 的一部分来消除了此要求。基于 crontab 的预取器不再可用,新的预取将通过 glance-api.conf 进行设置。

  • 已将标识符 compressed 添加到受支持的容器格式列表中。其意图是,此格式标识符将用于任何压缩文件归档格式(例如 gzip 或 rar),这些格式未包含在现有的容器格式标识符中。

    与所有容器格式一样,Glance 不会验证镜像的数据有效负载是否实际上采用该格式。此外,您不应期望其他 OpenStack 服务能够处理任意压缩文件格式。有关详细信息,请参阅将使用您的镜像的任何服务的文档。

  • 为了支持块存储服务 (Cinder) 在卷为加密卷类型时上传卷到镜像的操作,当此类镜像被删除时,Glance 现在将联系 OpenStack 密钥管理服务 (Barbican) 并请求其删除关联的加密密钥。为此,必须在镜像上设置两个额外的属性:cinder_encryption_key_id(其值为 OpenStack 密钥管理服务中用于加密卷的加密密钥的标识符)和 cinder_encryption_key_deletion_policy(其值可以是 on_image_deletiondo_not_delete)。请注意以下几点

    • 由块存储服务创建的镜像将自动设置这些属性,并将删除策略设置为 on_image_deletion

    • 块存储服务始终在将卷作为镜像上传时在 Barbican 中创建一个新的密钥,在密钥管理服务中存储的每个密钥与 Glance 中存储的加密卷的镜像之间保持 1:1 的关系。因此,在镜像被删除时删除 Barbican 密钥不会导致数据丢失只要该密钥不用于任何其他目的

      • 块存储服务不会将与镜像关联的密钥用于任何其他目的。

      • 如果您选择将 cinder_encryption_key_id 的值标识的 Barbican 密钥用于任何其他目的,您将面临数据丢失的风险。

      • 不建议手动使用 cinder_encryption_key_* 属性。

    • 如果镜像属性 cinder_encryption_key_deletion_policy 缺失或具有任何其他值,Glance 将尝试删除 cinder_encryption_key_id 的值标识的密钥。

  • glance-scrubber 工具现在支持多存储。如果您正在使用多存储功能,则必须在 glance-scrubber.conf 文件中定义 os_glance_tasks_storeos_glance_staging_store 配置选项。有关更多信息,请参阅 Glance 管理指南“多存储支持”章节的“保留存储”部分。

  • 现在,Glance 可以使用通过 glance_store 库访问的后端存储来临时存储先前需要访问本地文件系统的数据。请注意以下几点

    • 在本版本中,使用存储(而不是直接配置路径)是可选的,但它将在 ‘U’ 版本中成为强制性的。

    • 在本版本中,使用的存储必须是文件系统存储类型。我们的目标是在未来的版本中,允许操作员配置来自其他选定驱动程序的存储类型。但是,在 Train 中,这些存储必须是文件系统存储。

    有关更多信息,请参阅本文档的“升级说明”和 Glance 管理指南“多存储支持”章节。

已知问题

  • 在本版本中引入 compressed 容器格式,这为我们提供了一个提醒,即 Glance 不会验证任何容器格式的镜像属性 container_format 是否准确。确保镜像数据有效负载格式是镜像消费者的责任,并在镜像描述不正确的情况下采取适当的措施。

  • 在本版本中引入的 compressed 容器格式标识符的意图是,它将用于任何压缩文件归档格式(例如 gzip 或 rar),这些格式未包含在现有的容器格式标识符中。

    压缩文件的确切格式未指定。由消费服务分析数据有效负载并确定压缩格式。特定的 OpenStack 服务可能仅支持特定的格式。因此,即使服务支持 compressed 容器格式,这并不意味着该服务可以处理任意压缩格式。有关详细信息,请参阅将使用您的镜像的服务的文档。

  • 从本版本开始,唯一使用 compressed 容器格式的服务是 Cinder(块存储服务),当 Cinder 配置为使用压缩加速器将卷镜像上传到 Glance 时。虽然您可能期望 Cinder 能够使用 Cinder 创建的任何 compressed 容器格式的镜像,但您不应期望 Cinder 能够成功使用它未自行创建的 compressed 格式的镜像。有关更多信息,请参阅 Cinder 文档

  • 在使用多个存储功能时,必须为 filesystem_store_datadir 选项配置不同的值。目前代码中未强制执行此操作。

升级说明

  • 位置元数据键 backend 已更改为 store。任何可能正在使用旧键 backend 的环境将在访问时通过延迟更新来更改键名称。

  • 已将标识符 compressed 添加到受支持的容器格式列表中。其意图是,此格式标识符将用于任何压缩文件归档格式(例如 gzip 或 rar),这些格式未包含在现有的容器格式标识符中。

    添加 compressed 容器格式是为了支持 Cinder(块存储服务)功能 利用压缩加速器。您可能期望 Cinder 能够使用 Cinder 创建的任何 compressed 容器格式的镜像。但是,您不应期望其他服务能够使用这样的镜像。此外,您不应期望 Cinder 能够成功使用它未自行创建的 compressed 格式的镜像。

  • 属性 cinder_encryption_key_idcinder_encryption_key_deletion_policy 已添加到通用镜像属性中,并出现在镜像模式中。有关这些镜像属性的信息,请参阅这些说明的“新功能”部分。

  • 如果您正在使用多存储功能,则必须在 glance-scrubber.conf 文件中定义 os_glance_tasks_storeos_glance_staging_store 配置选项。有关更多信息,请参阅 Glance 管理指南“多存储支持”章节的“保留存储”部分。

  • 配置选项 work_dirnode_staging_uri 已被弃用,将在 ‘U’ 开发周期的早期被移除。

    这些本地目录由 Glance 用于互操作镜像导入过程以及任务引擎期间数据的临时存储。此版本引入了使用通过 glance_store 库访问的后端文件系统存储来临时存储数据的能力。请注意以下几点

    • 如果您现在希望使用后端存储功能,请参阅 Glance 管理指南“多存储支持”章节的“保留存储”部分以获取配置信息。

    • 如果您使用 Glance 多存储功能,该功能在 Rocky 中以实验方式引入,现在在 Train 版本中完全支持,那么您必须从现在开始使用支持存储,而不是 work_dirnode_staging_uri 来进行 Glance 的临时存储。有关更多信息,请参阅 Glance 管理指南“多存储支持”章节的“保留存储”部分。

  • 存储名称前缀 os_glance_* 由 Glance 为内部存储保留。如果将具有此前缀的存储包含在 enabled_backends 选项中,Glance 将拒绝启动。

    在本版本中引入的内部存储标识符是 os_glance_tasks_storeos_glance_staging_store

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

    • OS::Nova::Flavor 命名空间中添加了布尔值 hw:mem_encryption,在 OS::Glance::Image 命名空间中添加了布尔值 hw_mem_encryption

    • OS::Compute::LibvirtImage 命名空间中添加了布尔值 hw_pmu,以及枚举 hw_cdrom_bushw_firmware_type

    • OS:::Compute::Hypervisor 命名空间中添加了枚举 powervm

    • OS::Compute::LibvirtImage 命名空间中添加了枚举 hw_video_modelvirtiogopnone

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

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

错误修复

  • Bug 1836140:如果未启用“file”存储,则镜像删除返回 500

    • Bug 1808868:添加与 SEV 相关的额外规范和镜像属性

    • Bug 1802587:使位置 API 与多存储兼容