System and method for restoring data on demand for instant volume restoration
First Claim
Patent Images
1. A system, comprising:
- a storage operating system executed by a processor on a first storage system, the storage operating system configured to detect a failed volume served by the first storage system;
means for detecting the failed volume served by the first storage system, the first storage system executing the storage operating system;
means for replacing the failed volume with a sparse volume served by the first storage system, wherein the sparse volume comprises at least one pointer of a buffer tree referencing data that is not stored locally on a volume served by the first storage system;
means for storing volume infrastructure metadata within the sparse volume, wherein the volume infrastructure metadata is copied from a second storage system;
means for marking the at least one pointer of the buffer tree within the sparse volume with a pointer value, wherein the pointer value identifies that the data referenced by the at least one pointer of the buffer tree is stored on a volume served by the second storage system;
means for waiting until the data referenced by the at least one pointer of the buffer tree within the sparse volume is requested by scanning the at least one pointer of the buffer tree; and
means for receiving a request for the data referenced by the at least one pointer of the buffer tree marked with the pointer value and copying, in response to receiving the request, the data referenced by the at least one pointer from the second storage system to the sparse volume.
2 Assignments
0 Petitions
Accused Products
Abstract
A technique is disclosed for restoring data of sparse volumes, where one or more block pointers within the file system structure are marked as ABSENT, and fetching the appropriate data from an alternate location on demand. Client data access requests to the local storage system initiate a restoration of the data from a backing store as required. A demand generator can also be used to restore the data as a background process by walking through the sparse volume and restoring the data of absent blocks. A pump module is also disclosed to regulate the access of the demand generator. Once all the data has been restored, the volume contains all data locally, and is no longer a sparse volume.
128 Citations
38 Claims
-
1. A system, comprising:
-
a storage operating system executed by a processor on a first storage system, the storage operating system configured to detect a failed volume served by the first storage system; means for detecting the failed volume served by the first storage system, the first storage system executing the storage operating system; means for replacing the failed volume with a sparse volume served by the first storage system, wherein the sparse volume comprises at least one pointer of a buffer tree referencing data that is not stored locally on a volume served by the first storage system; means for storing volume infrastructure metadata within the sparse volume, wherein the volume infrastructure metadata is copied from a second storage system; means for marking the at least one pointer of the buffer tree within the sparse volume with a pointer value, wherein the pointer value identifies that the data referenced by the at least one pointer of the buffer tree is stored on a volume served by the second storage system; means for waiting until the data referenced by the at least one pointer of the buffer tree within the sparse volume is requested by scanning the at least one pointer of the buffer tree; and means for receiving a request for the data referenced by the at least one pointer of the buffer tree marked with the pointer value and copying, in response to receiving the request, the data referenced by the at least one pointer from the second storage system to the sparse volume. - View Dependent Claims (2)
-
-
3. A method, comprising:
-
detecting a failed volume served by a first storage system, the first storage system executing a storage operating system; replacing the failed volume with a sparse volume served by the first storage system, wherein the sparse volume comprises at least one pointer of a buffer tree referencing data that is not stored locally on a volume served by the first storage system; storing volume infrastructure metadata within the sparse volume, wherein the volume infrastructure metadata is copied from a second storage system; marking the at least one pointer of the buffer tree within the sparse volume with a pointer value, wherein the pointer value identifies that the data referenced by the at least one pointer of the buffer tree is stored on a volume served by the second storage system; waiting until the data referenced by the at least one pointer of the buffer tree within the sparse volume is requested by scanning the at least one pointer of the buffer tree; and receiving a request for the data referenced by the at least one pointer of the buffer tree marked with the pointer value and copying, in response to receiving the request, the data referenced by the at least one pointer from the second storage system to the sparse volume. - View Dependent Claims (4, 5, 6, 7, 8, 9, 10, 11)
-
-
12. A system for use with a first storage device, comprising:
-
a first storage system configured to execute a storage operating system, the first storage system comprising a first volume stored across the first storage device, wherein the first storage device is coupled to the first storage system; a second storage system configured with a backup copy of the first volume, wherein the backup copy is stored on a second storage device coupled to the second storage system; in response to the first volume failing, the first storage system configured to replace the failed volume with a sparse volume stored across the first storage system, wherein the sparse volume comprises at least one pointer of a buffer tree referencing data that is not stored locally on a volume served by the first storage system, wherein the sparse volume further comprises a plurality of pointer values to identify that the data referenced by the at least one pointer of the buffer tree is stored on the backup copy of the second storage system; the first storage system further configured to wait until the data referenced by the at least one pointer of the buffer tree within the sparse volume is requested by scanning the at least one pointer of the buffer tree; and the first storage system further configured to receive a request for the data referenced by the at least one pointer of the buffer tree marked with the pointer value and further configured to copy, in response to receiving the request, the data referenced by the at least one pointer of the buffer tree from the second storage system to the sparse volume. - View Dependent Claims (13, 14, 15, 16, 17, 18, 19)
-
-
20. A method, comprising:
-
configuring an aggregate from a plurality of storage devices attached to a first storage system, wherein the aggregate defines a global storage space of the first storage system; providing a plurality of volumes stored within the aggregate; detecting a failed volume on the first storage system; activating a new volume on the first storage system, wherein the new volume is a sparse volume, wherein the sparse volume comprises at least one pointer of a buffer tree referencing data that is not stored on a volume served by the first storage system; storing volume infrastructure metadata within the sparse volume, wherein the volume infrastructure metadata is copied from a second storage system; populating the sparse volume with a pointer value of the at least one pointer of the buffer tree indicating that data referenced by the at least one pointer of the buffer tree is located on the second storage system; waiting until the data referenced by the at least one pointer of the buffer tree within the sparse volume is requested by scanning the at least one pointer of the buffer tree; and receiving a request for the data referenced by the at least one pointer of the buffer tree with the pointer value and copying, in response to receiving the request, the data referenced by the at least one pointer of the buffer tree from the second storage system to the sparse volume. - View Dependent Claims (21, 22, 23, 24, 25, 26, 27, 28, 29, 30)
-
-
31. A system, comprising:
-
an aggregate configured from a plurality of storage devices attached to a first storage system, the first storage system configured to execute a storage operating system, wherein the aggregate defines a global storage space of the first storage system; a plurality of volumes stored within the aggregate; in response to a first volume failing on the first storage system, the first storage system is configured to activate a new volume, wherein the new volume is a sparse volume and wherein the sparse volume comprises at least one pointer of a buffer tree referencing data that is not stored on a volume served by the first storage system; the first storage system is further configured to store volume infrastructure metadata within the sparse volume, wherein the volume infrastructure metadata is copied from a second storage system; the first storage system is further configured to populate the sparse volume with a pointer value of the at least one pointer of the buffer tree indicating that data referenced by the at least one pointer of the buffer tree is located on the second storage system; the first storage system is further configured to wait until the data referenced by the at least one pointer of the buffer tree within the sparse volume is requested by scanning the at least one pointer of the buffer tree; and the first storage system is further configured to receive a request for the data referenced by the at least one pointer of the buffer tree with the pointer value and is further configured to copy, in response to receiving the request, the data referenced by the at least one pointer of the buffer tree from the second storage system to the sparse volume. - View Dependent Claims (32, 33, 34)
-
-
35. A computer readable storage medium containing executable program instructions executed by a processor, comprising:
-
program instructions that configure an aggregate from a plurality of storage devices attached to a first storage system, wherein the aggregate defines a global storage space of the first storage system; program instructions that provide a plurality of volume stored within the aggregate; program instructions that detect a failed volume on the first storage system; program instructions that activate a new volume on the first storage system, wherein the new volume is a sparse volume, wherein the sparse volume comprises at least one pointer of a buffer tree referencing data that is not stored on a volume served by the first storage system; program instructions that store volume infrastructure metadata within the sparse volume, wherein the volume infrastructure metadata is copied from a second storage system; program instructions that populate the sparse volume with a pointer value of the at least one pointer of the buffer tree indicating that data referenced by the at least one pointer of the buffer tree is located on the second storage system; program instructions that wait until the data referenced by the at least one pointer of the buffer tree within the sparse volume is requested by scanning the at least one pointer of the buffer tree; and program instructions that receive a request for the data referenced by the at least one pointer of the buffer tree with the pointer value and copy, in response to receiving the request, the data referenced by the at least one pointer of the buffer tree from the second storage system to the sparse volume. - View Dependent Claims (36, 37, 38)
-
Specification