Volume snapshot inheritance and its consequences

Performing a volume snapshot is a common form of securing your data against loss. There is nothing wrong with that, but you should remember what the consequences are.

To illustrate the situation, we will present it on an example: We have created a volume called “Volume A”.

../_images/volsnap1.png

Next we create an “SA” snapshot from the “VA” volume.

../_images/volsnap2.png

From the OpenStack dashboard we can create new volumes “Volume B” and “Volume C” based on the previously created snapshot “Snapshot A”.

../_images/volsnap3.png

At the moment we have two new volumes which are based on the “Snapshot A” snapshot. Suppose we no longer need the volume called “Volume A” and we want to delete it.

../_images/volsnap4.png

Unfortunately, its deletion will not be possible directly because to delete a given volume, we have to delete its snapshots.

../_images/volsnap5.png

So we must first delete the snapshot “Snapshot A” and then the volume “Volume A”.

However, this will also not be possible due to the fact that the “Snapshot A” snapshot is the source for 2 volumes “Volume B” and “Volume C”.

To delete a volume from which snapshots volumes were created, we must also delete all snapshots of this volume.

In conclusion, when creating new volumes from a snapshot, remember about inheritance. Snapshot “Snapshot A” is a parent for the volumes (children) “Volume B” and “Volume C” and if we want to delete the volume “Volume A”, we have to do it from the youngest generation (Volume B and Volume C).

Backups are another solution and they do not create such bonds as snapshots and may exist even after the volume from which the backup was created has been deleted. Please see How to Backup an Instance and Download it to the Desktop OpenStack Hosting.