EMC VMAX does not persist volume name on backend

Bug #1395903 reported by Carl Pecinovsky
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
Cinder
Fix Released
Medium
Xing Yang

Bug Description

Scenario:

1. Setup OpenStack environment with VMAX storage.
2. Create volumes through cinder
3. Now the cinder database goes away. Examples:
   (a) database becomes corrupt
   (b) Want to insert these managed volumes into another openstack installation using a product built on openstack - without knowledge of the other openstack install (database was corrupt, or it got uninstalled etc.)
4. When we look at the volume CIM instances from the SMI-S provider, the ElementName property (or any other property) for that matter, does not contain the name that the openstack user originally used when creating the volume. So, on PowerVC (as an example built on openstack), the user does not know which volumes are theirs to import.

The PowerVC team met with the EMC openstack team (Xing, etc.) in September and this was one of the items we discussed. An objection that was brought up at that time was that the ElementName of the volume instance needed to be unique.

Given that restriction, PowerVC was able to easily solve name-persistence-gap by doing the following after the volume was created:

instance = self.common._find_lun(volume)
instance['ElementName'] = instance['DeviceID'] + '+' + volume['display_name']
<SMI-S connection wrapper class>.conn.ModifyInstance(instance)

Perhaps another product would care about volume['name'] instead of display_name, but we believe the general idea bears consideration by the community. Because it probably makes more sense to create the volume instance with that ElementName initially rather than do the ModifyInstnace() later. Today a generic name using ONLY the CIM 'DeviceID' property is used instead.

Tags: drivers emc
Xing Yang (xing-yang)
tags: added: drivers emc
Changed in cinder:
assignee: nobody → Xing Yang (xing-yang)
Revision history for this message
Xing Yang (xing-yang) wrote :

Yes, ElementName should have a unique name. Cinder volume UUID is the best candidate. 'display_name' can change very easily and doesn't persist at all. 'DeviceID' is already part of the volume object. Cinder volume UUID can help us find a volume on the array quickly too.

Xing Yang (xing-yang)
Changed in cinder:
importance: Undecided → Medium
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/140910

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

Reviewed: https://review.openstack.org/140910
Committed: https://git.openstack.org/cgit/openstack/cinder/commit/?id=44d95acb744be64f12855032a2f83831374a5632
Submitter: Jenkins
Branch: master

commit 44d95acb744be64f12855032a2f83831374a5632
Author: Xing Yang <email address hidden>
Date: Tue Dec 16 23:58:36 2014 -0500

    Persist volume uuid on VMAX array

    This change saves the volume uuid in the ElementName field of
    a SMI-S volume object so that it persists on the array.

    Closes-Bug: #1395903
    Change-Id: I53945f2864e6cfab756afdaeb17d45dfdac38c02

Changed in cinder:
status: In Progress → 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.