Cinder backup failed for restore volume snapshot (for instance snapshot)

Bug #1860739 reported by Rodrigo L. L. Jorge
38
This bug affects 8 people
Affects Status Importance Assigned to Milestone
Cinder
Fix Released
Medium
Ivan Kolodyazhny
OpenStack Compute (nova)
Confirmed
Undecided
Unassigned
kolla-ansible
Invalid
Undecided
Unassigned

Bug Description

Cinder backup failed for restore volume snapshot.
Works for restore volumes without snapshots.
I use a external ceph cluster version 14.2.6 nautilus (stable)

What you expected to happen:
Restore volume snapshot backup.

How to reproduce it (minimal and precise):
- Create a instance with disk;
- Snaptshot instance;
- Backup volume snapshot;
Example: openstack volume backup create 18363c93-e577-470e-971a-678094bce943 --snapshot 1624b162-e616-47dc-bb1b-01fe4843c581

- Restore backup;

CentOS Linux release 7.7.1908 (Core)
3.10.0-1062.9.1.el7.x86_64
Docker 19.03.5
Docker image source
Docker image distribution Centos
official images from Docker Hub
git status: # On branch stable/train

==> /var/log/kolla/cinder/cinder-backup.log <==
2020-01-23 22:10:39.340 29 ERROR oslo_messaging.rpc.server [req-d37e8900-4c9b-45d7-9b6b-59dd66159e86 0af9f5deabf74f4e8efea750cb3c7cf0 1baa170cb3a742e59db2e7e5948d6e7f - default default] Exception during message handling: ImageNotFound: [errno 2] error opening image volume-18363c93-e577-470e-971a-678094bce943.backup.base at snapshot None
2020-01-23 22:10:39.340 29 ERROR oslo_messaging.rpc.server Traceback (most recent call last):
2020-01-23 22:10:39.340 29 ERROR oslo_messaging.rpc.server File "/var/lib/kolla/venv/lib/python2.7/site-packages/oslo_messaging/rpc/server.py", line 165, in _process_incoming
2020-01-23 22:10:39.340 29 ERROR oslo_messaging.rpc.server res = self.dispatcher.dispatch(message)
2020-01-23 22:10:39.340 29 ERROR oslo_messaging.rpc.server File "/var/lib/kolla/venv/lib/python2.7/site-packages/oslo_messaging/rpc/dispatcher.py", line 274, in dispatch
2020-01-23 22:10:39.340 29 ERROR oslo_messaging.rpc.server return self._do_dispatch(endpoint, method, ctxt, args)
2020-01-23 22:10:39.340 29 ERROR oslo_messaging.rpc.server File "/var/lib/kolla/venv/lib/python2.7/site-packages/oslo_messaging/rpc/dispatcher.py", line 194, in _do_dispatch
2020-01-23 22:10:39.340 29 ERROR oslo_messaging.rpc.server result = func(ctxt, **new_args)
2020-01-23 22:10:39.340 29 ERROR oslo_messaging.rpc.server File "/var/lib/kolla/venv/lib/python2.7/site-packages/cinder/backup/manager.py", line 608, in restore_backup
2020-01-23 22:10:39.340 29 ERROR oslo_messaging.rpc.server backup.save()
2020-01-23 22:10:39.340 29 ERROR oslo_messaging.rpc.server File "/var/lib/kolla/venv/lib/python2.7/site-packages/oslo_utils/excutils.py", line 220, in __exit__
2020-01-23 22:10:39.340 29 ERROR oslo_messaging.rpc.server self.force_reraise()
2020-01-23 22:10:39.340 29 ERROR oslo_messaging.rpc.server File "/var/lib/kolla/venv/lib/python2.7/site-packages/oslo_utils/excutils.py", line 196, in force_reraise
2020-01-23 22:10:39.340 29 ERROR oslo_messaging.rpc.server six.reraise(self.type_, self.value, self.tb)
2020-01-23 22:10:39.340 29 ERROR oslo_messaging.rpc.server File "/var/lib/kolla/venv/lib/python2.7/site-packages/cinder/backup/manager.py", line 597, in restore_backup
2020-01-23 22:10:39.340 29 ERROR oslo_messaging.rpc.server self._run_restore(context, backup, volume)
2020-01-23 22:10:39.340 29 ERROR oslo_messaging.rpc.server File "/var/lib/kolla/venv/lib/python2.7/site-packages/cinder/backup/manager.py", line 659, in _run_restore
2020-01-23 22:10:39.340 29 ERROR oslo_messaging.rpc.server tpool.Proxy(device_path))
2020-01-23 22:10:39.340 29 ERROR oslo_messaging.rpc.server File "/var/lib/kolla/venv/lib/python2.7/site-packages/cinder/backup/drivers/ceph.py", line 1264, in restore
2020-01-23 22:10:39.340 29 ERROR oslo_messaging.rpc.server self._restore_volume(backup, target_volume, volume_file)
2020-01-23 22:10:39.340 29 ERROR oslo_messaging.rpc.server File "/var/lib/kolla/venv/lib/python2.7/site-packages/cinder/backup/drivers/ceph.py", line 1231, in _restore_volume
2020-01-23 22:10:39.340 29 ERROR oslo_messaging.rpc.server length, src_snap=restore_point)
2020-01-23 22:10:39.340 29 ERROR oslo_messaging.rpc.server File "/var/lib/kolla/venv/lib/python2.7/site-packages/cinder/backup/drivers/ceph.py", line 1026, in _full_restore
2020-01-23 22:10:39.340 29 ERROR oslo_messaging.rpc.server read_only=True))
2020-01-23 22:10:39.340 29 ERROR oslo_messaging.rpc.server File "rbd.pyx", line 2753, in rbd.Image.__init__ (/builddir/build/BUILD/ceph-14.2.1/build/src/pybind/rbd/pyrex/rbd.c:24354)
2020-01-23 22:10:39.340 29 ERROR oslo_messaging.rpc.server ImageNotFound: [errno 2] error opening image volume-18363c93-e577-470e-971a-678094bce943.backup.base at snapshot None
2020-01-23 22:10:39.340 29 ERROR oslo_messaging.rpc.server

