如何在openstack环境下实现磁盘、网络的QoS?

公司已经部署一套OpenStack环境,计算虚拟化采用的是KVM,存储采用cinder对接传统SAN存储,网络使用的是OvS。控制节点3台,计算节点10台,网络节点和控制节点合一。如何通过OpenStack中计算和网络的配置,来实现磁盘/网络的QoS?

参与8

3同行回答

chinesezzqiangchinesezzqiang  信息技术经理 , M
可以通过neutron和计算节点的配置文件来实现,但是使用第三方的方式生产环境应用较多。显示全部

可以通过neutron和计算节点的配置文件来实现,但是使用第三方的方式生产环境应用较多。

收起
IT其它 · 2018-09-20
GaryyGaryy  系统工程师 , 某保险
磁盘控制可以在cinder或者nova模块中进行:1)在cinder模块中一。首先创建一个带限速功能的类型cinder type-create my-type cinder qos-create my-qos consumer="front-end" read_iops_sec=2000 write_iops_sec=1000cinder qos-associate $QOS_ID $VOLUME_TYPE_IDcinder qo...显示全部

磁盘控制可以在cinder或者nova模块中进行:
1)在cinder模块中
一。首先创建一个带限速功能的类型

cinder type-create my-type 

cinder qos-create my-qos consumer="front-end" read_iops_sec=2000 write_iops_sec=1000

cinder qos-associate $QOS_ID $VOLUME_TYPE_ID

cinder qos-get-association $QOS_ID

二。把创建的类型赋给磁盘
如果是已经存在的磁盘:
1.从虚拟机分离磁盘
2.# cinder retype $VOLUME_ID $VOLUME_TYPE_ID
3.给虚拟机挂载磁盘

如果是要新创建磁盘:
1.# cinder create --name $VOLUME_NAME --volume-type $VOLUME_TYPE_ID 
2.给虚拟机挂载磁盘

说明:

consumer的合法值为front-end、back-end、both。front-end表示使用前端控制(hypervisor控制,会在libvirt xml文件中定义), 而back-end表示使用后端控制(cinder drivers,需要driver支持),both表示前后端同时进行QoS控制。
libvirt中disk中配置:

      <iotune>
        <read_iops_sec>2000</read_iops_sec>
        <write_iops_sec>1000</write_iops_sec>
      </iotune>

2)在nova模块中

openstack flavor create  --vcpus 1 --ram 4096 --disk 5 qqq

openstack flavor set qqq --property quota:disk_read_bytes_sec=20480 --property quota:disk_write_bytes_sec=10240

<disk type='network' device='disk'>
      <driver name='qemu' type='raw' cache='writeback' discard='unmap'/>
      <source protocol='rbd' name='images/1a956ba7-25fe-49f1-9513-7adb8928036c'>
        <host name='192.168.107.50' port='6789'/>
        <host name='192.168.107.51' port='6789'/>
        <host name='192.168.107.52' port='6789'/>
        <host name='192.168.107.53' port='6789'/>
      </source>
      <target dev='vda' bus='virtio'/>
      <iotune>
        <read_bytes_sec>20480</read_bytes_sec>
        <write_bytes_sec>10240</write_bytes_sec>
      </iotune>
      <boot order='1'/>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x0a' function='0x0'/>
    </disk>

 openstack flavor create  --vcpus 1 --ram 4096 --disk 5 qqqq

openstack flavor set qqqq --property quota:disk_read_iops_sec=20480 --property quota:disk_write_iops_sec=10240

<disk type='network' device='disk'>
      <driver name='qemu' type='raw' cache='writeback' discard='unmap'/>
      <source protocol='rbd' name='images/1a956ba7-25fe-49f1-9513-7adb8928036c'>
        <host name='192.168.107.50' port='6789'/>
        <host name='192.168.107.51' port='6789'/>
        <host name='192.168.107.52' port='6789'/>
        <host name='192.168.107.53' port='6789'/>
      </source>
      <target dev='vda' bus='virtio'/>
      <iotune>
        <read_iops_sec>20480</read_iops_sec>
        <write_iops_sec>10240</write_iops_sec>
      </iotune>
      <boot order='1'/>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x0a' function='0x0'/>
    </disk>

控制网络QoS在nova中

 openstack flavor create  --vcpus 1 --ram 512 --disk 1 q

 openstack flavor set q --property quota:vif_inbound_average=2048  --property quota:vif_outbound_average=1024

<interface type='bridge'>
      <mac address='fa:16:3e:8f:6a:c9'/>
      <source bridge='brq5233ef6c-62'/>
      <bandwidth>
        <inbound average='2048'/>
        <outbound average='1024'/>
      </bandwidth>
      <target dev='tap9573c869-24'/>
      <model type='virtio'/>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x03' function='0x0'/>
    </interface>

收起
保险 · 2018-09-20
浏览4876
大天使之剑大天使之剑  售前技术支持 , 杭州才云科技
使用虚拟机的时候会遇到这种情况:同一个OpenStack集群的几台虚机如果读写负荷较大,可能会导致其他虚机因为抢占不到后端存储资源而反应卡顿,这个时候需要QoS的配合来限制虚机的IO速率及读写带宽。资源总是有限的,包括网络资源、后端存储资源,只要存在抢占资源的情况,就需要QoS...显示全部
  • 使用虚拟机的时候会遇到这种情况:

    • 同一个OpenStack集群的几台虚机如果读写负荷较大,可能会导致其他虚机因为抢占不到后端存储资源而反应卡顿,这个时候需要QoS的配合来限制虚机的IO速率及读写带宽。
    • 资源总是有限的,包括网络资源、后端存储资源,只要存在抢占资源的情况,就需要QoS来管理资源的分配
  • 关于磁盘:

    • Cinder QoS Spec
  • 关于网络:

    • 修改neutron配置文件,添加qos插件
    • 修改ovs配置文件,添加qos扩展
    • 修改policy文件,设置qos权限,并启用各种规则
    • 管理员创建对应的qos规则

      neutron qos-policy-create xxx
收起
互联网服务 · 2018-09-18
浏览4331

提问者

Garyy
Garyy0410
系统工程师某保险
擅长领域: 云计算存储容器

问题来自

相关问题

相关资料

相关文章

问题状态

  • 发布时间:2018-09-18
  • 关注会员:3 人
  • 问题浏览:6351
  • 最近回答:2018-09-20
  • X社区推广