Solidfire driver returns capacity based on used space relative to max provision space which does not balance as expected

Bug #1784042 reported by Sean
22
This bug affects 3 people
Affects Status Importance Assigned to Milestone
Cinder
Fix Released
Undecided
Erlon R. Cruz

Bug Description

When connecting multiple SolidFire Clusters to an openstack instance, the expectation was to see volumes allocation balanced across the clusters. But this balance is not happening and all volumes are being created on the larger cluster. While it is understandable that the larger cluster use would have to reach a point where the clusters had equal capacity before the balancing can occur, using the provisionable space relative to the in use space is not allowing this balancing to occur.

Exposing the capacity in terms of maxUsable space and used (consumed - not allocated) space would provide a better capacity planning based on thin provisioning.

I propose that the driver be updated to take into account three use cases :

1. Capacity planning based on provisioned and provisionable space, therefor not being able to over allocate a cluster.
2. Capacity planning based on consumed space and available space, therefor taking advantage of thin provisioning and allocation based on available consumable space.
3. Capacity planning with consumed space relative to provisionable space. Useful in the case where clusters are the same size.

Then have a configurable that would allow users to choose their option, with a default to the current behavior so as not to break existing consumers of the current use case.

Sean (seanwilcox)
description: updated
Changed in cinder:
status: New → Confirmed
Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Fix proposed to cinder (master)

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

Changed in cinder:
assignee: nobody → Erlon R. Cruz (sombrafam)
status: Confirmed → In Progress
Changed in cinder:
assignee: Erlon R. Cruz (sombrafam) → Sean McGinnis (sean-mcginnis)
Changed in cinder:
assignee: Sean McGinnis (sean-mcginnis) → Erlon R. Cruz (sombrafam)
Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Fix merged to cinder (master)

Reviewed: https://review.openstack.org/633804
Committed: https://git.openstack.org/cgit/openstack/cinder/commit/?id=7bd44ded01a808b5358f6a9e25215654ba74e2ca
Submitter: Zuul
Branch: master

commit 7bd44ded01a808b5358f6a9e25215654ba74e2ca
Author: Erlon R. Cruz <email address hidden>
Date: Fri Oct 19 09:49:57 2018 -0300

    NetApp SolidFire: Thin provisioning scheduler support

    Thin provisioning[1] is a feature supported by SolidFire hardware but
    in the current driver implementation it is not managed by Cinder.
    Therefore, scheduler options to control thin provisioning would not
    work in this driver.

    In this patch, we make the SolidFire driver compliant with Cinder thin
    provisioning framework and also fix a few values that were not being
    properly reported.

    To keep the driver behavior consistent and avoid breaking rolling
    upgrades, a new option is added. So, by default, the driver will
    behave in the old way, and in the next releases this new option will
    be the new default.

    [1] https://specs.openstack.org/openstack/cinder-specs/specs/kilo/over-subscription-in-thin-provisioning.html

    Change-Id: Ibba1dcf3deef27a9e1272d4e806f3e09ebd4ca4a
    Closes-bug: #1784042

Changed in cinder:
status: In Progress → Fix Released
Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Fix included in openstack/cinder 14.0.0.0rc1

This issue was fixed in the openstack/cinder 14.0.0.0rc1 release candidate.

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.