# cat /etc/kolla/config/cinder/cinder-volume.conf
[DEFAULT]
enabled_backends=netapp06,rbd-1
debug = True

[rbd-1]
rbd_ceph_conf=/etc/ceph/ceph.conf
rbd_user=cinder
backend_host=rbd:volumes
rbd_pool=volumes
volume_backend_name=rbd-1
volume_driver=cinder.volume.drivers.rbd.RBDDriver
rbd_secret_uuid = {{ cinder_rbd_secret_uuid }}

[netapp06]
volume_backend_name=netapp06
nfs_shares_config=/etc/cinder/nfs_shares
volume_driver=cinder.volume.drivers.nfs.NfsDriver
nfs_snapshot_support = True
nas_secure_file_operations = False
image_volume_cache_enabled = True

# cat /etc/kolla/config/cinder/cinder-volume/ceph.client.cinder-backup.keyring
[client.cinder-backup]
        key = XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
(kolla) [root@kolla-deploy config]# cat /etc/kolla/config/cinder/cinder-volume/ceph.client.cinder.keyring
[client.cinder]
        key = XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
(kolla) [root@kolla-deploy config]#

# cat /etc/kolla/config/cinder/cinder-backup.conf
[DEFAULT]
backup_ceph_conf=/etc/ceph/ceph.conf
backup_ceph_user=cinder-backup
backup_ceph_chunk_size = 134217728
backup_ceph_pool=backups
backup_driver = cinder.backup.drivers.ceph.CephBackupDriver
backup_ceph_stripe_unit = 0
backup_ceph_stripe_count = 0
restore_discard_excess_bytes = true
(kolla) [root@kolla-deploy config]#

# cat /etc/kolla/config/cinder/cinder-backup/ceph.client.cinder.keyring
[client.cinder]
        key = XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
# cat /etc/kolla/config/cinder/cinder-backup/ceph.client.cinder-backup.keyring
[client.cinder-backup]
        key = XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
(kolla) [root@kolla-deploy config]#

# grep ^[^#] /etc/kolla/globals.yml
---
kolla_install_type: "source"
openstack_release: "train"
kolla_internal_vip_address: "172.16.120.154"
kolla_external_vip_address: "XXX.XXX.XXX.XXX"
kolla_external_fqdn: "cloud.xxxxxx.com.br"
kolla_enable_tls_external: "yes"
kolla_external_fqdn_cert: "{{ node_config }}/certificates/xxxxxx.pem"
kolla_external_fqdn_cacert: "{{ node_config }}/certificates/xxxxxx-ca.crt"
enable_cinder: "yes"
enable_cinder_backup: "yes"
enable_mariabackup: "yes"
enable_neutron_vpnaas: "yes"
enable_neutron_agent_ha: "yes"
glance_backend_ceph: "yes"
glance_backend_file: "no"
cinder_backend_ceph: "yes"
nova_backend_ceph: "yes"

description: updated
description: updated
Revision history for this message
Radosław Piliszek (yoctozepto) wrote :

