openstack虚拟机限速配置

openstack limit

Posted by motorao on December 13, 2020

目前与云主机限速相关的内容共有三处:

neutron qos-xxx命令

neutron qos-xxx命令,通过neutron qos的形式为云主机port绑定相应的网络限速策略(对应弹性公网IP)

通过flavor对云主机进行默认限速:

1
2
3
4
命令如下:
nova flavor-key m1.small set quota:vif_inbound_average=10240
nova flavor-key m1.small set quota:vif_outbound_average=10240

这儿的网络QoS是直接使用libvirt提供的参数来实现的:(http://www.libvirt.org/formatnetwork.html) 最终落在libvirt里面实现的配置如下

1
2
3
4
5
6
  <forward mode='nat' dev='eth0'/>
  <bandwidth>
    <inbound average='1000' peak='5000' burst='5120'/>
    <outbound average='128' peak='256' burst='256'/>
  </bandwidth>

云硬盘限速(动态)

由于不同规格云硬盘的限速要求差异,云硬盘采用公式进行限速; 对cinder进行二次开发后,在cinder.conf中配置相应的限速参数,根据创建的云硬盘大小不同,计算出不同的限速值,最后落到libvirt中生效如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
 <disk type='network' device='disk'>
   <driver name='qemu' type='raw' cache='none' discard='unmap'/>
   <source protocol='rbd' name='ebs_ceph_ssd_sys/volume-6347f0d3-b2b1-41b2-a2b4-e75c19a9cba9'>
     <host name='10.203.135.1' port='6789'/>
     <host name='10.203.135.8' port='6789'/>
     <host name='10.203.135.15' port='6789'/>
   </source>
   <target dev='sda' bus='scsi'/>
   <iotune>
     <total_bytes_sec>146800640</total_bytes_sec>
     <total_iops_sec>2800</total_iops_sec>
   </iotune>
   <serial>6347f0d3-b2b1-41b2-a2b4-e75c19a9cba9</serial>
   <wwn>004439433801266d</wwn>
   <alias name='scsi0-0-0-0'/>
   <address type='drive' controller='0' bus='0' target='0' unit='0'/>
 </disk>

参考官方文档,flavor中支持以下tuning参数:

**Optional metadata keys: **

CPU limits quota:cpu_shares
  quota:cpu_period
  quota:cpu_limit
  quota:cpu_reservation
  quota:cpu_quota
Disk tuning quota:disk_read_bytes_sec
  quota:disk_read_iops_sec
  quota:disk_write_bytes_sec
  quota:disk_write_iops_sec
  quota:disk_total_bytes_sec
  quota:disk_total_iops_sec
Bandwidth I/O quota:vif_inbound_average
  quota:vif_inbound_burst
  quota:vif_inbound_peak
  quota:vif_outbound_average
  quota:vif_outbound_burst
  quota:vif_outbound_peak
Watchdog behavior hw:watchdog_action
Random-number generator hw_rng:allowed
  hw_rng:rate_bytes
  hw_rng:rate_period