VNX: update sg in cache

When `destroy_empty_storage_group` is enabled, the sg will be deleted
after the last lun is detached from it. The issue is that the sg cache
isn't updated, which caused the failure of subsequent attaching volumes
to the same host because the sg in the cache will be used directly which
doesn't exist any more.

The fix is updating the sg with poll after deleting it. This doesn't
delete the sg from cache explicitly but makes sure the sg in cache with
latest status `not-exist`. Subsequent attaching will create the sg if it
is `not-exist`.

Closes-bug: #1817385
Change-Id: Ibb39879a77c97c6a5d885461e93116810d16b265
This commit is contained in:
Ryan Liang 2019-02-25 17:43:46 +08:00
parent 8cb3223e9f
commit eefd8302b3
4 changed files with 20 additions and 1 deletions

View File

@ -2067,6 +2067,8 @@ test_terminate_connection_cleanup_remove_sg:
delete:
disconnect_host:
get_alu_hlu_map: {}
update:
with_poll: _context
test_terminate_connection_cleanup_sg_absent:
sg:
@ -2080,6 +2082,8 @@ test_terminate_connection_cleanup_deregister:
delete:
disconnect_host:
get_alu_hlu_map: {}
update:
with_poll: _context
vnx:
_methods:
delete_hba:

View File

@ -1091,6 +1091,11 @@ class CommonAdapter(replication.ReplicationAdapter):
LOG.info("Storage Group %s is empty.", sg.name)
sg.disconnect_host(sg.name)
sg.delete()
# Update sg with poll makes the one in client.sg_cache is with
# latest status which is un-exist. This makes sure the sg is
# created during next attaching.
self.update_storage_group_if_required(sg)
if host is not None and self.itor_auto_dereg:
# `host` is None when force-detach
self._deregister_initiator(host)

View File

@ -81,9 +81,12 @@ class VNXDriver(driver.ManageableVD,
12.1.0 - Adjust max_luns_per_storage_group and
check_max_pool_luns_threshold
12.1.1 - Fix perf issue when create/delete volume
13.0.0 - Fix bug https://bugs.launchpad.net/cinder/+bug/1817385 to
make sure sg can be created again after it was destroyed
under `destroy_empty_stroage_group` setting to `True`
"""
VERSION = '12.01.01'
VERSION = '13.00.00'
VENDOR = 'Dell EMC'
# ThirdPartySystems wiki page
CI_WIKI_NAME = "EMC_VNX_CI"

View File

@ -0,0 +1,7 @@
---
fixes:
- |
Dell EMC VNX Driver: Fixes `bug 1817385
<https://bugs.launchpad.net/cinder/+bug/1817385>`__ to make sure the sg can
be created again after it was destroyed under `destroy_empty_storage_group`
setting to `True`.