Informing cinder - they might know how to approach the issue.

Changed in cinder:
status: New → Invalid
Changed in cinder:
status: Invalid → New
Revision history for this message
Keith Plant (kplant) wrote :

I tested this briefly and have a little more data to add.

The following procedure is successful:
1. Create cinder volume
2. Snapshot cinder volume
3. Create cinder backup of volume
4. Restore cinder backup

However, when getting nova involved things seem to break:
1. Create instance with cinder volume
2. Snapshot instance
3. Create cinder backup of volume (successful)
4. Restore cinder backup (failure)

Changed in nova:
status: New → Confirmed
Changed in cinder:
status: New → Confirmed
Changed in kolla-ansible:
status: New → Invalid
summary: - Cinder backup failed for restore volume snapshot
+ Cinder backup failed for restore volume snapshot (for instance snapshot)
Revision history for this message
Sean McGinnis (sean-mcginnis) wrote :

Maybe an issue with how Cinder is being deployed by Kolla? This doesn't appear to be a Cinder bug. If the Cinder service can't access the volume, that would point to either a configuration or an environment issue.

Revision history for this message
zzx (zhouzx) wrote :

The same issue.

Cinder backup created from snapshot restore failed
however, backup created from volume restore successed

Can anyone help me ?

Revision history for this message
Ivan Kolodyazhny (e0ne) wrote :

I'm able to reproduce this with devstack on the current master branch

Ivan Kolodyazhny (e0ne)
Changed in cinder:
assignee: nobody → Ivan Kolodyazhny (e0ne)
Ivan Kolodyazhny (e0ne)
Changed in cinder:
importance: Undecided → Medium
Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Fix included in openstack/cinder 18.0.0.0rc1

This issue was fixed in the openstack/cinder 18.0.0.0rc1 release candidate.

Revision history for this message
Gaël THEROND (gtherond) wrote :

Is this bug already fixed since Wallaby or does it still exist and just didn't make it after RC1 ?

Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Fix proposed to cinder (stable/victoria)

Fix proposed to branch: stable/victoria
Review: https://review.opendev.org/c/openstack/cinder/+/823170

Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Fix proposed to cinder (stable/ussuri)

Fix proposed to branch: stable/ussuri
Review: https://review.opendev.org/c/openstack/cinder/+/823171

Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Fix merged to cinder (stable/victoria)

Reviewed: https://review.opendev.org/c/openstack/cinder/+/823170
Committed: https://opendev.org/openstack/cinder/commit/239030522c391ac052a3cdd0b19ddaceb0a9fb59
Submitter: "Zuul (22348)"
Branch: stable/victoria

commit 239030522c391ac052a3cdd0b19ddaceb0a9fb59
Author: Ivan Kolodyazhny <email address hidden>
Date: Thu Dec 17 16:06:00 2020 +0000

    [RBD] Fix snapshot backup name

    We always create a full backup for snapshots. It means we have to
    generate a correct buckup name for a base backup.

    Closes-Bug: #1860739
    Change-Id: Ia08c252d747148e624f8d9e8b0e43f94773421e0
    (cherry picked from commit f04d905a63fe02f5a660e9852bdacbc2bc0f9233)

tags: added: in-stable-victoria
Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Fix included in openstack/cinder 17.3.0

This issue was fixed in the openstack/cinder 17.3.0 release.

Gaël THEROND (gtherond)
Changed in cinder:
status: Confirmed → Fix Released
Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Fix merged to cinder (stable/ussuri)

Reviewed: https://review.opendev.org/c/openstack/cinder/+/823171
Committed: https://opendev.org/openstack/cinder/commit/a1dfa8b20b464c105eee1b328e09394db4b65b71
Submitter: "Zuul (22348)"
Branch: stable/ussuri

commit a1dfa8b20b464c105eee1b328e09394db4b65b71
Author: Ivan Kolodyazhny <email address hidden>
Date: Thu Dec 17 16:06:00 2020 +0000

    [RBD] Fix snapshot backup name

    We always create a full backup for snapshots. It means we have to
    generate a correct buckup name for a base backup.

    Closes-Bug: #1860739
    Change-Id: Ia08c252d747148e624f8d9e8b0e43f94773421e0
    (cherry picked from commit f04d905a63fe02f5a660e9852bdacbc2bc0f9233)
    (cherry picked from commit 239030522c391ac052a3cdd0b19ddaceb0a9fb59)

tags: added: in-stable-ussuri
Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Fix included in openstack/cinder ussuri-eol

This issue was fixed in the openstack/cinder ussuri-eol release.

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.