NetApp+NFS in cluster mode doesn't split volumes between multiple NFS shares

Bug #1369426 reported by Victor Stinner
8
This bug affects 1 person
Affects Status Importance Assigned to Milestone
Cinder
Fix Released
Undecided
Unassigned
Icehouse
Fix Released
Undecided
Unassigned

Bug Description

If more than one NFS share is defined, all volumes are allocated on the same NFS share until it is not eligible anymore. Then a second NFS share is filled. The code is supposed to split Cinder volumes between the different NFS shares, not fill them one by one.

It is a bug in _find_shares(). If at least one NFS share is eligible, the "size" parameter (size of the requested volume in gigabytes) is replaced with the total size in bytes of the share. Because of that, _find_shares() cannot find more one eligible NFS share.

_find_shares() sorts eligible volumes by available size. Because of this bug, all volumes are allocated in the same NFS share, instead of being splitted on different NFS shares.

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

Fix proposed to branch: stable/icehouse
Review: https://review.openstack.org/121467

Revision history for this message
Eric Harney (eharney) wrote :

This code is gone in master but applicable for icehouse.

Mike Perez (thingee)
tags: added: drivers
Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Fix merged to cinder (stable/icehouse)

Reviewed: https://review.openstack.org/121467
Committed: https://git.openstack.org/cgit/openstack/cinder/commit/?id=93de51d57b2287bfb9b39bc1351d7a612916e0a0
Submitter: Jenkins
Branch: stable/icehouse

commit 93de51d57b2287bfb9b39bc1351d7a612916e0a0
Author: Victor Stinner <email address hidden>
Date: Mon Sep 15 07:58:13 2014 +0000

    Fix NetAppDirectCmodeNfsDriver._find_shares()

    If more than one NFS share is defined, all volumes are allocated on the
    same NFS share until it is not eligible anymore. Then a second NFS share
    is filled. The code is supposed to split volumes between the different
    NFS shares, not fill them one by one.

    It is a bug in _find_shares(). If at least one NFS share is eligible,
    the "size" parameter (size of the requested volume in gigabytes) is
    replaced with the total size in bytes of the share. Because of that,
    _find_shares() cannot find more one eligible NFS share.

    _find_shares() sorts eligible volumes by available size. Because of this
    bug, all volumes are allocated in the same NFS share, instead of being
    splitted on different NFS shares.

    The _find_shares() has been removed in Juno, see:

    * commit 98aa91b0e271d6fbd9dfe43bf4152fb138a46a89
    * change Ie6f155df7bc1ae2cd5f7fa39f1b1a0ad38075988

    Change-Id: I7b72921a2a45d5dd0aa969c8c32f7d815175f3a8
    Co-author: "Florent Flament" <email address hidden>
    Closes-Bug: #1369426

tags: added: in-stable-icehouse
Changed in cinder:
status: New → Fix Committed
Thierry Carrez (ttx)
Changed in cinder:
milestone: none → kilo-2
status: Fix Committed → Fix Released
Thierry Carrez (ttx)
Changed in cinder:
milestone: kilo-2 → 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.