NetApp ONTAP drivers reporting incorrect provisioned_capacity_gb

Bug #1714209 reported by Gorka Eguileor
14
This bug affects 2 people
Affects Status Importance Assigned to Milestone
Cinder
Fix Released
Undecided
Ben Swartzlander

Bug Description

All NetApp ONTAP drivers are incorrectly reporting "provisioned_capacity_gb", probably because provisioned capacity means something different on the NetApp ONTAP storage arrays themselves.

Reported values are always actual physical used size [1][2][3], which is not correct as it should contain the maximum size that all volumes present in the backend could reach [4], total virtual size if you will.

Due to this over provisioning doesn't work as expected. A clear example is if you use thin provisioning with a 1.0 max_over_provisioning ratio, as you'll still be doing over provisioning.

[1] https://github.com/openstack/cinder/blob/55e29347221f1c3c1fca26ab0144ecc1f54b87b6/cinder/volume/drivers/netapp/dataontap/nfs_base.py#L888
[2] https://github.com/openstack/cinder/blob/55e29347221f1c3c1fca26ab0144ecc1f54b87b6/cinder/volume/drivers/netapp/dataontap/block_7mode.py#L344
[3] https://github.com/openstack/cinder/blob/55e29347221f1c3c1fca26ab0144ecc1f54b87b6/cinder/volume/drivers/netapp/dataontap/block_cmode.py#L320
[4] https://review.openstack.org/#/c/490116/2/specs/queens/provisioning-improvements.rst@103

NetApp E-Series drivers may have a similar behavior, reported as a separate bug here: https://bugs.launchpad.net/cinder/+bug/1718739

Gorka Eguileor (gorka)
description: updated
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/505672

Changed in cinder:
assignee: nobody → Goutham Pacha Ravi (gouthamr)
status: New → In Progress
description: updated
summary: - NetApp reporting incorrect provisioned_capacity_gb
+ NetApp ONTAP drivers reporting incorrect provisioned_capacity_gb
Changed in cinder:
assignee: Goutham Pacha Ravi (gouthamr) → Ben Swartzlander (bswartz)
Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Fix merged to cinder (master)

Reviewed: https://review.openstack.org/505672
Committed: https://git.openstack.org/cgit/openstack/cinder/commit/?id=42b8b7fe60ffdd7a7772dc0ab228265dc83344bc
Submitter: Jenkins
Branch: master

commit 42b8b7fe60ffdd7a7772dc0ab228265dc83344bc
Author: Goutham Pacha Ravi <email address hidden>
Date: Wed Sep 13 23:54:08 2017 -0600

    NetApp ONTAP: Fix reporting of provisioned_capacity_gb

    The ONTAP drivers in Cinder ("7mode" and "cmode") cannot
    reliably and efficiently track provisioned_capacity_gb as expected
    by the Cinder scheduler.

    The driver authors originally assumed that provisioned_capacity_gb
    is consumed space on the backend. This results in miscalculation of
    over subscription in the Cinder scheduler.

    The fix adopted here is to remove this wrong reporting and rely on
    calculation of the provisioned_capacity_gb in the scheduler.

    Change-Id: Ic106dbcae8ceaac265b710756ab1874e445ca826
    Closes-Bug: #1714209

Changed in cinder:
status: In Progress → Fix Released
Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Fix proposed to cinder (stable/pike)

Fix proposed to branch: stable/pike
Review: https://review.openstack.org/509677

Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Fix proposed to cinder (driverfixes/ocata)

Fix proposed to branch: driverfixes/ocata
Review: https://review.openstack.org/509780

Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Fix merged to cinder (stable/pike)

Reviewed: https://review.openstack.org/509677
Committed: https://git.openstack.org/cgit/openstack/cinder/commit/?id=558571b44d9cd2195993e42539fd2c689b179ee6
Submitter: Jenkins
Branch: stable/pike

commit 558571b44d9cd2195993e42539fd2c689b179ee6
Author: Goutham Pacha Ravi <email address hidden>
Date: Wed Sep 13 23:54:08 2017 -0600

    NetApp ONTAP: Fix reporting of provisioned_capacity_gb

    The ONTAP drivers in Cinder ("7mode" and "cmode") cannot
    reliably and efficiently track provisioned_capacity_gb as expected
    by the Cinder scheduler.

    The driver authors originally assumed that provisioned_capacity_gb
    is consumed space on the backend. This results in miscalculation of
    over subscription in the Cinder scheduler.

    The fix adopted here is to remove this wrong reporting and rely on
    calculation of the provisioned_capacity_gb in the scheduler.

    Change-Id: Ic106dbcae8ceaac265b710756ab1874e445ca826
    Closes-Bug: #1714209
    (cherry picked from commit 42b8b7fe60ffdd7a7772dc0ab228265dc83344bc)

