支持 Glance 的多存储¶
https://blueprints.launchpad.net/nova/+spec/support-glance-multiple-backend
此蓝图建议支持 Glance 的多个后端。
问题描述¶
在 Train 版本中,Glance 增加了配置多个存储的能力 [1]。 这样,操作员可以配置一个或多个相同或不同类型的存储,并使用其中一个作为默认存储。 如果在上传镜像时未指定存储,则镜像将存储在默认存储中。
对于 Nova 快照或备份,如果未对 Nova 进行任何更改,即使配置了多个存储,快照或备份镜像仍将上传到默认存储。 这不会导致任何问题,除非 Nova 使用 Ceph 作为后端,并且 Glance 也配置了 Ceph 存储,但 Glance 中的默认存储不是 Ceph。 这会影响 Nova 使用 Ceph 后端以更有效的方式上传快照或备份镜像的能力。
用例¶
操作员希望将所有快照或备份镜像上传到 Glance 中的一个特定/专用存储。
即使 Ceph 不是 Glance 中的默认存储,也能使用 Ceph 进行快速快照。
提议的变更¶
如果使用镜像创建实例,则它会将镜像 UUID 作为 ‘image_ref’ 存储。 当请求实例快照或备份时,Nova 应该将 ‘image_ref’ 作为标头 ‘X-OpenStack-Base-Image-Ref’ 传递给 Glance,以便 Glance 识别基本镜像存储在哪个存储中,并使用相同的存储来上传实例快照或实例备份。
如果使用卷创建实例,则快照或备份镜像应上传到 Glance 中配置的默认存储。
备选方案¶
为快照和备份 API 添加一个新的微版本,以支持配置将快照/备份镜像上传到特定存储。 我建议在快照和备份 API 中添加一个新的
--store选项,用户可以在其中指定快照/备份镜像将上传到哪个存储。 如果未指定--store选项,则镜像将上传到默认存储。如果用户选择 Glance 中未配置的 ‘store’,则 Glance 将返回 404 NotFound 错误,并在 ‘snapshot’ 或 ‘backup’ 操作期间,在清理操作期间删除处于 ‘queued’ 状态的镜像。 另一种方法是,在创建 queued 镜像之前,使用 Glance 的 ‘/v2/info/stores’ 发现调用验证最终用户指定的 ‘store’。 如果指定的 ‘store’ 不在发现响应中,则整个操作将跳过,并向最终用户返回 404 响应。
最终用户可以使用 ‘GET $IMAGE_API_URL/v2/info/stores’ 发现调用来识别 Glance 中的可用 ‘stores’。 它将返回 Glance 端配置的存储列表。 发现响应中的 “id” 字段代表配置的存储。 以下是发现 ‘/v2/stores/info’ 响应调用的示例
GET $IMAGE_API_URL/v2/info/stores { "stores": [ { "id":"reliable", "description": "Reliable filesystem store" }, { "id":"fast", "description": "Fast access to rbd store", "default": true }, { "id":"cheap", "description": "Less expensive rbd store" } ] }例如,Glance 配置了两个文件存储 ‘file_1’ 和 ‘file_2’,并且 ‘file_1’ 被设置为默认存储,那么在当前场景下,所有 ‘snapshot’ 或 ‘backup’ 操作的镜像都将始终上传到 Glance 的 ‘file_1’ 存储。
在 ‘glance’ 部分添加一个新的配置选项 ‘store’,以将所有快照/备份镜像上传到指定的/专用存储。 如果未定义此选项,则所有快照/备份镜像将上传到默认存储。 如果操作员不想向最终用户公开将快照镜像上传到特定存储的使用情况,则此解决方案将更有效。
数据模型影响¶
无
REST API 影响¶
无
安全影响¶
无
通知影响¶
无
其他最终用户影响¶
无
性能影响¶
无
其他部署者影响¶
无
开发人员影响¶
无
升级影响¶
无
实现¶
负责人¶
- 主要负责人
abhishek-kekane
功能联络人¶
- 功能联络人
Balazs Gibizer
工作项¶
更改 nova 中的 glanceclient,以便在上传调用中传递 ‘X-OpenStack-Base-Image-Ref’ 标头。
添加相关测试
依赖项¶
无
测试¶
添加相关单元测试
添加相关功能测试
添加 tempest 测试
文档影响¶
无
参考资料¶
历史¶
发布名称 |
描述 |
|---|---|
Ussuri |
引入 |