Bug 1375562

Summary: [RFE][Nova] Instance resource quota not observed for non-ephemeral storage
Product: Red Hat OpenStack Reporter: Chaitanya Shastri <cshastri>
Component: openstack-novaAssignee: Eoghan Glynn <eglynn>
Status: CLOSED DUPLICATE QA Contact: Prasanth Anbalagan <panbalag>
Severity: unspecified Docs Contact:
Priority: unspecified    
Version: 8.0 (Liberty)CC: berrange, dasmith, eglynn, kchamart, parora, sbauza, sferdjao, sgordon, srevivo, vromanso
Target Milestone: ---Keywords: FutureFeature
Target Release: ---   
Hardware: Unspecified   
OS: Unspecified   
URL: https://blueprints.launchpad.net/nova/+spec/non-ephemeral-storage-quota-assign
Whiteboard: upstream_milestone_none upstream_definition_new upstream_status_unknown
Fixed In Version: Doc Type: If docs needed, set a value
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2017-01-24 21:12:02 UTC Type: Bug
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:

Description Chaitanya Shastri 2016-09-13 12:09:28 UTC
Description of problem:

When we boot instance from image with flavor that has extra_specs set disk_read_bytes_sec and disk_write_bytes_sec it is shown in the xml file of the instance as iotune parameter.

But when the same image is booted using same flavor but with the option "Boot from image (creates new volume)" the iotune parameter goes missing.

Version-Release number of selected component (if applicable):
OSP 8

How reproducible:
Everytime

Steps to Reproduce:

1. Create a new flavor and set these extra_specs to it:
 disk_read_bytes_sec, disk_write_bytes_sec, cpu_quota, cpu_period, vif_inbound_average, vif_outbound_average.

#nova flavor-create m1.nano auto 256 1 1
+--------------------------------------+---------+-----------+------+-----------+------+-------+-------------+-----------+
| ID                                   | Name    | Memory_MB | Disk | Ephemeral | Swap | VCPUs | RXTX_Factor | Is_Public |
+--------------------------------------+---------+-----------+------+-----------+------+-------+-------------+-----------+
| 1a91e456-9422-4c4e-be25-1ef585de7e88 | m1.nano | 256       | 1    | 0         |      | 1     | 1.0         | True      |
+--------------------------------------+---------+-----------+------+-----------+------+-------+-------------+-----------+ 

# nova flavor-key m1.nano set quota:disk_read_bytes_sec=10240000

# nova flavor-key m1.nano set quota:disk_write_bytes_sec=10240000

# nova flavor-key m1.nano  set quota:cpu_quota=5000

# nova flavor-key m1.nano  set quota:cpu_period=2500

# nova flavor-key m1.nano  set quota:vif_inbound_average=10240

# nova flavor-key m1.nano  set quota:vif_outbound_average=10240

# nova flavor-show m1.nano

+----------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| Property                   | Value                                                                                                                                                                                                                   |
+----------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| OS-FLV-DISABLED:disabled   | False                                                                                                                                                                                                                   |
| OS-FLV-EXT-DATA:ephemeral  | 0                                                                                                                                                                                                                       |
| disk                       | 1                                                                                                                                                                                                                       |
| extra_specs                | {"quota:vif_outbound_average": "10240", "quota:disk_write_bytes_sec": "10240000", "quota:cpu_quota": "5000", "quota:cpu_period": "2500", "quota:vif_inbound_average": "10240", "quota:disk_read_bytes_sec": "10240000"} |
| id                         | 1a91e456-9422-4c4e-be25-1ef585de7e88                                                                                                                                                                                    |
| name                       | m1.nano                                                                                                                                                                                                                 |
| os-flavor-access:is_public | True                                                                                                                                                                                                                    |
| ram                        | 256                                                                                                                                                                                                                     |
| rxtx_factor                | 1.0                                                                                                                                                                                                                     |
| swap                       |                                                                                                                                                                                                                         |
| vcpus                      | 1                                                                                                                                                                                                                       |
+----------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+

2. Boot an instance using this flavor (m1.nano) from Horizon dashboard using "Boot from instance" dropdown.

3. After the instance is active, dump its xml:

# virsh list
 Id    Name                           State
----------------------------------------------------
 5     instance-00000007              running

# virsh dumpxml instance-00000007 > instance_boot_from_image.xml

4. Boot another instance from Horizon dashboard using same flavor but using "Boot from image (creates a new volume)" dropdown.

5. After the instance is active, dump its xml

# virsh dumpxml instance-00000006 > instance_boot_from_image_new_vol.xml

6. In 'instance_boot_from_image.xml' file you will find all the qos extra_specs that we set on the m1.nano flavor (cputune, iotune.. etc). But in 'instance_boot_from_image_new_vol.xml', you will find every extra_spec except 'iotune' parameter.

Actual results:

QoS extra_spec 'iotune' goes missing when we try to boot the instance with the QoS flavor with the option 'Boot from image (Creates New Volume)'

Expected results:

extra_spec 'iotune' should be present

Additional info:

This bug was already raised in the upstream here: https://bugs.launchpad.net/nova/+bug/1445637, but for some reason, was abandoned: https://review.openstack.org/#/c/201019

Comment 2 Prateek Arora 2016-09-21 06:11:29 UTC
I had a discussion upstream regarding this.
This feature is something that should not be there, however there is a way to do this which is passing volume type when booting an instance.


"I don't think this is orchestration/proxy work that we want Nova to do when creating a volume during the boot from volume scenario. There is agreement, however, to allow passing a volume type when booting an instance for the BFV scenario and the volume type can have the QoS specs in it, see:

http://lists.openstack.org/pipermail/openstack-dev/2016-August/102401.html

-- mriedem 20160920

Comment 4 Stephen Gordon 2017-01-24 21:12:02 UTC

*** This bug has been marked as a duplicate of bug 1369482 ***