Volume discovery and local storage management lib
Go to file
Gorka Eguileor 4894b242cf iSCSI: Fix flushing after multipath cfg change
OS-Brick disconnect_volume code assumes that the use_multipath parameter
that is used to instantiate the connector has the same value than the
connector that was used on the original connect_volume call.

Unfortunately this is not necessarily true, because Nova can attach a
volume, then its multipath configuration can be enabled or disabled, and
then a detach can be issued.

This leads to a series of serious issues such as:

- Not flushing the single path on disconnect_volume (possible data loss)
  and leaving it as a leftover device on the host when Nova calls
  terminate-connection on Cinder.

- Not flushing the multipath device (possible data loss) and leaving it
  as a leftover device similarly to the other case.

This patch changes how we do disconnects, now we assume we are always
disconnecting multipaths, and fallback to doing the single path
disconnect we used to do if we can't go that route.

The case when we cannot do a multipathed detach is mostly when we did
the connect as a single path and the Cinder driver doesn't provide
portal_targets and portal_iqns in the connection info for non
multipathed initialize-connection calls.

This changes introduces an additional call when working with single
paths (checking the discoverydb), but it should be an acceptable
trade-off to not lose data.

Also includes squash to add release note from:
Add release note prelude for os-brick 4.4.0
Change-Id: I0f9e088fbb14ee9a73175aa31bca8c619db5a96f

Closes-Bug: #1921381
Change-Id: I066d456fb1fe9159d4be50ffd8abf9a6d8d07901
(cherry picked from commit d4205bd0be)
(cherry picked from commit c70d70b240)
(cherry picked from commit 9528ceab4f)
2021-03-31 14:38:19 +02:00
doc Merge "doc/source/conf.py is not executable" 2020-03-06 17:35:31 +00:00
etc/os-brick/rootwrap.d Trivial rootwrap -> privsep replacement 2016-04-15 15:29:25 +00:00
os_brick iSCSI: Fix flushing after multipath cfg change 2021-03-31 14:38:19 +02:00
releasenotes iSCSI: Fix flushing after multipath cfg change 2021-03-31 14:38:19 +02:00
tools Split connector list by platform 2019-11-12 13:18:32 +02:00
.coveragerc Fix coverage generation 2016-04-20 15:52:31 +00:00
.gitignore Add LIO barbican tests to .zuul.yaml 2018-10-01 10:19:36 -05:00
.gitreview Update .gitreview for stable/ussuri 2020-04-02 10:54:01 +00:00
.mailmap Created the Brick library from Cinder 2015-01-22 19:09:30 +00:00
.stestr.conf Add .stestr.conf configuration 2017-10-02 17:35:26 -05:00
.zuul.yaml Merge "Port the os-bricks jobs to Zuul v3" 2020-02-22 03:13:23 +00:00
CONTRIBUTING.rst Ussuri contrib docs community goal 2020-03-05 09:11:33 -05:00
HACKING.rst Update hacking version 2019-01-18 21:30:00 -05:00
LICENSE Created the Brick library from Cinder 2015-01-22 19:09:30 +00:00
README.rst Replace git.openstack.org URLs with opendev.org URLs 2019-04-23 20:55:14 +08:00
babel.cfg Created the Brick library from Cinder 2015-01-22 19:09:30 +00:00
bindep.txt Add pdf documentation build in tox 2019-08-29 11:41:33 -07:00
lower-constraints.txt Adjust lower-constraints 2020-12-18 11:39:57 -05:00
pylintrc Add pylint tox env 2016-04-04 18:02:19 -04:00
requirements.txt Add oslo.context dependency 2021-01-25 09:25:39 -05:00
setup.cfg Remove Python 2.7 support from testing and gates 2019-12-04 16:29:40 -05:00
setup.py Updated from global requirements 2017-03-10 19:12:09 +00:00
test-requirements.txt Fix hacking min version to 3.0.1 2020-05-18 17:35:31 +01:00
tox.ini Update TOX/UPPER_CONSTRAINTS_FILE for stable/ussuri 2020-04-02 10:54:04 +00:00

README.rst

Team and repository tags

image

brick

Latest Version

Downloads

OpenStack Cinder brick library for managing local volume attaches

Features

  • Discovery of volumes being attached to a host for many transport protocols.
  • Removal of volumes from a host.

Hacking

Hacking on brick requires python-gdbm (for Debian derived distributions), Python 2.7 and Python 3.4. A recent tox is required, as is a recent virtualenv (13.1.0 or newer).

If "tox -e py34" fails with the error "db type could not be determined", remove the .testrepository/ directory and then run "tox -e py34".

For any other information, refer to the developer documents:

https://docs.openstack.org/os-brick/latest/

OR refer to the parent project, Cinder:

https://docs.openstack.org/cinder/latest/

Release notes for the project can be found at:

https://docs.openstack.org/releasenotes/os-brick