Manila Scheduler doesn't read full driver capabilities

Bug #1430434 reported by Rushil Chugh
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
OpenStack Shared File Systems Service (Manila)
Fix Released
High
Clinton Knight

Bug Description

The Manila cDOT driver reports several capabilities as driver-level capabilities, in addition to the per-pool capabilities. The Manila scheduler appears to ignore these capabilities when filtering, and since the 'driver_handles_share_servers' extra spec is now required, and that is a driver-level capability, then we are unable to schedule any shares on the cDOT driver. If the extra-spec is not specified, the api will reject it as missing, if it is specified, the filter will not find a pool with the capability.

The manila scheduler pools logs for c-mode show the following pools:

DEBUG manila.scheduler.host_manager [req-b77e8083-76ee-4896-bad9-41ebc90adab1 None None] Received share service update from openstack1@cmodeNFS: {u'QoS_support': False, u'share_backend_name': u'cmodeNFS', u'driver_handles_share_servers': True, u'driver_version': u'1.0', u'total_capacity_gb': 0.0, u'driver_name': u'NetApp_Cluster_MultiSVM', u'storage_protocol': u'NFS_CIFS', u'pools': [{u'pool_name': u'aggr0', u'QoS_support': u'False', u'allocated_capacity_gb': 1420.8, u'free_capacity_gb': 69.33, u'total_capacity_gb': 1490.13, u'reserved_percentage': 0, u'netapp_raid_type': u'raid_dp', u'netapp_disk_type': u'SATA'}, {u'pool_name': u'aggr0_sfp_cmode_05_02_0', u'QoS_support': u'False', u'allocated_capacity_gb': 1420.78, u'free_capacity_gb': 69.35, u'total_capacity_gb': 1490.13, u'reserved_percentage': 0, u'netapp_raid_type': u'raid_dp', u'netapp_disk_type': u'SATA'}, {u'pool_name': u'aggr1', u'QoS_support': u'False', u'allocated_capacity_gb': 7332.69, u'free_capacity_gb': 1608.13, u'total_capacity_gb': 8940.82, u'reserved_percentage': 0, u'netapp_raid_type': u'raid_dp', u'netapp_disk_type': u'SATA'}, {u'pool_name': u'aggr2', u'QoS_support': u'False', u'allocated_capacity_gb': 582.68, u'free_capacity_gb': 3887.73, u'total_capacity_gb': 4470.41, u'reserved_percentage': 0, u'netapp_raid_type': u'raid_dp', u'netapp_disk_type': u'SATA'}], u'vendor_name': u'NetApp', u'reserved_percentage': 0, u'free_capacity_gb': 0.0, u'netapp_storage_family': u'ontap_cluster'} from (pid=29121) update_service_capabilities /opt/stack/manila/manila/scheduler/host_manager.py:414

In the above pools output, driver_handles_share_servers is set to be True. But, manila-scheduler appears to ignore this capability even though it exists and hence scheduling shares on the C-dot driver fails as evidenced by the manila-scheduler output below.

WARNING manila.scheduler.manager [req-2374cb44-d214-4dcc-83cb-18530d3753d3 3839af78c5934f85a8f0caa80dd76054 d5b5716cdd334b419f8948189a85bba6] Failed to schedule_create_share: No valid host was found.

Changed in manila:
status: New → Confirmed
assignee: nobody → Clinton Knight (clintonk)
Changed in manila:
milestone: none → kilo-3
importance: Undecided → High
Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Fix proposed to manila (master)

Fix proposed to branch: master
Review: https://review.openstack.org/163487

Changed in manila:
status: Confirmed → In Progress
Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Fix merged to manila (master)

Reviewed: https://review.openstack.org/163487
Committed: https://git.openstack.org/cgit/openstack/manila/commit/?id=a838eb3ffee89d3f442cea1a1400be7b4236f424
Submitter: Jenkins
Branch: master

commit a838eb3ffee89d3f442cea1a1400be7b4236f424
Author: Clinton Knight <email address hidden>
Date: Tue Mar 10 14:41:00 2015 -0400

    Manila Scheduler should read full driver capabilities

    The scheduler should see all the data reported by a driver in
    update_share_stats(), but there were a couple of fields from the
    top-level capabilities dictionary that weren't being copied into
    the pools. In particular, the value driver_handles_share_servers
    must be present in each pool, since that value is required in each
    share type and all scheduling will fail if the value isn't present
    on each pool.

    Change-Id: Id388dceecfaaca3145fda82dd98386a7ee51adb9
    Closes-Bug: #1430434

Changed in manila:
status: In Progress → Fix Committed
Thierry Carrez (ttx)
Changed in manila:
status: Fix Committed → Fix Released
Thierry Carrez (ttx)
Changed in manila:
milestone: kilo-3 → 2015.1.0
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.