[Bug 1969643] Re: RBD: Unable to delete a volume which has snapshot/volume children
Chengen Du
1969643 at bugs.launchpad.net
Thu Jul 4 02:43:21 UTC 2024
@mfo I apologize for the haste earlier and have now modified the test
plan.
** Description changed:
[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
- # ^ This would fail with ImageBusy previously (see patch's "For example")
openstack volume delete vol
- # ^ This would possibly fail previously (see patch's step "4.")
6. Confirm that the volume "vol" is successfully deleted
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.
If the patch has any undiscovered issues, it will only affect volume deletion. Other functionalities or non-RBD backends will not be impacted.
** Changed in: cinder (Ubuntu Jammy)
Status: Incomplete => In Progress
** Description changed:
[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
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.
--
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:
In Progress
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
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