Public bug reported: Description =========== I use pike release.
I tried to use extra_specs of flavors to limit instance's disk io and network bandwidth by using "Disk tuning" and "Bandwidth I/O". But "Disk tuning" was not worked and only "Bandwidth I/O" worked. I turned debug=on, and found nova.virt.libvirt.driver makes only <bandwith> in _get_guest_xml, without <iotune>. And I tried to use volume-type qos with image property to limit disk bandwith and iops, it works well as I expected. Steps to reproduce ================== # make flavor with extra_specs openstack flavor create medium --vcpus 2 --ram 4096 --disk 40 \ --property quota:vif_outbound_average=$(( 300 * 125 )) \ --property quota:vif_outbound_peak=$(( 300 * 375 )) \ --property quota:vif_outbound_burst=$(( 300 * 375 )) \ --property quota:vif_inbound_average=$(( 300 * 125 )) \ --property quota:vif_inbound_peak=$(( 300 * 375 )) \ --property quota:vif_inbound_burst=$(( 300 * 375 )) \ --property quota:disk_total_iops_sec=800 \ --property quota:disk_total_bytes_sec=$(( 70 * 1048576 )) # server create openstack server create --image ubuntu --network test-net --flavor medium test-ubuntu # perform tests $ iperf3 -c "ip_address_of_iperf3_server" $ dd if=/dev/zero of=1GB bs=64k count=16k conv=fdatasync $ fio --randrepeat=1 --ioengine=libaio --direct=1 --gtod_reduce=1 --name=test --filename=test --bs=4k --iodepth=64 --size=1000M --readwrite=randrw --rwmixread=75 Expected result =============== Network bandwidh will be limited under 300Mbps. Disk iops will be limited under 800. Disk bandwidh will be limited under 70MBps. Actual result ============= Network bandwidh was limited under 300Mbps. Disk iops was unlimited. Disk bandwidth was unlimited. Environment =========== 1. Nova's version (nova-compute)[nova@comp01 /]$ rpm -qa | grep nova python2-novaclient-9.1.1-1.el7.noarch openstack-nova-compute-16.0.3-2.el7.noarch python-nova-16.0.3-2.el7.noarch openstack-nova-common-16.0.3-2.el7.noarch 2. hypervisor (nova-libvirt)[root@comp01 /]# rpm -qa | grep kvm qemu-kvm-common-ev-2.9.0-16.el7_4.13.1.x86_64 libvirt-daemon-kvm-3.2.0-14.el7_4.7.x86_64 qemu-kvm-ev-2.9.0-16.el7_4.13.1.x86_64 2. Storage (ceph-osd-0)[root@stor01 /]# ceph --version ceph version 12.2.2 (cf0baeeeeba3b47f9427c6c97e2144b094b7e5ba) luminous (stable) 3. Networking Neutron with OpenVSwitch Logs & Configs ============== Please see following paste: http://paste.openstack.org/show/677319/ ** Affects: nova Importance: Undecided Status: New ** Description changed: Description =========== I use pike release. I tried to use extra_specs of flavors to limit instance's disk io and network bandwidth by using "Disk tuning" and "Bandwidth I/O". But "Disk tuning" was not worked and only "Bandwidth I/O" worked. I turned debug=on, and found nova.virt.libvirt.driver makes only <bandwith> in _get_guest_xml, without <iotune>. And I tried to use volume-type qos with image property to limit disk bandwith and iops, it works well as I expected. - Steps to reproduce ================== # make flavor with extra_specs openstack flavor create medium --vcpus 2 --ram 4096 --disk 40 \ --property quota:vif_outbound_average=$(( 300 * 125 )) \ --property quota:vif_outbound_peak=$(( 300 * 375 )) \ --property quota:vif_outbound_burst=$(( 300 * 375 )) \ --property quota:vif_inbound_average=$(( 300 * 125 )) \ --property quota:vif_inbound_peak=$(( 300 * 375 )) \ --property quota:vif_inbound_burst=$(( 300 * 375 )) \ --property quota:disk_total_iops_sec=800 \ --property quota:disk_total_bytes_sec=$(( 70 * 1048576 )) # server create openstack server create --image ubuntu --network test-net --flavor medium test-ubuntu # perform tests $ iperf3 -c "ip_address_of_iperf3_server" $ dd if=/dev/zero of=1GB bs=64k count=16k conv=fdatasync $ fio --randrepeat=1 --ioengine=libaio --direct=1 --gtod_reduce=1 --name=test --filename=test --bs=4k --iodepth=64 --size=1000M --readwrite=randrw --rwmixread=75 - Expected result =============== Network bandwidh will be limited under 300Mbps. Disk iops will be limited under 800. Disk bandwidh will be limited under 70MBps. - Actual result ============= Network bandwidh was limited under 300Mbps. Disk iops was unlimited. Disk bandwidth was unlimited. - Environment =========== 1. Nova's version nova-compute)[nova@comp01 /]$ rpm -qa | grep openstack-nova openstack-nova-compute-16.0.3-2.el7.noarch openstack-nova-common-16.0.3-2.el7.noarch 2. hypervisor - (nova-compute)[nova@comp01 /]$ rpm -qa | grep kvm + (nova-libvirt)[root@comp01 /]# rpm -qa | grep kvm qemu-kvm-common-ev-2.9.0-16.el7_4.13.1.x86_64 + libvirt-daemon-kvm-3.2.0-14.el7_4.7.x86_64 qemu-kvm-ev-2.9.0-16.el7_4.13.1.x86_64 - libvirt-daemon-kvm-3.2.0-14.el7_4.7.x86_6 2. Storage (ceph-osd-0)[root@stor01 /]# ceph --version ceph version 12.2.2 (cf0baeeeeba3b47f9427c6c97e2144b094b7e5ba) luminous (stable) 3. Networking Neutron with OpenVSwitch - Logs & Configs ============== Please see following paste: http://paste.openstack.org/show/677319/ ** Description changed: Description =========== I use pike release. I tried to use extra_specs of flavors to limit instance's disk io and network bandwidth by using "Disk tuning" and "Bandwidth I/O". But "Disk tuning" was not worked and only "Bandwidth I/O" worked. I turned debug=on, and found nova.virt.libvirt.driver makes only <bandwith> in _get_guest_xml, without <iotune>. And I tried to use volume-type qos with image property to limit disk bandwith and iops, it works well as I expected. Steps to reproduce ================== # make flavor with extra_specs openstack flavor create medium --vcpus 2 --ram 4096 --disk 40 \ --property quota:vif_outbound_average=$(( 300 * 125 )) \ --property quota:vif_outbound_peak=$(( 300 * 375 )) \ --property quota:vif_outbound_burst=$(( 300 * 375 )) \ --property quota:vif_inbound_average=$(( 300 * 125 )) \ --property quota:vif_inbound_peak=$(( 300 * 375 )) \ --property quota:vif_inbound_burst=$(( 300 * 375 )) \ --property quota:disk_total_iops_sec=800 \ --property quota:disk_total_bytes_sec=$(( 70 * 1048576 )) # server create openstack server create --image ubuntu --network test-net --flavor medium test-ubuntu # perform tests $ iperf3 -c "ip_address_of_iperf3_server" $ dd if=/dev/zero of=1GB bs=64k count=16k conv=fdatasync $ fio --randrepeat=1 --ioengine=libaio --direct=1 --gtod_reduce=1 --name=test --filename=test --bs=4k --iodepth=64 --size=1000M --readwrite=randrw --rwmixread=75 Expected result =============== Network bandwidh will be limited under 300Mbps. Disk iops will be limited under 800. Disk bandwidh will be limited under 70MBps. Actual result ============= Network bandwidh was limited under 300Mbps. Disk iops was unlimited. Disk bandwidth was unlimited. Environment =========== 1. Nova's version - nova-compute)[nova@comp01 /]$ rpm -qa | grep openstack-nova + (nova-compute)[nova@comp01 /]$ rpm -qa | grep nova + python2-novaclient-9.1.1-1.el7.noarch openstack-nova-compute-16.0.3-2.el7.noarch + python-nova-16.0.3-2.el7.noarch openstack-nova-common-16.0.3-2.el7.noarch 2. hypervisor (nova-libvirt)[root@comp01 /]# rpm -qa | grep kvm qemu-kvm-common-ev-2.9.0-16.el7_4.13.1.x86_64 libvirt-daemon-kvm-3.2.0-14.el7_4.7.x86_64 qemu-kvm-ev-2.9.0-16.el7_4.13.1.x86_64 2. Storage (ceph-osd-0)[root@stor01 /]# ceph --version ceph version 12.2.2 (cf0baeeeeba3b47f9427c6c97e2144b094b7e5ba) luminous (stable) 3. Networking Neutron with OpenVSwitch Logs & Configs ============== Please see following paste: http://paste.openstack.org/show/677319/ -- You received this bug notification because you are a member of Yahoo! Engineering Team, which is subscribed to OpenStack Compute (nova). https://bugs.launchpad.net/bugs/1750319 Title: libvirt.driver doesn't make <iotune> when using extra_specs of flavor Status in OpenStack Compute (nova): New Bug description: Description =========== I use pike release. I tried to use extra_specs of flavors to limit instance's disk io and network bandwidth by using "Disk tuning" and "Bandwidth I/O". But "Disk tuning" was not worked and only "Bandwidth I/O" worked. I turned debug=on, and found nova.virt.libvirt.driver makes only <bandwith> in _get_guest_xml, without <iotune>. And I tried to use volume-type qos with image property to limit disk bandwith and iops, it works well as I expected. Steps to reproduce ================== # make flavor with extra_specs openstack flavor create medium --vcpus 2 --ram 4096 --disk 40 \ --property quota:vif_outbound_average=$(( 300 * 125 )) \ --property quota:vif_outbound_peak=$(( 300 * 375 )) \ --property quota:vif_outbound_burst=$(( 300 * 375 )) \ --property quota:vif_inbound_average=$(( 300 * 125 )) \ --property quota:vif_inbound_peak=$(( 300 * 375 )) \ --property quota:vif_inbound_burst=$(( 300 * 375 )) \ --property quota:disk_total_iops_sec=800 \ --property quota:disk_total_bytes_sec=$(( 70 * 1048576 )) # server create openstack server create --image ubuntu --network test-net --flavor medium test-ubuntu # perform tests $ iperf3 -c "ip_address_of_iperf3_server" $ dd if=/dev/zero of=1GB bs=64k count=16k conv=fdatasync $ fio --randrepeat=1 --ioengine=libaio --direct=1 --gtod_reduce=1 --name=test --filename=test --bs=4k --iodepth=64 --size=1000M --readwrite=randrw --rwmixread=75 Expected result =============== Network bandwidh will be limited under 300Mbps. Disk iops will be limited under 800. Disk bandwidh will be limited under 70MBps. Actual result ============= Network bandwidh was limited under 300Mbps. Disk iops was unlimited. Disk bandwidth was unlimited. Environment =========== 1. Nova's version (nova-compute)[nova@comp01 /]$ rpm -qa | grep nova python2-novaclient-9.1.1-1.el7.noarch openstack-nova-compute-16.0.3-2.el7.noarch python-nova-16.0.3-2.el7.noarch openstack-nova-common-16.0.3-2.el7.noarch 2. hypervisor (nova-libvirt)[root@comp01 /]# rpm -qa | grep kvm qemu-kvm-common-ev-2.9.0-16.el7_4.13.1.x86_64 libvirt-daemon-kvm-3.2.0-14.el7_4.7.x86_64 qemu-kvm-ev-2.9.0-16.el7_4.13.1.x86_64 2. Storage (ceph-osd-0)[root@stor01 /]# ceph --version ceph version 12.2.2 (cf0baeeeeba3b47f9427c6c97e2144b094b7e5ba) luminous (stable) 3. Networking Neutron with OpenVSwitch Logs & Configs ============== Please see following paste: http://paste.openstack.org/show/677319/ To manage notifications about this bug go to: https://bugs.launchpad.net/nova/+bug/1750319/+subscriptions -- Mailing list: https://launchpad.net/~yahoo-eng-team Post to : [email protected] Unsubscribe : https://launchpad.net/~yahoo-eng-team More help : https://help.launchpad.net/ListHelp

