[cinder-backup] Backup is not possible from backends different than ceph

Bug #1934905 reported by Jan Wasilewski
8
This bug affects 1 person
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.exception_Remote.VolumeBackendAPIException_Remote: Bad or unexpected response from the storage volume backend API: Pool None doesn't exist in storage.

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.1-0ubuntu1~cloud1 all Cinder storage service - API server
ii cinder-backup 2:14.3.1-0ubuntu1~cloud1 all Cinder storage service - Scheduler server
ii cinder-common 2:14.3.1-0ubuntu1~cloud1 all Cinder storage service - common files
ii cinder-scheduler 2:14.3.1-0ubuntu1~cloud1 all Cinder storage service - Scheduler server
ii cinder-volume 2:14.3.1-0ubuntu1~cloud1 all Cinder storage service - Volume server
rc python-cinder 2:13.0.9-0ubuntu1~cloud1.1 all Cinder Python 2 libraries
ii python-cinderclient 1:4.1.0-0ubuntu1~cloud0 all Python bindings to the OpenStack Volume API - Python 2.x
ii python3-cinder 2:14.3.1-0ubuntu1~cloud1 all Cinder Python 3 libraries
ii python3-cinderclient 1:4.1.0-0ubuntu1~cloud0 all Python bindings to the OpenStack Volume API - Python 3.x

Logs & Configs
==============

header of an error: http://paste.openstack.org/show/zurmIKqBRmR6bh8Kt3mj/
backend config: http://paste.openstack.org/show/9nE3InvSWrIp9myvDf8g/

error code: http://paste.openstack.org/show/F29h1VFn4PxWxMITQvPV/

Changed in cinder:
importance: Undecided → High
Changed in cinder:
importance: High → Low
Revision history for this message
Jan Wasilewski (janwasilewski) wrote :

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
+++ /usr/lib/python3/dist-packages/os_brick/initiator/connectors/iscsi.py 2021-07-23 15:14:09.355858606 +0200
@@ -1085,12 +1085,12 @@
     def _disconnect_from_iscsi_portal(self, connection_properties):
         self._iscsiadm_update(connection_properties, "node.startup", "manual",
                               check_exit_code=[0, 21, 255])
- self._run_iscsiadm(connection_properties, ("--logout",),
- check_exit_code=[0, 21, 255])
- self._run_iscsiadm(connection_properties, ('--op', 'delete'),
- check_exit_code=[0, 21, 255],
- attempts=5,
- delay_on_retry=True)
+# self._run_iscsiadm(connection_properties, ("--logout",),
+# check_exit_code=[0, 21, 255])
+# self._run_iscsiadm(connection_properties, ('--op', 'delete'),
+# check_exit_code=[0, 21, 255],
+# attempts=5,
+# delay_on_retry=True)

     def _disconnect_connection(self, connection_properties, connections, force,
                                exc):

Then backup is able to be created.

To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.