[Bug 1969643] Re: RBD: Unable to delete a volume which has snapshot/volume children

Chengen Du 1969643 at bugs.launchpad.net
Tue Aug 13 02:55:35 UTC 2024


Hi @hopem,

Thanks for your suggestion on this issue. For the proposed upstream
patch that adds a configuration to enable RBD flatten operations during
delete_volume/delete_snapshot calls, we've currently set the default to
false. However, it may be challenging to get upstream approval,
especially with the default set to false, as this would disable the
feature by default.

If we decide to submit the patch upstream first, I will change the
default option to true and see if upstream is more willing to accept it.
In the meantime, I'll reach out to support to determine if backporting
this commit is still necessary, considering that the customer may
already have a workaround.

-- 
You received this bug notification because you are a member of Ubuntu
OpenStack, which is subscribed to cinder in Ubuntu.
https://bugs.launchpad.net/bugs/1969643

Title:
  RBD: Unable to delete a volume which has snapshot/volume children

Status in Cinder:
  Fix Released
Status in cinder package in Ubuntu:
  Fix Released
Status in cinder source package in Jammy:
  Incomplete
Status in cinder source package in Mantic:
  Won't Fix
Status in cinder source package in Noble:
  Fix Released
Status in cinder source package in Oracular:
  Fix Released

Bug description:
  [Impact]
  Deleting a volume will fail if it has snapshot or volume children, resulting in an ImageBusy error.

  [Fix]
  Upstream has a patch that uses RBD flatten operations to break dependencies between volumes and snapshots, reducing failures when using RBD volume clones and snapshots.

  commit 1a675c9aa178c6d9c6ed10fd98f086c46d350d3f
  Author:     Eric Harney <eharney at redhat.com>
  CommitDate: Fri Dec 1 10:17:05 2023 -0500

      RBD: Flattening of child volumes during deletion

  [Test Plan]
  Here are the common steps for testing.
  1. Prepare an OpenStack environment with cinder-ceph
  2. Create a volume named "vol"
  openstack volume create --image jammy --size 10 vol
  3. Create a snapshot of the volume "vol"
  openstack volume snapshot create --volume vol vol-snap
  4. Create a volume named "vol-copy" from the snapshot
  openstack volume create --snapshot vol-snap vol-copy
  5. Delete the snapshot and then delete the volume "vol"
  openstack volume snapshot delete vol-snap
  openstack volume delete vol
  6. Confirm that the volume "vol" is successfully deleted
  or deletion failed (depending on the two scenarios below)
  openstack volume list

  There are two test scenarios:
  - Enable RBD flatten operations:
  1. Use `juju ssh` to log in to the cinder-volume and add "enable_flatten_children_deletion = True" in the cinder-ceph section of /etc/cinder/cinder.conf.
  2. Restart the cinder-volume service using the command `systemctl restart cinder-volume`.
  3. Follow the common steps, and all steps should pass.
  - Disable RBD flatten operations:
  1. Ensure that "enable_flatten_children_deletion = True" is not present in the cinder-ceph section of /etc/cinder/cinder.conf.
  2. Follow the common steps, and the process should fail at step 5 with an ImageBusy error.

  [Where problems could occur]
  The patch primarily modifies the workflow for volume deletion when using RBD as the backend and adds a retry mechanism for unprotecting snapshots during snapshot deletion.
  To prevent any performance regressions, we have also introduced a configuration option to enable the RBD flatten operations, which defaults to false.
  If the patch has any undiscovered issues, it will only affect volume deletion. Other functionalities or non-RBD backends will not be impacted.

To manage notifications about this bug go to:
https://bugs.launchpad.net/cinder/+bug/1969643/+subscriptions




More information about the Ubuntu-openstack-bugs mailing list