yahoo-eng-team team mailing list archive
-
yahoo-eng-team team
-
Mailing list archive
-
Message #80237
[Bug 1800515] Re: Unnecessary locking when connecting volumes
Reviewed: https://review.opendev.org/614190
Committed: https://git.openstack.org/cgit/openstack/nova/commit/?id=1b597f759f9133964fd580d9e0eefd4cd6eb819f
Submitter: Zuul
Branch: master
commit 1b597f759f9133964fd580d9e0eefd4cd6eb819f
Author: Gorka Eguileor <geguileo@xxxxxxxxxx>
Date: Tue Oct 30 11:51:03 2018 +0100
Use os-brick locking for volume attach and detach
Cinder introduced "shared_targets" and "service_uuid" fields in volumes
to allow volume consumers to protect themselves from unintended leftover
devices when handling iSCSI connections with shared targets.
Nova avoids races caused by automatic rescans on iSCSI volumes when
detaching a volume while Cinder is mapping another volume to the same
host by locking and only allowing one attach or one detach operation for
each server to happen at a given time if "shared_targets" is set to
True.
When using an up to date Open iSCSI initiator we don't need to use
locks, as it is possible to disable automatic LUN scans (which are the
real cause of the leftover devices), and OS-Brick already supports this
feature.
Currently Nova is blindly locking whenever "shared_targets" is set to
True, even when the iSCSI initiator and OS-Brick are already presenting
such races, which introduces unnecessary locking and serialization on
the connection of volumes.
This patch uses the new context manager introduced in OS-Brick to allow
Nova to abstract its code from all this storage internal details and to
only lock when it's really necessary.
Depends-On: I4970363301d5d1f4e7d0f07e09b34d15ee6884c3
Closes-Bug: #1800515
Change-Id: Ie9106d5832d6a728ea97a8dbb5ddb5dcc17a2ec4
** Changed in: nova
Status: In Progress => Fix Released
--
You received this bug notification because you are a member of Yahoo!
Engineering Team, which is subscribed to OpenStack Compute (nova).
https://bugs.launchpad.net/bugs/1800515
Title:
Unnecessary locking when connecting volumes
Status in OpenStack Compute (nova):
Fix Released
Bug description:
Cinder introduced "shared_targets" and "service_uuid" fields in
volumes to allow volume consumers to protect themselves from
unintended leftover devices when handling iSCSI connections with
shared targets.
The way to protect from the automatic scans that happen on detach/map
race conditions is by locking and only allowing one attach or one
detach operation for each server to happen at a given time.
When using an up to date Open iSCSI initiator we don't need to use
locks, as it has the possibility to disable automatic LUN scans (which
are the real cause of the leftover devices), and OS-Brick already
supports this feature.
Currently Nova is blindly locking whenever "shared_targets" is set to
True, even when the iSCSI initiator and OS-Brick are already
presenting such races, which introduces unnecessary serialization on
the connection of volumes.
To manage notifications about this bug go to:
https://bugs.launchpad.net/nova/+bug/1800515/+subscriptions
References