限制卷复制带宽¶
包含您的 Launchpad 蓝图的 URL
https://blueprints.launchpad.net/cinder/+spec/limit-volume-copy-bandwidth
本规范建议添加一个新的配置项来限制卷复制的带宽,以减轻在以下过程中对其他实例性能的干扰:
从镜像创建新卷
备份
卷删除(当选择使用 dd if=/dev/zero 等命令擦除时)
问题描述¶
目前,卷复制操作会大量消耗磁盘 I/O 带宽,并可能降低其他客户机的速度。
在某些情况下已经实现了“ionice”选项,但并非总是可用。例如,当实例直接访问存储,且不经过 cinder 控制节点的 I/O 调度器时,ionice 无法控制 I/O 优先级,实例访问可能会变慢。
用例¶
提议的变更¶
将添加一个新的名为 ‘volume_copy_bps_limit’ 的配置项,用于确定卷复制消耗的最大带宽(字节/秒)。
当 CONF.volume_copy_bps_limit 为零(默认值)时,不应用任何限制,并且不创建 cgroup。
否则,将对卷复制应用带宽限制。例如,如果卷复制是通过 ‘dd’ 命令完成的,可以通过将 ‘dd’ 放入 blkio cgroup 进行限制来实现。
备选方案¶
当卷复制命令具有 I/O 限制选项时,应优先使用这些选项。将整个 cinder-volume 进程放入 blkio cgroups 也可以作为解决方案,但需要提供一种设置新卷创建时添加的块设备速率限制的方法。
数据模型影响¶
无
REST API 影响¶
无
安全影响¶
无
通知影响¶
无
其他最终用户影响¶
无
性能影响¶
当卷复制 I/O 带宽受限时,完成卷复制需要更长的时间。用户需要在卷复制性能和对实例性能的干扰之间进行权衡。
其他部署者影响¶
默认情况下禁用此功能。想要使用此功能的用户需要在 cinder.conf 中设置 ‘volume_copy_bps_limit’。
开发人员影响¶
无
实现¶
负责人¶
- 主要负责人
tomoki-sekiyama-g
工作项¶
实现 cgroup blkio 设置函数
为 volume_utils.copy_volume 实现 I/O 速率限制
为其他镜像格式(如 qcow)实现 I/O 速率限制
依赖项¶
无
测试¶
无
文档影响¶
需要更新 cinder 客户端文档以反映新的配置项。
参考资料¶
无