eqlx driver breaks live migration

Bug #1382225 reported by Jon Proulx
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
Cinder
Invalid
Undecided
Unassigned

Bug Description

This is a different issue from:
"#1296677 Equallogic driver and multi-host access"

Having set the Equallogic volumes for multi-host access so migration works, the migrated instances will fail to terminate properly due to 'Failed to terminate connection to volume %s' exceptions and will not migrate a second time due to the same issue.

This is becuase there is a hard coded assumption that there will be 1 and only one elemet in the access list and it will have ID 1:

    def terminate_connection(self, volume, connector, force=False, **kwargs):
        """Remove access restrictions from a volume."""
        try:
            self._eql_execute('volume', 'select', volume['name'],
                              'access', 'delete', '1')
    except Exception:
         with excutils.save_and_reraise_exception():
            LOG.error(_('Failed to terminate connection to volume %s'),
                      volume['name'])

During migration a second ACL with ID 2 is created. Unpon completion of the migration teh 1st ACL is properly removed (since it has ID 1). The remaining ACL has ID 2 so on shutdown ther is no access list with ID 1, similar fault happens on subsequent migration attempts.

This blocks me from being able to do operating system upgrade of my cloud which is required prior to moving to Juno, well at least with out taking major down time for a hundred or so volume backed instances.

For me this is critical, so I'll likely kludge around it by droping a noop function in place of the terminate_connection for the duration of my upgrade cycle and try ands sort out the access mess that leaves later.

Revision history for this message
Jon Proulx (jproulx) wrote :

after writing a patch, I find I'm behind the times and this was implemented in commit 2339351c, which closed the bug I referenced at top, so unsure how I missed that :)

Changed in cinder:
status: New → Invalid
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.