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 创建一个新项目