Reference counter for protected snapshots


For application dynamically/frequently creating/updating later cloned virtual machine
template it may be useful to run periodic protected snapshots garbage collection of no
longer used templates i.e. protected snapshots whit no attached clones.
This currently implies scanning the cluster for potential clones like "list children"
does which is a potentially expensive operation. In this case, a clone reference counter
would be perfectly fine to decide whether the snap may be unprotected.

Previously protected snapshots could fallback to the "list children" behavior. Any call
to "list children" could possibly init the reference counter on these snapshots.


Interested Parties

Current Status

Removing protected RBD snapshots is potentially extremely expensive as we need to scan the whole cluster for linked clones

Detailed Description

Work items

Coding tasks

  1. add ref counter in image header
  2. add compatibility layer / lazy creation for snapshots created earlier
  3. Task 3

Build / release tasks

  1. Task 1
  2. Task 2
  3. Task 3

Documentation tasks

  1. Task 1
  2. Task 2
  3. Task 3

Deprecation tasks

  1. Task 1
  2. Task 2
  3. Task 3