OpenStack Block Storage (Cinder)
Go to file
Fernando Ferraz f70bfbf711 NetApp SolidFire: Fix duplicate volume when API response is lost
The SolidFire driver retries API requests in case a connection
error occurrs. When network is unstable, there may be the
possibility that the SolidFire backend successfully receive
and process a create volume operation, but fail to deliver the
response back to the driver.

When this scenario occurrs, the SolidFire driver automatically
resends the request, creating a second volume and leaving a
duplicate unused. Although this doesn't affect
driver functionality at first moment (the volume id from the
cluster is always correctly associated to cinder provider id),
further operations may hit the unused volume, leading to
unexpected hehavior.

This patch fixes this issue by:

1. Checking if the volume name already exists in the
backend before trying to create it. Volume creation will
raise a exception and abort in case of a volume is found.

2. Checking for volume creation right after a read timeout is
detected, preventing invalid API calls.

3. Adding option ´sf_volume_create_timeout´ to the SolidFire
driver, to allow users to set the appropriate timeout value for
their environment.

Closes-Bug: #1896112
Change-Id: I4383b691a8cc4aacb046332e418aafb88ba8ba56
(cherry picked from commit 42c92cc407)
(cherry picked from commit deb31a0c4d)
(cherry picked from commit d73da73283)
2021-03-24 22:43:30 +00:00
api-ref/source Untyped to Default Volume Type 2019-09-20 05:37:54 +00:00
cinder NetApp SolidFire: Fix duplicate volume when API response is lost 2021-03-24 22:43:30 +00:00
contrib/block-box Small doc updates: canonical URLs, rally doc, etc 2019-06-04 17:57:16 +02:00
doc Merge "PowerMax Train Docs - Upgrade improvement notification" into stable/train 2020-11-20 14:51:16 +00:00
etc/cinder Leverage hw accelerator in image compression 2019-09-18 03:01:18 +00:00
playbooks zuul: collect cinderlib logs from tempest node(s) only 2020-07-21 23:31:00 +02:00
rally-jobs Small doc updates: canonical URLs, rally doc, etc 2019-06-04 17:57:16 +02:00
releasenotes NetApp SolidFire: Fix duplicate volume when API response is lost 2021-03-24 22:43:30 +00:00
tools Move hacking checks to tests dir 2019-10-09 14:16:58 -04:00
.coveragerc Update .coveragerc after the removal of openstack directory 2016-10-17 19:09:37 +05:30
.gitignore Tell reno to ignore the kilo branch 2020-02-17 20:17:53 +00:00
.gitreview Update .gitreview for stable/train 2019-09-27 09:05:11 +00:00
.pylintrc Pylint: Filter out cinder.objects and requests E1101 2019-02-21 13:28:44 -05:00
.stestr.conf Add .stestr.conf configuration 2017-10-10 00:46:42 +00:00
.zuul.yaml Native Zuul v3 cinder-grenade jobs 2020-06-26 11:04:43 +02:00
CONTRIBUTING.rst Optimize the link address 2017-04-08 15:03:44 +08:00
HACKING.rst Doc8: Stop skipping D001: Line too long 2019-02-19 16:51:56 -06:00
LICENSE Initial fork out of Nova. 2012-05-03 10:48:26 -07:00
README.rst Add cinder-specs link to readme.rst 2019-08-30 16:53:00 +08:00
babel.cfg Initial fork out of Nova. 2012-05-03 10:48:26 -07:00
bindep.txt Add cryptsetup to bindep.txt 2020-02-19 17:12:03 +00:00
driver-requirements.txt Merge "Unity: Add replication support" 2019-09-26 06:18:55 +00:00
lower-constraints.txt Adjust requirements and lower-constraints 2020-12-23 10:27:01 -05:00
reno.yaml Tell reno to ignore the kilo branch 2020-02-17 20:17:53 +00:00
requirements.txt Adjust requirements and lower-constraints 2020-12-23 10:27:01 -05:00
setup.cfg StorPool: update the driver requirements. 2019-09-08 17:50:54 +03:00
setup.py Updated from global requirements 2017-03-02 23:53:29 +00:00
test-requirements.txt Ensure pep8/fast8 run in python 3.6 2021-01-19 16:25:48 -05:00
tox.ini Ensure pep8/fast8 run in python 3.6 2021-01-19 16:25:48 -05:00

README.rst

Team and repository tags

image

CINDER

You have come across a storage service for an open cloud computing service. It has identified itself as Cinder. It was abstracted from the Nova project.

Getting Started

If you'd like to run from the master branch, you can clone the git repo:

git clone https://opendev.org/openstack/cinder

For developer information please see HACKING.rst

You can raise bugs here https://bugs.launchpad.net/cinder

Python client

https://opendev.org/openstack/python-cinderclient