INCORPORATION BY REFERENCE TO RELATED APPLICATIONS

Any and all priority claims identified in the Application Data Sheet, or any correction thereto, are hereby incorporated by reference under 37 CFR 1.57.

BACKGROUND

Businesses worldwide recognize the commercial value of their data and seek reliable, cost-effective ways to protect the information stored on their computer networks while minimizing impact on productivity. Protecting information is often part of a routine process that is performed within an organization.

A company might back up critical computing systems such as databases, file servers, web servers, and so on as part of a daily, weekly, or monthly maintenance schedule. The company may similarly protect computing systems used by each of its employees, such as those used by an accounting department, marketing department, engineering department, and so forth.

Given the rapidly expanding volume of data under management, companies also continue to seek innovative techniques for managing data growth, in addition to protecting data. For instance, companies often implement migration techniques for moving data to lower cost storage over time and data reduction techniques for reducing redundant data, pruning lower priority data, etc.

Enterprises also increasingly view their stored data as a valuable asset. Along these lines, customers are looking for solutions that not only protect and manage, but also leverage their data. For instance, solutions providing data analysis capabilities, improved data presentation and access features, and the like, are in increasing demand.

SUMMARY

Snapshot technology and management can vary by storage platform, which can lead to significant administrative burden. For instance, it can be desirable to integrate a variety of hardware storage devices (e.g., disk arrays) with data storage and management software. This allows users to exploit the functionality of the data management software. For instance, some data storage and management systems described herein provide policy-based data protection functions (e.g., backup, archiving, replication, migration, restore, etc.) in an application-consistent manner. However, integrating a selected storage product (e.g., storage hardware such as a hardware snapshot-capable storage array) with such data management software often involves extensive customized scripting, monitoring and maintenance, resulting in added complexity and cost.

Some data storage and management systems provide customized, built-in support for selected hardware storage products and corresponding snapshot or other functionality. However, given the large number of vendors and associated products, incorporating this type of customized, built-in support provides a limited solution.

A data storage system according to certain embodiments includes a host computing device in communication with a first storage device of a first type, the first storage device configured to perform snapshot operations. The system can includes at least one software application executing on a host computing device and generating production data. The system includes a snapshot management module executing on one or more processors and configured to: receive a request to perform a snapshot operation involving a stored version of at least a portion of the production data that resides on the first storage device; process the request to identify one or more functions for performing the requested snapshot operation and that are defined at least in part by a programming interface specification; and invoke instances of the one or more identified functions that are in compliance with the programming interface specification and are implemented specifically for storage devices of the first type. A snapshot engine residing on the first storage device is responsive to the invoking of the instances of the one or more identified functions to perform the requested snapshot operation.

According to certain aspects, a method is provided for performing one or more snapshot operations on production data generated in a data storage system. The method can include receiving a request to perform a snapshot operation involving a stored version of at least a portion of production data that resides on a first storage device of a first type, the production data generated by at least one software application executing on a host computing device that is in communication with the first storage device, the first storage device configured to perform snapshot operations. The method can also include processing the request using one or more computer processors to identify one or more functions for performing the requested snapshot operation and that are defined at least in part by a programming interface specification. The method further includes invoking, using one or more computer processors, instances of the one or more identified functions that are in compliance with the programming interface specification and are implemented specifically for storage devices of the first type. A snapshot engine residing on the first storage device is responsive to the invoking of the instances of the one or more identified functions to perform the requested snapshot operation.

