Uploaded image for project: 'Red Hat OpenStack Services on OpenShift'
  1. Red Hat OpenStack Services on OpenShift
  2. OSPRH-12789

BZ#1931621 Cinder retype (with migration) from Ceph-encrypted to Ceph-unencrypted using generic migration code in RBD backend fails

XMLWordPrintable

    • Icon: Bug Bug
    • Resolution: Unresolved
    • Icon: Major Major
    • None
    • None
    • openstack-cinder
    • False
    • False
    • None
    • Undefined
    • Moderate

      Description of problem:
      Cinder tries to migrate the volume in a generic way and it fails because it doesn't know how to handle RBD Objects.
      A new implementation should be added to the RBD driver to handle this scenario and avoid using the generic driver
      by default.

      Version-Release number of selected component (if applicable):
      RHOSP 13.0
      RHOSP 16.0
      RHOSP 16.1
      RHOSP 16.2

      How reproducible:
      Always

      Steps to Reproduce:

      1. openstack volume type create --encryption-provider nova.volume.encryptors.luks.LuksEncryptor --encryption-cipher aes-xts-plain64 --encryption-key-size 256 --encryption-control-location front-end LuksEncryptor-Template-256
      2. cinder create 1 --name encrypt-vol --volume-type LuksEncryptor-Template-256
      3. cinder retype encrypt-vol ceph --migration-policy on-demand

      Actual results:

      feb 19 23:35:54 devstack cinder-volume[127895]: ERROR oslo_messaging.rpc.server volume.save()
      feb 19 23:35:54 devstack cinder-volume[127895]: ERROR oslo_messaging.rpc.server File "/usr/local/lib/python3.8/dist-packages/oslo_utils/excutils.py", line 227, in _exit_
      feb 19 23:35:54 devstack cinder-volume[127895]: ERROR oslo_messaging.rpc.server self.force_reraise()
      feb 19 23:35:54 devstack cinder-volume[127895]: ERROR oslo_messaging.rpc.server File "/usr/local/lib/python3.8/dist-packages/oslo_utils/excutils.py", line 200, in force_reraise
      feb 19 23:35:54 devstack cinder-volume[127895]: ERROR oslo_messaging.rpc.server raise self.value
      feb 19 23:35:54 devstack cinder-volume[127895]: ERROR oslo_messaging.rpc.server File "/opt/stack/cinder/cinder/volume/manager.py", line 2535, in migrate_volume
      feb 19 23:35:54 devstack cinder-volume[127895]: ERROR oslo_messaging.rpc.server self._migrate_volume_generic(ctxt, volume, host, new_type_id)
      feb 19 23:35:54 devstack cinder-volume[127895]: ERROR oslo_messaging.rpc.server File "/opt/stack/cinder/cinder/volume/manager.py", line 2296, in _migrate_volume_generic
      feb 19 23:35:54 devstack cinder-volume[127895]: ERROR oslo_messaging.rpc.server self._clean_temporary_volume(ctxt, volume,
      feb 19 23:35:54 devstack cinder-volume[127895]: ERROR oslo_messaging.rpc.server File "/usr/local/lib/python3.8/dist-packages/oslo_utils/excutils.py", line 227, in _exit_
      feb 19 23:35:54 devstack cinder-volume[127895]: ERROR oslo_messaging.rpc.server self.force_reraise()
      feb 19 23:35:54 devstack cinder-volume[127895]: ERROR oslo_messaging.rpc.server File "/usr/local/lib/python3.8/dist-packages/oslo_utils/excutils.py", line 200, in force_reraise
      feb 19 23:35:54 devstack cinder-volume[127895]: ERROR oslo_messaging.rpc.server raise self.value
      feb 19 23:35:54 devstack cinder-volume[127895]: ERROR oslo_messaging.rpc.server File "/opt/stack/cinder/cinder/volume/manager.py", line 2275, in _migrate_volume_generic
      feb 19 23:35:54 devstack cinder-volume[127895]: ERROR oslo_messaging.rpc.server self._copy_volume_data(ctxt, volume, new_volume, remote='dest')
      feb 19 23:35:54 devstack cinder-volume[127895]: ERROR oslo_messaging.rpc.server File "/opt/stack/cinder/cinder/volume/manager.py", line 2166, in _copy_volume_data
      feb 19 23:35:54 devstack cinder-volume[127895]: ERROR oslo_messaging.rpc.server self._detach_volume(ctxt, dest_attach_info, dest_vol,
      feb 19 23:35:54 devstack cinder-volume[127895]: ERROR oslo_messaging.rpc.server File "/usr/local/lib/python3.8/dist-packages/oslo_utils/excutils.py", line 227, in _exit_
      feb 19 23:35:54 devstack cinder-volume[127895]: ERROR oslo_messaging.rpc.server self.force_reraise()
      feb 19 23:35:54 devstack cinder-volume[127895]: ERROR oslo_messaging.rpc.server File "/usr/local/lib/python3.8/dist-packages/oslo_utils/excutils.py", line 200, in force_reraise
      feb 19 23:35:54 devstack cinder-volume[127895]: ERROR oslo_messaging.rpc.server raise self.value
      feb 19 23:35:54 devstack cinder-volume[127895]: ERROR oslo_messaging.rpc.server File "/opt/stack/cinder/cinder/volume/manager.py", line 2159, in _copy_volume_data
      feb 19 23:35:54 devstack cinder-volume[127895]: ERROR oslo_messaging.rpc.server src_attach_info = self._attach_volume(
      feb 19 23:35:54 devstack cinder-volume[127895]: ERROR oslo_messaging.rpc.server File "/opt/stack/cinder/cinder/volume/manager.py", line 2098, in _attach_volume
      feb 19 23:35:54 devstack cinder-volume[127895]: ERROR oslo_messaging.rpc.server self._detach_volume(ctxt, attach_info, volume, properties,
      feb 19 23:35:54 devstack cinder-volume[127895]: ERROR oslo_messaging.rpc.server File "/usr/local/lib/python3.8/dist-packages/oslo_utils/excutils.py", line 227, in _exit_
      feb 19 23:35:54 devstack cinder-volume[127895]: ERROR oslo_messaging.rpc.server self.force_reraise()
      feb 19 23:35:54 devstack cinder-volume[127895]: ERROR oslo_messaging.rpc.server File "/usr/local/lib/python3.8/dist-packages/oslo_utils/excutils.py", line 200, in force_reraise
      feb 19 23:35:54 devstack cinder-volume[127895]: ERROR oslo_messaging.rpc.server raise self.value
      feb 19 23:35:54 devstack cinder-volume[127895]: ERROR oslo_messaging.rpc.server File "/opt/stack/cinder/cinder/volume/manager.py", line 2091, in _attach_volume
      feb 19 23:35:54 devstack cinder-volume[127895]: ERROR oslo_messaging.rpc.server volume_utils.brick_attach_volume_encryptor(ctxt,
      feb 19 23:35:54 devstack cinder-volume[127895]: ERROR oslo_messaging.rpc.server File "/opt/stack/cinder/cinder/volume/volume_utils.py", line 1360, in brick_attach_volume_encryptor
      feb 19 23:35:54 devstack cinder-volume[127895]: ERROR oslo_messaging.rpc.server encryptor = brick_get_encryptor(connection_info,
      feb 19 23:35:54 devstack cinder-volume[127895]: ERROR oslo_messaging.rpc.server File "/opt/stack/cinder/cinder/volume/volume_utils.py", line 1350, in brick_get_encryptor
      feb 19 23:35:54 devstack cinder-volume[127895]: ERROR oslo_messaging.rpc.server return encryptors.get_volume_encryptor(root_helper=root_helper,
      feb 19 23:35:54 devstack cinder-volume[127895]: ERROR oslo_messaging.rpc.server File "/opt/stack/os-brick/os_brick/encryptors/_init_.py", line 87, in get_volume_encryptor
      feb 19 23:35:54 devstack cinder-volume[127895]: ERROR oslo_messaging.rpc.server encryptor = importutils.import_object(
      feb 19 23:35:54 devstack cinder-volume[127895]: ERROR oslo_messaging.rpc.server File "/usr/local/lib/python3.8/dist-packages/oslo_utils/importutils.py", line 44, in import_object
      feb 19 23:35:54 devstack cinder-volume[127895]: ERROR oslo_messaging.rpc.server return import_class(import_str)(*args, **kwargs)
      feb 19 23:35:54 devstack cinder-volume[127895]: ERROR oslo_messaging.rpc.server File "/opt/stack/os-brick/os_brick/encryptors/luks.py", line 56, in _init_
      feb 19 23:35:54 devstack cinder-volume[127895]: ERROR oslo_messaging.rpc.server super(LuksEncryptor, self)._init_(
      feb 19 23:35:54 devstack cinder-volume[127895]: ERROR oslo_messaging.rpc.server File "/opt/stack/os-brick/os_brick/encryptors/cryptsetup.py", line 61, in _init_
      feb 19 23:35:54 devstack cinder-volume[127895]: ERROR oslo_messaging.rpc.server self.dev_name = 'crypt-%s' % os.path.basename(self.symlink_path)
      feb 19 23:35:54 devstack cinder-volume[127895]: ERROR oslo_messaging.rpc.server File "/usr/lib/python3.8/posixpath.py", line 142, in basename
      feb 19 23:35:54 devstack cinder-volume[127895]: ERROR oslo_messaging.rpc.server p = os.fspath(p)
      feb 19 23:35:54 devstack cinder-volume[127895]: ERROR oslo_messaging.rpc.server TypeError: expected str, bytes or os.PathLike object, not RBDVolumeIOWrapper

      Expected results:
      Volume type should be Ceph

      Additional info:
      As far as I understand this will be fixed when implementing https://bugzilla.redhat.com/show_bug.cgi?id=1794249

              Unassigned Unassigned
              jira-bugzilla-migration RH Bugzilla Integration
              Yosi Ben Shimon Yosi Ben Shimon
              rhos-storage-cinder
              Votes:
              1 Vote for this issue
              Watchers:
              3 Start watching this issue

                Created:
                Updated: