Volume group restore from remote object store
Techniques are provided for volume group backup, volume group restore, and volume group garbage collection for volume groups backed up to an object store. A volume group workflow is implemented to orchestrate individual consistent volume workflows that are separately and individually implemented by nodes hosting constituent volumes of a volume group. The volume group workflow and the individual consistent volume workflows are performed to back up the volume group to the object store, restore a volume group backup from the object store to a restore destination, and/or perform garbage collection on slots of objects storing data unique to a volume group backup to delete.
1 . A method comprising:
receiving a request to perform a restore operation for a subset of data of a volume group backed up to an object store as a volume group backup composed of a plurality of constituent volume backups of a set of constituent volumes forming the volume group;
evaluating a metafile to identify geometry information describing how the volume group is composed of the set of constituent volumes, including a first constituent volume and a second constituent volume, backed up to the object store as the plurality of constituent volume backups;
generating a restore target based upon the geometry information, wherein geometry information is used to create a first restore target constituent volume and a second restore target constituent volume as the restore target;
utilizing the metafile generate a first constituent volume restore workflow for the first restore target constituent volume and a second constituent volume restore workflow for the second restore target constituent volume; and
implementing, by one or more nodes, the first constituent volume restore workflow and the second constituent volume restore workflow to restore the subset of data of the volume group to the restore target.
2 . The method of claim 1 , comprising:
evaluating the metafile to identify:
a group root info object representing a volume group endpoint within the object store;
a constituent volume root info object per constituent volume endpoint within the object store; and
a group snapinfo object per constituent volume backup in the object store, wherein the group snapinfo objects are populated with group properties of the volume group backup; and
utilizing the group root info object, the constituent volume root info objects, and the group snapinfo object to generate the one or more constituent volume restore workflows.
3 . The method of claim 1 , comprising:
restore a constituent volume or a single file of the volume group as the subset of data.
4 . The method of claim 1 , comprising:
incrementally restore the subset of data.
5 . The method of claim 1 , comprising:
restore a directory or qtree of the volume group as the subset of data.
6 . The method of claim 1 , comprising:
restore the subset of data on-demand.
7 . A non-transitory machine readable medium comprising instructions, which when executed by a machine, causes the machine to:
receive a request to perform a restore operation for a subset of data of a volume group backed up to an object store as a volume group backup composed of a plurality of constituent volume backups of a set of constituent volumes forming the volume group;
evaluate a metafile to identify geometry information describing how the volume group is composed of the set of constituent volumes, including a first constituent volume and a second constituent volume, backed up to the object store as the plurality of constituent volume backups;
generate a restore target based upon the geometry information, wherein geometry information is used to create a first restore target constituent volume and a second restore target constituent volume as the restore target;
utilize the metafile generate a first constituent volume restore workflow for the first restore target constituent volume and a second constituent volume restore workflow for the second restore target constituent volume; and
implement, by one or more nodes, the first constituent volume restore workflow and the second constituent volume restore workflow to restore the subset of data of the volume group to the restore target.
8 . The non-transitory machine readable medium of claim 7 , wherein the instructions cause the machine to:
evaluate the metafile to identify:
a group root info object representing a volume group endpoint within the object store;
a constituent volume root info object per constituent volume endpoint within the object store; and
a group snapinfo object per constituent volume backup in the object store, wherein the group snapinfo objects are populated with group properties of the volume group backup;
utilize the group root info object, the constituent volume root info objects, and the group snapinfo object to generate the one or more constituent volume restore workflows.
9 . The non-transitory machine readable medium of claim 7 , wherein the instructions cause the machine to:
incrementally restore the subset of data.
10 . The non-transitory machine readable medium of claim 7 , wherein the instructions cause the machine to:
restore a directory or qtree of the volume group as the subset of data.
11 . The non-transitory machine readable medium of claim 7 , wherein the instructions cause the machine to:
restore the subset of data on-demand.
12 . A computing device comprising:
a memory comprising machine executable code; and
a processor coupled to the memory, the processor configured to execute the machine executable code to cause the processor to:
receive a request to perform a restore operation for a subset of data of a volume group backed up to an object store as a volume group backup composed of a plurality of constituent volume backups of a set of constituent volumes forming the volume group;
evaluate a metafile to identify geometry information describing how the volume group is composed of the set of constituent volumes, including a first constituent volume and a second constituent volume, backed up to the object store as the plurality of constituent volume backups;
generate a restore target based upon the geometry information, wherein geometry information is used to create a first restore target constituent volume and a second restore target constituent volume as the restore target;
utilize the metafile generate a first constituent volume restore workflow for the first restore target constituent volume and a second constituent volume restore workflow for the second restore target constituent volume; and
implement, by one or more nodes, the first constituent volume restore workflow and the second constituent volume restore workflow to restore the subset of data of the volume group to the restore target.
13 . The computing device of claim 12 , wherein the machine executable code causes the processor to:
evaluate the metafile to identify a group root info object representing a volume group endpoint within the object store; and
utilize the group root info object to generate the one or more constituent volume restore workflows.
14 . The computing device of claim 12 , wherein the machine executable code causes the processor to:
evaluate the metafile to identify a constituent volume root info object per constituent volume endpoint within the object store; and
utilize the constituent volume root info object to generate the one or more constituent volume restore workflows.
15 . The computing device of claim 12 , wherein the machine executable code causes the processor to:
evaluate the metafile to identify a group snapinfo object per constituent volume backup in the object store, wherein the group snapinfo objects are populated with group properties of the volume group backup; and
utilize the group snapinfo object to generate the one or more constituent volume restore workflows.
16 . The computing device of claim 12 , wherein the machine executable code causes the processor to:
restore a constituent volume of the volume group as the subset of data using a group root info object.
17 . The computing device of claim 12 , wherein the machine executable code causes the processor to:
restore a constituent volume of the volume group as the subset of data using a constituent volume root info object.
18 . The computing device of claim 12 , wherein the machine executable code causes the processor to:
restore a constituent volume of the volume group as the subset of data using a group snapinfo object.
19 . The computing device of claim 12 , wherein the machine executable code causes the processor to:
incrementally restore the subset of data.
20 . The computing device of claim 12 , wherein the machine executable code causes the processor to:
restore a directory or qtree of the volume group as the subset of data.