OpenStack 磁盘 I/O 限制
0x00 系统盘限制
OpenStack的系统盘可以通过flavor的metadata进行限制。Nova通过libvirt来调用cgroups来进行限制。
I/O限制可选择项:
- disk_write_bytes_sec
- disk_read_bytes_sec
- disk_read_iops_sec
- disk_write_iops_sec
- disk_total_bytes_sec
- disk_total_iops_sec
以限制磁盘写入为例:
创建/修改flavor,添加metadata信息quota:disk_write_bytes_sec,设置需要限制的值,以1000000(1MB/s)为例。所有以这个flavor来创建的虚拟机的系统盘的写速度都会被限制在1MB/s。
创建一个虚拟机来进行测试:
写入速度测试:
0x01 数据盘限制
flavor的metadata只能限制系统盘。Cinder提供了QoS Spec框架,用户可以创建QoS Spec,添加键值对进行限制。以限制数据盘的写速度为例:
Consumer类型:
- 前端:通过Hypervisor进行限制。
- 后端:通过Cinder Driver进行限制。
Key:
- read_bytes_sec
- read_iops_sec
- write_bytes_sec
- write_iops_sec
- total_bytes_sec
- total_iops_sec
创建Volume Type并与之前创建的Qos Spec关联起来。在创建卷时,选择这个Volume Type即可进行限制。
创建一块数据盘(云硬盘)进行测试:
注意类型要选择之前创建的那个Volume Type。
将数据盘挂载到/mnt目录下进行写入测试:
更多资源配额信息:OpenStack InstanceResourceQuota wiki
串串门(・8・)