Architecture for supporting sparse volumes
First Claim
Patent Images
1. A first storage system that supports remote retrieval of data, comprising:
- a storage operating system executed by a processor, the storage operating system configured to generate a sparse volume, wherein the sparse volume comprises a space reserved data container with an appearance that a full restore was completed, the storage operating system further configured to mark a block pointer of the sparse volume with a value to identify that a block of the sparse volume is not stored on the first storage system and further configured to retrieve the data of the block at a later time than initialization of the sparse volume using a protocol configured for remote retrieval of the data of the block from a backing store, wherein the backing store is a second storage system that stores backup data and is separate from the first storage system; and
a protocol module operatively interconnected with the storage operating system and implementing the protocol configured for remote retrieval of the data of the block from the backing store in response to a determination that the block pointer of the sparse volume has the value, the protocol module further configured to return the data of the block to the sparse volume once the data of the block has been retrieved from the backing store.
2 Assignments
0 Petitions
Accused Products
Abstract
An architecture, including a file-level protocol, for supporting sparse volumes on a storage system is provided. The file-level protocol provides coherency checking for use in retrieving data stored on a backing store remote from a storage system.
391 Citations
32 Claims
-
1. A first storage system that supports remote retrieval of data, comprising:
-
a storage operating system executed by a processor, the storage operating system configured to generate a sparse volume, wherein the sparse volume comprises a space reserved data container with an appearance that a full restore was completed, the storage operating system further configured to mark a block pointer of the sparse volume with a value to identify that a block of the sparse volume is not stored on the first storage system and further configured to retrieve the data of the block at a later time than initialization of the sparse volume using a protocol configured for remote retrieval of the data of the block from a backing store, wherein the backing store is a second storage system that stores backup data and is separate from the first storage system; and a protocol module operatively interconnected with the storage operating system and implementing the protocol configured for remote retrieval of the data of the block from the backing store in response to a determination that the block pointer of the sparse volume has the value, the protocol module further configured to return the data of the block to the sparse volume once the data of the block has been retrieved from the backing store. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 23, 24)
-
-
22. The system of clam 1 wherein the storage operating system is further configured to assign pointer values to indirect blocks of data retrieved from the backing store and stored locally.
-
25. A method for remotely retrieving data by a first storage system from a backing store using a protocol, comprising:
-
generating a sparse volume within the first storage system at a first time, wherein the sparse volume comprises a space reserved data container with an appearance that a full restore was completed; initializing the sparse volume to accept data access requests at a second time, wherein the first time is before the second time; initializing, at a third time, a connection between the first storage system and the backing store, wherein the backing store is a second storage system that stores a backup copy of the data and is separate from the first storage system and the second time is before the third time; marking a block pointer of the sparse volume with a value to identify that a block of the sparse volume is not stored on the first storage system; sending, in response to a determination that the block pointer of the sparse volume has the value, one or more data access requests to the backing store to retrieve data of the block not stored on the first storage system; in response to the one or more data access requests, retrieving the data of the block from the backing store; sending one or more data access responses to the first storage system, where the one or more data access responses comprise the data of the block; and storing the data of the block in the sparse volume within the first storage system. - View Dependent Claims (26, 27)
-
-
28. A computer readable storage medium storing executable program instructions executed by a processor, comprising:
-
program instructions that generate a sparse volume within a first storage system, wherein the sparse volume comprises a space reserved data container with an appearance that a full restore was completed; program instructions that initialize the sparse volume to accept data access requests at a second time, wherein the first time is before the second time; program instructions that initialize at a third time, a connection between the first storage system and a backing store, wherein the backing store is a second storage system that stores a backup copy of the data and is separate from the first storage system and the second time is before the third time; program instructions that mark a block pointer of the sparse volume with a value to identify that a block of the sparse volume is not stored on the first storage system; program instructions that send, in response to a determination that the block pointer of the sparse volume has the value, one or more data access requests to the backing store to retrieve data of the block not stored on the first storage system; in response to the one or more data access requests, program instructions that retrieve the data of the block from the backing store; program instructions that send one or more data access responses to the first storage system, wherein the one or more data access responses comprise the data of the block; and program instructions that store the data of the block in the sparse volume within the first storage system. - View Dependent Claims (29)
-
-
30. A method, comprising:
-
generating a sparse volume within a first storage system at a first time, wherein the sparse volume comprises a space reserved data container with an appearance that a full restore was completed; marking a block pointer of the sparse volume with a value to identify that one or more blocks of the sparse volume are not stored on the first storage system; initializing the sparse volume to accept data access requests at a second time, wherein the first time is before the second time; identifying, at a third time, the one or more data blocks to retrieve from the second storage system, wherein the second time is before the third time; initializing a connection between the first storage system and the second storage system, wherein the second storage system stores a backup copy of data stored on the first storage system and is separate from the first storage system; retrieving the one or more data blocks not stored on the first storage system from the second storage system in response to a determination that the block pointer of the sparse volume has the value; and storing the one or more data blocks in the sparse volume within the first storage system.
-
-
31. A computer data storage system, comprising:
-
a first storage system configured with a file system executed by a processor, the file system configured to create a sparse volume, wherein the sparse volume comprises a space reserved data container with an appearance that a full restore was completed; a backing store configured to store a backup copy of data stored on the first storage system, wherein the backing store is a second separate storage system located in a different location than the first storage system; the file system further configured to mark a block pointer of the sparse volume with a value to identify, at a later time than creating the sparse volume, one or more blocks of data that are not stored on the first storage system, the file system further configured to retrieve the data using a protocol, wherein the protocol is configured to remotely retrieve the one or more blocks of data from the backing store; and a protocol module operatively interconnected with the file system and implementing the protocol configured for remote retrieval of the one or more blocks of data from the backing store in response to a determination that the block pointer of the sparse volume has the value, the protocol module further configured to return the one or more blocks of data to the sparse volume once the one or more blocks of data have been retrieved from the backing store.
-
-
32. A computer data storage system, comprising:
-
a first storage system configured with a plurality of storage devices organized to form an aggregate and a plurality of virtual volumes stored within the aggregate; a backing store configured to store a backup copy of data stored on the first storage system; an operating system executed by a processor of the first storage system, the operating system configured to generate a sparse volume and allow data access requests to the sparse volume, wherein the sparse volume comprises a space reserved data container with an appearance that a full restore was completed, wherein the operating system is further configured to mark a block pointer of the sparse volume with a value to identify that a block of the sparse volume is not stored on the first storage system; and a protocol module operatively interconnected with the operating system and implementing the protocol configured for remote retrieval of block data from the backing store at a later time than generating the sparse volume, in response to a determination that the block pointer of the sparse volume has the value, the protocol module further configured to return the block data to the sparse volume once the block data has been retrieved from the backing store.
-
Specification