网络后端磁盘的卷快照

https://blueprints.launchpad.net/nova/+spec/libvirt-volume-snap-network-disk

Nova 当前支持通过 libvirt 的快照机制创建和删除基于文件的 Cinder 卷的快照。这项工作将该功能扩展到以类似的方式创建和删除网络后端磁盘的快照。

这使得使用 libgfapi 等机制,通过 qemu 网络后端卷的部署能够获得更完整的 Cinder 卷功能。

问题描述

Nova 不支持为附加到实例的网络后端 Cinder 卷通过 libvirt 创建快照。当前,尝试对以这种方式配置的 Cinder 卷进行快照会导致快照操作失败。

这对于使用 qemu 网络后端存储作为 Cinder 卷的部署者来说非常重要。(通常是为了性能原因。)

提议的变更

Nova 需要能够构造一个 <domainsnapshot> XML 实体,其中包含通过 libvirt 快照网络后端磁盘所需的字段。

Nova 同样需要能够将参数传递给 libvirt 的 blockCommit 和 blockRebase 操作,以删除网络后端磁盘的快照。libvirt 正在添加对 blockjob API 的不同风格参数的支持,以支持这一点,该参数允许通过索引而不是路径名引用磁盘快照更改中的现有项目。

备选方案

对于希望使用 Nova 辅助的 Cinder 后端存储快照的部署者来说,没有替代方案。Nova 必须能够与 libvirt 交互才能启用此功能。

数据模型影响

REST API 影响

这项工作被 os-assisted-volume-snapshots 扩展 API 使用,没有 API 级别的更改。

安全影响

通知影响

其他最终用户影响

最终用户影响是,当 Nova 配置为对 GlusterFS Cinder 驱动程序使用 libgfapi 时,Cinder 卷快照现在可以工作了。(qemu_allowed_storage_drivers=[‘gluster’])

性能影响

合并 GlusterFS 卷快照可能更有效,特别是对于同时删除不同卷的快照,因为这项工作使用 qemu 直接存储访问(通过 libgfapi),而不是通过 FUSE 挂载的文件系统。

Nova 本身没有直接的性能影响。

其他部署者影响

此更改与使用 Cinder GlusterFS 驱动程序并且 Nova 配置为 qemu_allowed_storage_drivers=[‘gluster’] 时相关。

开发人员影响

实现

负责人

主要负责人

eharney

工作项

  • 支持创建网络后端磁盘的卷快照

  • 支持删除网络后端磁盘的卷快照 - 从 libvirt 的域 XML 中解析备份链信息 - 将新风格的参数传递给 blockCommit 和 blockRebase

依赖项

  • 此功能依赖于 libvirt 的更改,目前目标是 libvirt 1.2.6。- 不使用 libvirt 版本来检测 libvirt 功能。

  • libvirt 的更改还需要 qemu 中的修复(目标是 2.1)。

  • 目前仅与 GlusterFS Cinder 部署相关。

测试

应该通过 Tempest 卷快照测试用例进行测试。由于它依赖于拥有 GlusterFS 部署,因此目前未在 gate 中进行测试。

当 Cinder 中启用 GlusterFS 驱动程序的第三方 CI 时,它应该涵盖这一点。

文档影响

参考资料