The original design of external snapshots allows esnap clone lvols to successfully open before the external snapshot is present. A logical volume with a missing external snapshot is referred to as degraded. It was done this way because:
- It is hard for the SPDK administrator to control the order that
examine_config
callbacks will be called. - The consumer of an esnap clone may not actually need to perform reads from the external snapshot because the clusters containing the requested blocks may have already been allocated in the esnap clone's blob.
- Esnap clones may be at the root of a deep tree of snapshots and clones. It would be complex to delay the online of all of these until the external snapshot is available.
- Immediate registration of bdevs simplifies management of degraded lvols.
bdev_get_bdevs
allows degraded lvols to be seen. The module-specific section indicates when it is degraded.
bdev_lvol_delete
allows degraded esnap c