mirror of
https://github.com/vmware-tanzu/velero.git
synced 2026-09-13 11:34:54 +00:00
Note why Case 2 storages require inherited Retain, not just permit it
For a Case 2 driver (design/block-data-mover/block-data-mover.md), such as Ceph RBD, rbd snap diff needs the base and target snapshots in the same clone chain. Delete destroys the base as soon as the backup completes, so the next incremental's delta query fails and degrades to an allocated-blocks backup (or a full whole-device transfer without that fix). Inheriting Retain there isn't an optional nicety, it's what makes incrementals possible at all. Signed-off-by: Tiger Kaovilai <tkaovila@redhat.com>
This commit is contained in:
@@ -585,6 +585,14 @@ func (e *csiSnapshotExposer) createBackupVSC(ctx context.Context, ownerObject co
|
||||
// of forcing Delete, otherwise a user who configured Retain on the
|
||||
// VolumeSnapshotClass still loses the snapshot when the backup VSC
|
||||
// is cleaned up.
|
||||
//
|
||||
// For Case 2 storages per the design (design/block-data-mover/block-data-mover.md,
|
||||
// e.g. Ceph RBD), inheriting Retain is not just an option but a requirement for
|
||||
// incrementals to work at all: rbd snap diff needs the base and target snapshots
|
||||
// in the same clone chain, so Delete destroys the base as soon as this backup
|
||||
// completes. The next incremental's delta query then fails and degrades to an
|
||||
// allocated-blocks backup (see the CBT tier ladder) or, without that fix, a full
|
||||
// whole-device transfer.
|
||||
DeletionPolicy: snapshotVSC.Spec.DeletionPolicy,
|
||||
Driver: snapshotVSC.Spec.Driver,
|
||||
VolumeSnapshotClassName: snapshotVSC.Spec.VolumeSnapshotClassName,
|
||||
|
||||
Reference in New Issue
Block a user