Ceph 块设备¶
- 日期:
2015-07-23 12:00
- 标签:
存储, ceph
本规范旨在为在 openstack-ansible 安装中运行的 cinder、glance 和 nova 添加配置,使其能够使用现有的 Ceph 集群来创建卷、镜像和实例,并使用 Ceph 块设备。
问题描述¶
此实现应满足以下用户需求
Cinder 卷创建:作为用户,我希望能够将块存储卷从 Ceph 存储集群分配给单个虚拟机。
Cinder 从卷启动:作为用户,我希望能够创建一个从 Ceph 存储集群上托管的块存储设备启动的虚拟机。
Cinder 快照:作为用户,我希望能够创建一个或多个 Cinder 卷的快照。
Cinder 备份:作为用户,我希望能够将 Ceph 存储集群用作 cinder 备份的目标。
Glance 存储:作为用户,我希望能够将 Ceph 存储集群用作 glance 的后端。
Nova 临时存储:作为用户,我希望能够从 Ceph 存储集群分配 nova 实例存储。
实时迁移支持:作为管理员,我希望能够实时迁移依赖于(即从/挂载)Ceph 存储集群上托管的块存储设备的虚拟机。这包括从卷启动和 Nova 临时存储。
提议的变更¶
创建 ceph_client 角色来处理 Ceph 包的安装和 ceph.conf 文件的配置。
更新 os_cinder 角色,通过将 volume_driver 设置为 cinder.volume.drivers.rbd.RBDDriver,有条件地允许 cinder-volume 在 Ceph 中创建卷。
更新 os_nova 角色,有条件地允许 nova 从存储在 Ceph 中的 cinder 卷启动。
更新 os_cinder 角色,通过将 backup_driver 设置为 cinder.backup.drivers.ceph,有条件地允许 cinder-backup 将备份存储在 Ceph 中。
更新 os_glance 角色,通过将 default_store 设置为 rbd,有条件地允许 glance 将镜像存储在 Ceph 中。
更新 os_nova 角色,通过将 libvirt_images_type 设置为 rbd,有条件地允许 nova 直接启动到 Ceph 中的虚拟机。
备选方案¶
无
Playbook 影响¶
请参阅上面的“拟议变更”。
升级影响¶
引入这些更改后,不应更改任何默认配置,因此不应影响现有安装的升级。
安全影响¶
OpenStack 服务需要用户和密钥才能与 Ceph 交互。此实现应鼓励为每个 OpenStack 服务使用单独的 Ceph 用户,并确保只能由预期用户读取配置文件和密钥。
性能影响¶
启用此功能可能会导致 OpenStack 安装中的性能提升或下降。这在很大程度上取决于所连接 Ceph 集群的硬件和软件配置。
最终用户影响¶
使用 Ceph 块设备可能会引入对最终用户可见的新功能,例如从一个超visor 迁移到另一个超visor 的实例的能力。此外,如上所述,根据不同的因素,可能会出现可见的性能提升或下降。
部署者影响¶
部署者需要显式更新其清单并设置 Ansible 变量覆盖,以 a) 启用此功能,以及 b) 正确与现有的 Ceph 集群交互。
开发人员影响¶
无
依赖项¶
目前尚无已知问题
实现¶
负责人¶
- 主要负责人
https://launchpad.net/~mattt416 (mattt)
- 其他贡献者
https://launchpad.net/~git-harry (git-harry) https://launchpad.net/~david-wilde-rackspace (d34dh0r53)
工作项¶
创建 ceph_client 角色。
更新 os_cinder 角色,以有条件地允许 cinder-volume 在 Ceph 中创建卷。
更新 os_nova 角色,以有条件地允许 nova 附加存储在 Ceph 中的 cinder 卷。
更新 os_cinder 角色,以有条件地允许 cinder-backup 将备份存储在 Ceph 中。
更新 os_glance 角色,以有条件地允许 glance 将镜像存储在 Ceph 中。
更新 os_nova 角色,以有条件地允许 nova 直接启动到 Ceph 中虚拟机。
测试¶
由于此处未更改任何默认配置,因此不会对 openstack-ansible 进行任何与 gate 相关的调整。此外,在 all-in-one (AIO) gate 实例中可以运行的内容受到严格限制。
文档影响¶
需要更新文档以包括
如何为 cinder、glance 和 nova 服务启用 Ceph 块设备以及每个新引入的 Ansible 变量的作用。
为了允许 OpenStack 安装与 Ceph 集群交互,需要在现有的 Ceph 集群上执行哪些其他步骤。
参考资料¶
无