Reviewed: https://review.openstack.org/560459 Committed: https://git.openstack.org/cgit/openstack/nova/commit/?id=7e48b227d0622b268f74d1a559aca4cd3784f7cf Submitter: Zuul Branch: master
commit 7e48b227d0622b268f74d1a559aca4cd3784f7cf Author: Eric Fried <[email protected]> Date: Wed Apr 11 09:47:49 2018 -0500 libvirt: Don't report DISK_GB if sharing For libvirt, if the operator wishes to use shared storage, they must manually configure the sharing resource provider in placement and associate it via aggregate with the compute node. However, the libvirt driver was still reporting the (same) DISK_GB inventory in the compute node provider. With this patch, we check the provider tree to see if a sharing provider of DISK_GB is present. If so, we don't report that inventory - because it's already accounted for by the sharing provider. Co-Authored-By: Bhagyashri Shewale <[email protected]> Closes-Bug: #1771728 Change-Id: Iea283322124cb35fc0bc6d25f35548621e8c8c2f ** Changed in: nova Status: In Progress => Fix Released -- 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/1771728 Title: libvirt: Shared Resource Provider (RP) DISK_GB is NOT taken into account if it's configured with Compute Node RPs Status in OpenStack Compute (nova): Fix Released Bug description: If user configures shared resource provider for disk_gb resources and links it with the compute nodes resource provider using aggregates then the disk_gb resources are still allocated from compute Node resource provider instead of shared resource provider. Environment Details: commit id: 0051e622e90ef4ea2678f3a1135043da460cad19 1. Compute Host A 2. NFS server on Host B 3. Disk files stored in the instance path on each compute nodes is mounted on NFS server storage. Steps to reproduce: 1. Create shared resource provider $ curl -g -i -X POST http://<HOST IP>/placement/resource_providers -H "Content-Type: application/json" -H "X-Auth-Token: <auth-token value>" -H "OpenStack-API-Version: placement latest" -d '{"name": "shared- disk", "uuid": <UUID of ----->' 2. Create inventory DISK_GB against shared resource provider created step 1. $ curl -g -i -X POST http://<HOST IP>/placement/resource_providers/<RP ID>/inventories -H "Content-Type: application/json" -H "X-Auth-Token: <auth-token value>" " -d '{"resource_class": "DISK_GB", "total": 78, "reserved": 0, "min_unit": 1, "max_unit": 78, "step_size": 1, "allocation_ratio": 1.0}' 3. Create an aggregate $ nova aggregate-create shared_resource_aggregate 4. link both the compute node RP and shared resource provider to agrregate create in step 3 $ curl -g -i -X PUT http://<HOST IP>/placement/resource_providers/<RP ID>/aggregates -H "Accept: application/json" -H "Content-Type: application/json" -H "OpenStack-API-Version: placement latest" -H "x -auth-token: <auth-token value>" " -d '{"aggregates": [ "<aggregate ID>" ], "resource_provider_generation": 1}' 5. Add MISC_SHARES_VIA_AGGREGATE trait to shared resource provider $ curl -g -i -X PUT http://<HOST IP>/placement/resource_providers/<RP ID>/traits -H "Accept: application/json" -H "Content-Type: application/json" -H "OpenStack-API-Version: placement latest" -H "x -auth-token: <auth-token value>" " -d '{"traits": ["MISC_SHARES_VIA_AGGREGATE"], "resource_provider_generation": 1}' 6. Boot the instance: Flavor Details: $ nova boot --flavor 1 --image <image_id> <instance_name> 7. Check usages of compute node resource provider: $ curl -g -i -X GET http://<HOST IP>/placement/resource_providers/<RP ID>/usages -H "Accept: application/json" -H "Content-Type: application/json" -H "OpenStack-API-Version: placement latest" -H "x-auth-token: 27903d0f-cc28-45ae-ae2e-3105c9e640b9" HTTP/1.1 200 OK Date: Wed, 28 Mar 2018 06:22:59 GMT Server: Apache/2.4.18 (Ubuntu) Content-Length: 90 Content-Type: application/json Cache-Control: no-cache Last-Modified: Wed, 28 Mar 2018 06:22:59 GMT openstack-api-version: placement 1.21 vary: openstack-api-version x-openstack-request-id: req-b3fe929f-187f-47d6-92a6-03c605a39848 Connection: close {"resource_provider_generation": 5, "usages": {"VCPU": 1, "MEMORY_MB": 512, "DISK_GB": 1}} 8. Check usages of shared resource provider: $ curl -g -i -X GET http:// <HOST IP>/placement/resource_providers/<RP ID>/usages -H "Accept: application/json" -H "Content-Type: application/json" -H "OpenStack-API-Version: placement latest" -H "x-auth-token: 27903d0f-cc28-45ae-ae2e-3105c9e640b9" HTTP/1.1 200 OK Date: Wed, 28 Mar 2018 06:23:05 GMT Server: Apache/2.4.18 (Ubuntu) Content-Length: 61 Content-Type: application/json Cache-Control: no-cache Last-Modified: Wed, 28 Mar 2018 06:23:05 GMT openstack-api-version: placement 1.21 vary: openstack-api-version x-openstack-request-id: req-8093854e-c5ab-429a-8dbc-474ef06ed243 Connection: close {"resource_provider_generation": 3, "usages": {"DISK_GB": 0}} Observation: By comparing usages details above (point 7 and 8) it shows that DISK_GB is consumed from Compute Node Resource Provider and not from the Shared Resource Provider. Expected Result: DISK_GB should be allocated from the shared resource provider. To manage notifications about this bug go to: https://bugs.launchpad.net/nova/+bug/1771728/+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

