[cinder-backup] Backup is not possible from backends different than ceph
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
Cinder |
New
|
Low
|
Unassigned |
Bug Description
Description
===========
I tried to create a volume backup from volume which is not located on ceph backend. In my case it is a huawei dorado. It fails with information that pool None doesn't exist, even if in config I have provided information that we need to use pool backup:
backup_ceph_pool = backup
Volumes which are created on ceph backend do not have these kind of issues(backup is successfully created)
Steps to reproduce
==================
1. Stop an instance with attached volume connected to different backend than ceph(in my case huawei dorado iscsi)
2. Create a backup of this volume
3. Observe if backup is created
Expected result
===============
Backup should be successfully created
Actual result
=============
Backup creation fails with logs:
Exception during message handling: cinder.
Volume Backup is in Error state, just after creation.
Environment
===========
OpenStack Stein release after upgrade from Rocky
Cinder details:
ii cinder-api 2:14.3.
ii cinder-backup 2:14.3.
ii cinder-common 2:14.3.
ii cinder-scheduler 2:14.3.
ii cinder-volume 2:14.3.
rc python-cinder 2:13.0.
ii python-cinderclient 1:4.1.0-
ii python3-cinder 2:14.3.
ii python3-
Logs & Configs
==============
header of an error: http://
backend config: http://
error code: http://
Changed in cinder: | |
importance: | Undecided → High |
Changed in cinder: | |
importance: | High → Low |
Problem is solved when such dirty hack is applied for os_brick: /usr/lib/ python3/ dist-packages/ os_brick/ initiator/ connectors/ iscsi.py:
--- /usr/lib/ python3/ dist-packages/ os_brick/ initiator/ connectors/ iscsi.py. orig 2021-07-23 15:17:13.999556010 +0200 python3/ dist-packages/ os_brick/ initiator/ connectors/ iscsi.py 2021-07-23 15:14:09.355858606 +0200 from_iscsi_ portal( self, connection_ properties) :
self. _iscsiadm_ update( connection_ properties, "node.startup", "manual",
check_ exit_code= [0, 21, 255]) iscsiadm( connection_ properties, ("--logout",), iscsiadm( connection_ properties, ('--op', 'delete'), retry=True) iscsiadm( connection_ properties, ("--logout",), iscsiadm( connection_ properties, ('--op', 'delete'), retry=True)
+++ /usr/lib/
@@ -1085,12 +1085,12 @@
def _disconnect_
- self._run_
- check_exit_code=[0, 21, 255])
- self._run_
- check_exit_code=[0, 21, 255],
- attempts=5,
- delay_on_
+# self._run_
+# check_exit_code=[0, 21, 255])
+# self._run_
+# check_exit_code=[0, 21, 255],
+# attempts=5,
+# delay_on_
def _disconnect_ connection( self, connection_ properties, connections, force,
exc) :
Then backup is able to be created.