tags: added: in-stable-pike
Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Fix included in openstack/cinder 12.0.0.0b1

This issue was fixed in the openstack/cinder 12.0.0.0b1 development milestone.

Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Fix merged to cinder (driverfixes/ocata)

Reviewed: https://review.openstack.org/509780
Committed: https://git.openstack.org/cgit/openstack/cinder/commit/?id=eef24cfce800c601e5e1e7a21e026ad9b03d4ed1
Submitter: Zuul
Branch: driverfixes/ocata

commit eef24cfce800c601e5e1e7a21e026ad9b03d4ed1
Author: Goutham Pacha Ravi <email address hidden>
Date: Wed Sep 13 23:54:08 2017 -0600

    NetApp ONTAP: Fix reporting of provisioned_capacity_gb

    The ONTAP drivers in Cinder ("7mode" and "cmode") cannot
    reliably and efficiently track provisioned_capacity_gb as expected
    by the Cinder scheduler.

    The driver authors originally assumed that provisioned_capacity_gb
    is consumed space on the backend. This results in miscalculation of
    over subscription in the Cinder scheduler.

    The fix adopted here is to remove this wrong reporting and rely on
    calculation of the provisioned_capacity_gb in the scheduler.

    Change-Id: Ic106dbcae8ceaac265b710756ab1874e445ca826
    Closes-Bug: #1714209
    (cherry picked from commit 42b8b7fe60ffdd7a7772dc0ab228265dc83344bc)
    (cherry picked from commit 558571b44d9cd2195993e42539fd2c689b179ee6)
    Conflicts:
     cinder/tests/unit/volume/drivers/netapp/dataontap/test_nfs_7mode.py

tags: added: in-driverfixes-ocata
Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Fix included in openstack/cinder 11.0.1

This issue was fixed in the openstack/cinder 11.0.1 release.

Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Related fix proposed to cinder (master)

Related fix proposed to branch: master
Review: https://review.openstack.org/523478

Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Change abandoned on cinder (master)

Change abandoned by Goutham Pacha Ravi (<email address hidden>) on branch: master
Review: https://review.openstack.org/523478

Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Fix proposed to cinder (stable/ocata)

Fix proposed to branch: stable/ocata
Review: https://review.openstack.org/560600

Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Fix merged to cinder (stable/ocata)

Reviewed: https://review.openstack.org/560600
Committed: https://git.openstack.org/cgit/openstack/cinder/commit/?id=83a849a78c93ad7a1a7f2c9c0cd3b7ae08a2ff32
Submitter: Zuul
Branch: stable/ocata

commit 83a849a78c93ad7a1a7f2c9c0cd3b7ae08a2ff32
Author: Goutham Pacha Ravi <email address hidden>
Date: Wed Sep 13 23:54:08 2017 -0600

    NetApp ONTAP: Fix reporting of provisioned_capacity_gb

    The ONTAP drivers in Cinder ("7mode" and "cmode") cannot
    reliably and efficiently track provisioned_capacity_gb as expected
    by the Cinder scheduler.

    The driver authors originally assumed that provisioned_capacity_gb
    is consumed space on the backend. This results in miscalculation of
    over subscription in the Cinder scheduler.

    The fix adopted here is to remove this wrong reporting and rely on
    calculation of the provisioned_capacity_gb in the scheduler.

    Change-Id: Ic106dbcae8ceaac265b710756ab1874e445ca826
    Closes-Bug: #1714209
    (cherry picked from commit 42b8b7fe60ffdd7a7772dc0ab228265dc83344bc)
    (cherry picked from commit 558571b44d9cd2195993e42539fd2c689b179ee6)
    Conflicts:
     cinder/tests/unit/volume/drivers/netapp/dataontap/test_nfs_7mode.py

tags: added: in-stable-ocata
Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Fix included in openstack/cinder 10.0.7

This issue was fixed in the openstack/cinder 10.0.7 release.

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.