Ceph 对象网关临时 URL 支持¶
https://bugs.launchpad.net/ironic/+bug/1526395
此特性添加了对 Ceph 对象网关 (RADOS Gateway) 临时 URL 格式的支持。
问题描述¶
Ceph 项目是一个强大的分布式存储系统。它包含一个对象存储,并提供与 OpenStack Swift 兼容的 API。Glance 镜像服务可以通过 RADOS Gateway Swift API 使用 Ceph 存储。Ironic 目前不支持使用 Glance 和 RADOS Gateway 的部署配置。原因是临时 URL 的格式不同。RADOS Gateway 与 Glance 前端临时 URL 的第一部分是“endpoint_url/api_version/container/object_id”,其中
“endpoint_url” 包含方案、主机名、可选端口和强制的“/swift”后缀。
“api_version” 当前为“v1”。
“container” 是 Glance 容器的名称。
“object_id” 是 Glance 对象 ID。
参数“temp_url_sig”和“temp_url_expires”的计算方式与 Swift 类似,因此完整的 URL 如下所示
“https://radosgw.my.host/swift/v1/glance/22aee8e5-cba3-4554-92c4aadde5e38f28? temp_url_sig=e75d1d6facb53d795547b1fc60eca4e8836bd503 &temp_url_expires=1443518434”
“temp_url_sig” 的计算不应在路径中使用“/swift”。
OpenStack Swift 临时 URL 包含额外的 account 参数,即 Glance 用于与 Swift 通信的 account。“swift_account” 参数对于 Ironic 来说是必需的。
注意
不要将 https://docs.ceph.net.cn/docs/master/radosgw/swift/tempurl/ 中的 Python 代码作为参考,因为它至少对于 Firefly 版本来说,无法创建有效的 URL。
提议的变更¶
一个新的配置参数 temp_url_endpoint_type 将被添加到 glance 组。它可以设置为“swift”或“radosgw”,默认值为“swift”。Ironic 中的镜像服务代码将被更改以支持两种端点(参数设置、RADOS Gateway 的强制后缀)。
备选方案¶
无
数据模型影响¶
无
状态机影响¶
无
REST API 影响¶
无
客户端 (CLI) 影响¶
无
RPC API 影响¶
无
驱动程序 API 影响¶
无
Nova 驱动程序影响¶
无
Ramdisk 影响¶
N/A
安全影响¶
无
其他最终用户影响¶
无
可扩展性影响¶
无
性能影响¶
无
其他部署者影响¶
一个新的配置选项
temp_url_endpoint_type将被添加到glance组。部署者应配置 Glance 使用 RADOS Gateway 后端(通过 Swift API)和 Ceph 存储。
开发人员影响¶
无
实现¶
负责人¶
- 主要负责人
yuriyz
工作项¶
实现 Rados GW 支持。
添加单元测试。
依赖项¶
无
测试¶
将添加单元测试。
升级和向后兼容性¶
无
文档影响¶
将记录 Ironic 与 Rados Gateway 作为 Glance 后端的使用方法。