用于清理和修剪缓存的 API¶
https://blueprints.launchpad.net/glance/+spec/clean-prune-cache-api
用于清理和修剪镜像缓存目录的新 API 调用。
问题描述¶
目前,如果部署中启用了镜像缓存,则部署者需要将 glance-cache-cleaner 和 glance-cache-pruner 配置为 cron 任务,以便定期清理无效的镜像缓存文件,并在缓存目录过大时自动删除旧的缓存文件。这给部署者带来了配置和有效运行 cron 任务的负担。
提议的变更¶
我们提议在本周期内弃用 glance-cache-cleaner、glance-cache-pruner 和 glance-cache-prefetcher 命令行工具,并在 G 开发周期中移除它们。正如我们已经有一个 API 调用 /v2/cache/{image_id} 用于缓存镜像一样,我们将添加两个新的 API POST 调用 /v2/cache/clean 和 /v2/cache/prune,它们将代替我们完成修剪和清理工作。这两个 API 将仅供管理员使用,非管理员用户将被禁止使用。
我们将引入两个新的策略 cache_clean 和 cache_prune,默认情况下由 admin 使用,以限制对这些新 API 的使用。
备选方案¶
与其添加新的 API 调用,不如将现有代码移动到 glance API 服务下作为定期调用来重用。这将需要引入两个额外的配置参数来引入定期调用的间隔。
数据模型影响¶
无
REST API 影响¶
本规范提出以下新的 API
清理无效的缓存镜像
[新 API] 清理无效的缓存镜像
清理无效的缓存镜像
POST /v2/cache/clean
{}
响应代码:* 200 – 授权并通过请求。 * 403 – 权限被拒绝
修剪镜像缓存目录
[新 API] 修剪镜像缓存目录
修剪镜像缓存目录
POST /v2/cache/prune
{}
* JSON response body
.. code-block:: json
{
"total_files_pruned": <total_files_pruned>,
"total_bytes_pruned": <total_bytes_pruned>
}
响应代码:* 200 – 授权并通过请求。 * 403 – 权限被拒绝
安全影响¶
如“提议的更改”部分所述,将实施新的策略以避免安全漏洞。
通知影响¶
无
其他最终用户影响¶
glance 客户端和 openstack 客户端应进行更新,并添加新的命令
glance cache-clean
glance cache-prune
openstack cache clean
openstack cache-prune
性能影响¶
无
其他部署者影响¶
部署者需要在环境中停止使用 glance-cache-cleaner、glance-cache-pruner 和 glance-cache-prefetcher 命令行工具。
开发人员影响¶
无
实现¶
负责人¶
- 主要负责人
abhishekk
工作项¶
引入新的 API 调用
实施新的策略规则
文档
测试
依赖项¶
无
测试¶
新的 tempest 测试以覆盖此场景
文档影响¶
需要更新 API 文档
还需要使用新命令更新缓存文档