TECHNICAL FIELD

The subject matter of this disclosure is generally related to data storage systems and more particularly to targetless snapshots.

BACKGROUND

High capacity data storage systems such as storage area networks (SANs) are used to maintain large data sets and contemporaneously support many users. A SAN includes a network of interconnected computing nodes that manage access to arrays of drives. The computing nodes service block-based input-output (IO) commands from applications that run on host servers. SANs and other types of high capacity storage systems create various types of copies of datasets for data recovery and other purposes. A clone is a complete copy of a storage object such as a logical volume of storage. In contrast, snapshots (snaps) are incremental copies of a storage object. Each snap only represents the changes made since some prior point in time, e.g. since creation of the most recent snap of the storage object. Advantageously, snaps are smaller than the storage object being snapped, so snap generation requires less resources than creating a clone or other type of complete copy of the storage object.

A common technique for generating a snap of a source volume is to write changed data to a target volume (snap volume). The snap volume may be accessible to the host servers that are supported by the storage system. However, creating and managing a snap volume requires memory and other resources. Further, a single SAN may have many snap volumes, so the total amount of resources required for snaps may be significant. Targetless snaps require less resources to create than standard volume-based snaps. Targetless snaps are created as changes are made to the storage object being snapped. As new writes are made, snapshot deltas are created using tables and pointers to the original data. The snapshot deltas are accumulated over time to preserve the point-in-time and create a targetless snap. Because the snapshot deltas are not stored on a snap volume, targetless snapshots require fewer resources than standard volume-based snapshots. However, the lack of a snap volume also prevents targetless snaps from being discoverable and accessible to host servers unless the targetless snap is linked to a logical volume.

SUMMARY

All examples, aspects and features mentioned in this document can be combined in any technically possible way.

An apparatus in accordance with some implementations of the invention may comprise: a data storage system comprising a plurality of compute nodes interconnected with a plurality of drives; a storage object on which data is logically stored, the storage object being backed by the drives; and a targetless snapshot scheduler than generates targetless snapshots of the storage object, the targetless snapshot scheduler comprising: a plurality of policy objects, each policy object defining a corresponding targetless snapshot schedule; metadata that associates selected ones of the policy objects with the storage object; and instructions that independently create targetless snapshots of the storage object for each targetless snapshot schedule associated with the policy objects associated with the storage object. In some implementations each policy object comprises a count that indicates a maximum number of targetless snapshots to be maintained in accordance with the targetless snapshot schedule associated with the policy object. In some implementations each policy objects comprises a time interval that indicates an elapsed time between creation of successive targetless snapshots in accordance with the targetless snapshot schedule associated with the policy object. In some implementations each policy objects comprises a schedule ID that identifies the targetless snapshot schedule associated with the policy object. In some implementations the targetless snapshot scheduler comprises instructions that use metadata to learn which schedule IDs are associated with a selected storage object. In some implementations the targetless snapshot scheduler comprises instructions that use the learned schedule IDs to identify corresponding policy objects. In some implementations the targetless snapshot scheduler comprises instructions that apply schedules defined by the identified policy objects to the selected storage object. In some implementations the targetless snapshot scheduler comprises instructions that create new targetless snapshots at time intervals specified by the identified policy objects. In some implementations the targetless snapshot scheduler comprises instructions that discard an oldest snapshot created under a schedule if a count specified for that schedule would be exceeded by creating a new targetless snapshot under that schedule.

A method in accordance with some implementations of the invention may comprise: in a data storage system comprising a plurality of compute nodes interconnected with a plurality of drives and a storage object on which data is logically stored, the storage object being backed by the drives: maintaining a plurality of policy objects, each policy object defining a corresponding targetless snapshot schedule; associating selected ones of the policy objects with the storage object; and independently creating targetless snapshots of the storage object for each targetless snapshot schedule associated with the policy objects associated with the storage object. Some implementations comprise setting a count that indicates a maximum number of targetless snapshots to be maintained in accordance with the targetless snapshot schedule associated with one of the policy objects. Some implementations comprise setting a time interval that indicates an elapsed time between creation of successive targetless snapshots in accordance with the targetless snapshot schedule associated with one of the policy objects. Some implementations comprise creating a schedule ID that identifies the targetless snapshot schedule associated with one of the policy objects. Some implementations comprise using metadata to learn which schedule IDs are associated with a selected storage object. Some implementations comprise using the learned schedule IDs to identify corresponding policy objects. Some implementations comprise applying schedules defined by the identified policy objects to the selected storage object. Some implementations comprise creating new targetless snapshots at time intervals specified by the identified policy objects. Some implementations comprise discarding an oldest snapshot created under a schedule if a count specified for that schedule would be exceeded by creating a new targetless snapshot under that schedule.

With a computer-readable storage medium that stores instructions that when executed by a computer cause the computer to perform a method for using a computer system to create targetless snapshots, the method may comprise: maintaining a plurality of policy objects, each policy object defining a corresponding targetless snapshot schedule; associating selected ones of the policy objects with a storage object; and independently creating targetless snapshots of the storage object for each targetless snapshot schedule associated with the policy objects associated with the storage object. The method may further comprise: learning schedule IDs associated with a selected storage object; using the learned schedule IDs to identify corresponding policy objects; applying schedules defined by the identified policy objects to the selected storage object; creating new targetless snapshots at time intervals specified by the identified policy objects; and discarding an oldest snapshot created under a schedule if a count specified for that schedule would be exceeded by creating a new targetless snapshot under that schedule.

Other aspects, features, and implementations may become apparent in view of the detailed description and figures.

