Volume discovery and local storage management lib
Go to file
Gorka Eguileor ec22c32de6 NVMe-oF: Fix attach when reconnecting
When an nvme subsystem has all portals in connecting state and we try
to attach a new volume to that same subsystem it will fail.

We can reproduce it with LVM+nvmet if we configure it to share targets
and then:
- Create instance
- Attach 2 volumes
- Delete instance (this leaves the subsystem in connecting state [1])
- Create instance
- Attach volume <== FAILS

The problem comes from the '_connect_target' method that ignores
subsystems in 'connecting' state, so if they are all in that state it
considers it equivalent to all portals being inaccessible.

This patch changes this behavior and if we cannot connect to a target
but we have portals in 'connecting' state we wait for the next retry of
the nvme linux driver. Specifically we wait 10 more seconds that the
interval between retries.

[1]: https://bugs.launchpad.net/nova/+bug/2035375

Closes-Bug: #2035695
Change-Id: Ife710f52c339d67f2dcb160c20ad0d75480a1f48
2024-01-05 16:45:21 +01:00
doc [docs] add autodoc_mock_imports 2023-07-21 08:27:57 -04:00
etc/os-brick/rootwrap.d Trivial rootwrap -> privsep replacement 2016-04-15 15:29:25 +00:00
os_brick NVMe-oF: Fix attach when reconnecting 2024-01-05 16:45:21 +01:00
releasenotes NVMe-oF: Fix attach when reconnecting 2024-01-05 16:45:21 +01:00
tools import pylint tooling from cinder 2023-04-25 09:09:38 -04:00
.coveragerc Fix coverage generation 2016-04-20 15:52:31 +00:00
.gitignore Add mypy-report directory to .gitignore 2022-08-25 09:03:04 -04: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
.pylintrc import pylint tooling from cinder 2023-04-25 09:09:38 -04:00
.stestr.conf Add .stestr.conf configuration 2017-10-02 17:35:26 -05:00
.zuul.yaml Use generic testing template 2023-09-01 17:48:18 -04: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 Update README to drop py3.6 reference 2022-07-12 13:56:33 -04:00
bindep.txt bindep: remind people to sync the dependencies with devstack 2020-08-14 00:50:08 +02:00
mypy-files.txt mypy: lvm.py 2022-08-25 14:00:42 +00:00
pylintrc Add pylint tox env 2016-04-04 18:02:19 -04:00
requirements.txt Update minimum requirements in os-brick 2023-02-09 15:55:40 +00:00
setup.cfg Remove egg_info from setup.cfg 2023-07-21 12:33:32 +00:00
setup.py Cleanup py27 support 2020-04-05 17:43:12 +02:00
test-requirements.txt Support hacking>=6.0.0 2023-08-17 15:37:04 -04:00
tox.ini Merge "tox: Don't share envdir between pep8 and fast8" 2023-12-19 17:33:59 +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 3.8+. A recent tox is required, as is a recent virtualenv (20.2.2 or newer).

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