Spec Lite: 延迟更新存储信息¶
- 项目:
glance
- 问题:
在 Rocky 中,增加了多后端支持作为实验性功能。location 对象将存储 ‘store_id’(存储名称)作为元数据属性,这有助于识别镜像位于哪个存储中。Glance API 服务在全局映射中拥有有关所有已配置存储的信息。
在启用/升级 glance-api 以使用多存储功能后,现有的镜像将不会关联任何存储信息。因此,如果请求下载现有镜像,它将在所有已配置的存储中搜索该镜像,这将导致性能开销。
所有已配置的存储都存储在内存中,如果操作员在配置文件中更改存储名称并重启 glance-api 服务,则无法将新的名称更新到与存储信息关联的现有镜像中。
- 解决方案:
为获取镜像的调用添加一个装饰器,该装饰器将从镜像中检索 location 对象,然后从 location URL 中获取存储信息,该信息存储在 location 映射中。一旦 location url 与全局映射中的 url 匹配,它将检查 location 元数据是否已关联现有存储,然后将存储名称添加到/更新到 location 元数据中。
如果用户/操作员使用 GET 调用来显示单个镜像或列出所有镜像,则特定的装饰器将根据请求更新单个或所有可用镜像的存储信息。在列表调用中,由于它将重新访问列表中的每个镜像的 location 调用,因此性能会略有影响。
- 替代方案:
无,继续使用当前机制。
影响: DocImpact
- 时间线:
包含在 Train 版本中。
- 链接:
无
- 负责人:
abhishekk