Volume discovery and local storage management lib
Go to file
Gorka Eguileor d4205bd0be 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.

Closes-Bug: #1921381
Change-Id: I066d456fb1fe9159d4be50ffd8abf9a6d8d07901
2021-03-26 11:07:45 +01:00
doc Merge "Dropping explicit unicode literal" 2021-03-12 23:36:22 +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-26 11:07:45 +01:00
releasenotes iSCSI: Fix flushing after multipath cfg change 2021-03-26 11:07:45 +01:00
tools Remove six 2021-03-03 14:41:22 +08: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 OpenDev Migration Patch 2019-04-19 19:34:25 +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 Add Python3 xena unit tests 2021-03-08 09:18:13 +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
bindep.txt bindep: remind people to sync the dependencies with devstack 2020-08-14 00:50:08 +02:00
lower-constraints.txt Update requirements for wallaby release 2021-03-04 21:03:58 -05:00
pylintrc Add pylint tox env 2016-04-04 18:02:19 -04:00
requirements.txt Update requirements for wallaby release 2021-03-04 21:03:58 -05:00
setup.cfg Remove translation sections from setup.cfg 2020-05-15 09:28:48 +08:00
setup.py Cleanup py27 support 2020-04-05 17:43:12 +02:00
test-requirements.txt Update requirements for wallaby release 2021-03-04 21:03:58 -05:00
tox.ini Merge "Enforce import order with flake8-import-order" 2021-03-04 17:48:07 +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