[rbd] VM created from snapshot becomes a child of that RBD image
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
Glance |
Fix Released
|
Undecided
|
Unassigned | ||
OpenStack Compute (nova) |
Invalid
|
Undecided
|
Unassigned |
Bug Description
When I create an instance from a snapshot, the underlying RBD image of the new instance is actually a child of the snapshot in RBD.
Then I can't delete that snapshot because in Ceph it has children and is protected, thus Glance will throw this error: "Image <ID> could not be deleted because it is in use: The image cannot be deleted because it is in use through the backend store outside of Glance."
Steps to reproduce:
1. Create a server
$ openstack server create server-1
2. Create a snapshot from that server
$ openstack server image create $SERVER_1_ID
3. Create a new server from the snapshot
$ openstack server create --image $SNAPSHOT_ID server-2
4. Try to delete the snapshot, it will throw the above error from Glance (it is in use through the backend store outside of Glance.)
$ openstack image delete $SNAPSHOT_ID
5. Check the snapshot image in RBD, it will have the new instance's disk as children.
$ rbd children images/$SNAPSHOT_ID
> vms/<server-2>_disk
This doesn't happen when creating instances from images uploaded through glance, but only when using images created with `openstack server image create`
Environment
- Openstack Xena (Nova 17.6.0)
- Libvirt with KVM virt_type
- RBD for ephemeral storage
- Ceph pacific
description: | updated |
description: | updated |
Changed in glance: | |
status: | New → Fix Released |
Up.