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
(cherry picked from commit eefd8302b3
)
This commit is contained in:
parent
61f9bbf700
commit
1f57f502c8
@ -2067,6 +2067,8 @@ test_terminate_connection_cleanup_remove_sg:
|
|||||||
delete:
|
delete:
|
||||||
disconnect_host:
|
disconnect_host:
|
||||||
get_alu_hlu_map: {}
|
get_alu_hlu_map: {}
|
||||||
|
update:
|
||||||
|
with_poll: _context
|
||||||
|
|
||||||
test_terminate_connection_cleanup_sg_absent:
|
test_terminate_connection_cleanup_sg_absent:
|
||||||
sg:
|
sg:
|
||||||
@ -2080,6 +2082,8 @@ test_terminate_connection_cleanup_deregister:
|
|||||||
delete:
|
delete:
|
||||||
disconnect_host:
|
disconnect_host:
|
||||||
get_alu_hlu_map: {}
|
get_alu_hlu_map: {}
|
||||||
|
update:
|
||||||
|
with_poll: _context
|
||||||
vnx:
|
vnx:
|
||||||
_methods:
|
_methods:
|
||||||
delete_hba:
|
delete_hba:
|
||||||
|
@ -1091,6 +1091,11 @@ class CommonAdapter(replication.ReplicationAdapter):
|
|||||||
LOG.info("Storage Group %s is empty.", sg.name)
|
LOG.info("Storage Group %s is empty.", sg.name)
|
||||||
sg.disconnect_host(sg.name)
|
sg.disconnect_host(sg.name)
|
||||||
sg.delete()
|
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:
|
if host is not None and self.itor_auto_dereg:
|
||||||
# `host` is None when force-detach
|
# `host` is None when force-detach
|
||||||
self._deregister_initiator(host)
|
self._deregister_initiator(host)
|
||||||
|
@ -81,9 +81,12 @@ class VNXDriver(driver.ManageableVD,
|
|||||||
12.1.0 - Adjust max_luns_per_storage_group and
|
12.1.0 - Adjust max_luns_per_storage_group and
|
||||||
check_max_pool_luns_threshold
|
check_max_pool_luns_threshold
|
||||||
12.1.1 - Fix perf issue when create/delete volume
|
12.1.1 - Fix perf issue when create/delete volume
|
||||||
|
12.1.2 - 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 = '12.01.02'
|
||||||
VENDOR = 'Dell EMC'
|
VENDOR = 'Dell EMC'
|
||||||
# ThirdPartySystems wiki page
|
# ThirdPartySystems wiki page
|
||||||
CI_WIKI_NAME = "EMC_VNX_CI"
|
CI_WIKI_NAME = "EMC_VNX_CI"
|
||||||
|
@ -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`.
|
Loading…
Reference in New Issue
Block a user