Cinder Swift 备份驱动¶
可以使用 Swift API 用于 Cinder 备份目的。在其中一种配置中,Swift API 提供者通过非 Juju 方式部署。本规范旨在专门解决此用例。
问题描述¶
Cinder 支持通过 Swift API 备份卷。为了使用它,需要一个 URL 以及身份验证详细信息。
以下方法支持用于对 Swift 端点进行身份验证
v2 身份验证 (URL, 用户名, 密码, tenant);
v3 身份验证 (URL, 用户名, 密码, 项目域, 项目, 用户域, 用户名, 密码);
备份到 Swift 的功能支持撰写时所有受支持的 OpenStack 版本。它是在 2013.1 中添加的
应将备份配置添加到 cinder.conf,并可以从 cinder-backup 类似的 charm 传播到 cinder charm。扩展现有的 cinder-backup charm 不利,因为它特定于 Ceph。
Swift 后端的配置选项 在此处
提议的变更¶
在反应式框架中实现一个新的从属 charm。此 charm 将与 Cinder 部署一起部署。这将是 Cinder 的从属 charm,它安装 cinder-backup 并配置 Cinder 使用 Swift 作为卷备份的后端。
配置 Swift 后端的配置选项。需要在 charm 中建模以下配置:
backup_swift_url
backup_swift_auth_url
backup_swift_user
backup_swift_key
backup_swift_auth_version
backup_swift_tenant
backup_swift_user_domain
backup_swift_project_domain
backup_swift_project
backup_swift_container
backup_swift_object_size
backup_swift_block_size
backup_swift_ca_cert_file
在反应式框架中实现一个新的 cinder-backup 接口,用于发送 cinder-backup 外部后端配置。
备选方案¶
扩展 cinder-backup 以支持 Swift 选项(已放弃,因为它已经是 Ceph 特定的);
通过创建代理 charm 来扩展 cinder-backup 以支持未通过 charm 部署的集群(已放弃,因为 cinder-backup 是 Ceph 特定的,并且代理 charm 会增加额外的复杂性)。
实现¶
负责人¶
- 主要负责人
yoshikadokawa alitvinov
Gerrit Topic¶
对于与此规范相关的所有补丁,请使用 Gerrit 主题“cinder-backend-swift”。
git-review -t cinder-backend-swift
工作项¶
实现一个新的反应式从属 charm,cinder-backup-swift
实现一个新的反应式 charm 接口,cinder-backup
编写单元测试;
使用 zaza 测试框架编写功能测试(功能测试应包括通过 swift-proxy 和 swift-storage charm 部署 Swift,并使用用于从 cinder-backend-swift charm 连接到它的配置选项)。
仓库¶
以下存储库中的现有经典风格 charm
openstack/charm-cinder-backup-swift
将被新的反应式 charm 替换。
新的 git 存储库
openstack/charm-interface-cinder-backup
文档¶
该 charm 应包含目标 Swift 集群的文档化选项和身份验证方法。
安全性¶
Swift 端点可能已终止 TLS,因此,需要一个提供 CA 证书的选项。
测试¶
单元测试;
功能测试(如上所述)。
依赖项¶
此 charm 将支持 OpenStack Queens 和 Ubuntu 18.04 Bionic 作为其基线
需要根据 OpenStack 项目 Creator’s Guide 创建一个新项目