[storage] how to find if a snapshot is in preview based on storage domain metadata only?
by Germano Veit Michel
Hi,
Is there a reliable way to figure out if a snapshot is in preview only
using information obtained from the storage domain metadata?
I'm trying to find a way to distinguish a problematic snapshot chain
(double parent) from a snapshot in preview in order to improve dump-volume
chains.
Currently dump-volume-chains throws an error (DuplicateParentError) if a
snapshot is in preview for the image, as there is a 'Y' shape split in the
chain
with 2 volumes (previous chain + preview) pointing to a common parent:
image: dff0a0c0-b731-4e5b-9f32-d97310ca40de
Error: more than one volume pointing to the same parent volume
e.g: (_BLANK_UUID<-a), (a<-b), (a<-c)
Unordered volumes and children:
- e6c7bec0-53c6-4729-a4a0-a9b3ef2b8c38 <-
5eb2b29d-82d6-4337-8511-3c86705d566e
status: OK, voltype: LEAF, format: COW, legality: LEGAL,
type: SPARSE, capacity: 1073741824, truesize: 1073741824
- e0475853-4514-4464-99e7-b185cce9b67d <-
deceff83-9d88-4f87-8304-d5bf74d119b1
status: OK, voltype: LEAF, format: COW, legality: LEGAL,
type: SPARSE, capacity: 1073741824, truesize: 1073741824
- e6c7bec0-53c6-4729-a4a0-a9b3ef2b8c38 <-
e0475853-4514-4464-99e7-b185cce9b67d
status: OK, voltype: INTERNAL, format: COW, legality: LEGAL,
type: SPARSE, capacity: 1073741824, truesize: 1073741824
- 00000000-0000-0000-0000-000000000000 <-
e6c7bec0-53c6-4729-a4a0-a9b3ef2b8c38
status: OK, voltype: INTERNAL, format: RAW, legality: LEGAL,
type: PREALLOCATED, capacity: 1073741824, truesize: 1073741824
From the engine side it's easy, but I'd need to solve this problem using
only metadata from the storage.
The only thing I could think of is that one of the volumes pointing to the
common parent has voltype LEAF. Any better ideas?
Thanks,
Germano
4 years, 2 months