Storage architecture for backup application
First Claim
Patent Images
1. A method implemented at least in part by a computer, the method comprising:
- receiving an indication of a virtual storage address space;
dividing the virtual storage address space into fixed-sized chunks;
receiving data from a data source;
receiving address information associated with the data;
determining at least one of the chunks based on the address information and a block address translation table that maps from blocks of a file system volume to physical addresses of a storage device;
providing the data corresponding to the at least one of the chunks to a storage system;
updating a data structure to map from the address information to an identifier that identifies the at least one of the chunks to the storage system;
merging a first backup set and a second backup set stored on the storage system by sending a message to delete one or more blocks of the first backup set to the storage system and sending metadata to the storage system that indicates that other of the blocks of the first backup set are to be included in the second backup set; and
generating metadata regarding a backup dataset that includes the at least one of the chunks and providing the metadata regarding the backup dataset to the storage system prior to sending the at least one of the chunks, the metadata regarding the backup dataset indicating a location of the at least one of the chunks, the metadata regarding the backup dataset is used for obtaining the at least one chunk from the backup dataset even if other data of the backup dataset is not stored on the storage system.
2 Assignments
0 Petitions
Accused Products
Abstract
Aspects of the subject matter described herein relate to a storage architecture. In aspects, an address provided by a data source is translated into a logical storage address of virtual storage. This logical storage address is translated into an identifier that may be used to store data on or retrieve data from a storage system. The address space of the virtual storage is divided into chunks that may be streamed to the storage system.
31 Citations
19 Claims
-
1. A method implemented at least in part by a computer, the method comprising:
-
receiving an indication of a virtual storage address space; dividing the virtual storage address space into fixed-sized chunks; receiving data from a data source; receiving address information associated with the data; determining at least one of the chunks based on the address information and a block address translation table that maps from blocks of a file system volume to physical addresses of a storage device; providing the data corresponding to the at least one of the chunks to a storage system; updating a data structure to map from the address information to an identifier that identifies the at least one of the chunks to the storage system; merging a first backup set and a second backup set stored on the storage system by sending a message to delete one or more blocks of the first backup set to the storage system and sending metadata to the storage system that indicates that other of the blocks of the first backup set are to be included in the second backup set; and generating metadata regarding a backup dataset that includes the at least one of the chunks and providing the metadata regarding the backup dataset to the storage system prior to sending the at least one of the chunks, the metadata regarding the backup dataset indicating a location of the at least one of the chunks, the metadata regarding the backup dataset is used for obtaining the at least one chunk from the backup dataset even if other data of the backup dataset is not stored on the storage system. - View Dependent Claims (2, 3, 4, 5, 6, 7)
-
-
8. A computer storage medium having computer-executable instructions, which when executed perform actions, comprising:
-
receiving, from a requestor, a request for data that is stored on a storage system; receiving a first address of the data, the first address in a first address space, the first address indicating a storage location the requestor associates with the data; determining a second address based on the first address and a data structure, the second address indicating a logical storage offset of a virtual storage address space that is divided into chunks that are mapped to storage locations of the storage system, the data structure provides mapping information between the first address space and the virtual storage address space; mapping the second address to a third address, the third address identifying a storage location of at least one of the chunks corresponding to the data on the storage system; retrieving the at least one of the chunks from the storage system using the third address; providing the data to the requestor, wherein a first backup set and a second backup set stored on the storage system are merged by sending a message to delete one or more blocks of the first backup set to the storage system and sending metadata to the storage system that indicates that other of the blocks of the first backup set are to be included in the second backup set; and generating metadata regarding a backup dataset that includes the at least one of the chunks and providing the metadata regarding the backup dataset to the storage system prior to sending the at least one of the chunks, the metadata regarding the backup dataset indicating a location of the at least one of the chunks, the metadata regarding the backup dataset is used for obtaining the at least one chunk from the backup dataset even if other data of the backup dataset is not stored on the storage system. - View Dependent Claims (9, 10, 11, 12, 13, 14)
-
-
15. In a computing environment, a system, comprising:
-
a data source operable to provide data to a source reader, the data source further operable to provide to the source reader a first address that the data source associates with the data; and a computer comprising the source reader operable to create a virtual storage address space and to divide the virtual storage address space into fixed-sized chunks, the source reader further operable to use a block address translation table that maps from block of a file system volume to physical addresses of a storage device, the source reader further operable to determine at least one of the chunks based on the first address and a length of the data, the source reader further operable to stream the at least one of the chunks corresponding to the data to a storage system, the source reader further operable to maintain a data structure that maps the at least one of the chunks to a storage identifier of the storage system, wherein a first backup set and a second backup set stored on the storage system are merged by sending a message to delete one or more blocks of the first backup set to the storage system and sending metadata to the storage system that indicates that other of the blocks of the first backup set are to be included in the second backup set, the source reader further operable to generate metadata regarding a backup dataset that includes the at least one of the chunks and providing the metadata regarding the backup dataset to the storage system prior to sending the at least one of the chunks, the metadata regarding the backup dataset indicating a location of the at least one of the chunks, the metadata regarding the backup dataset is used for obtaining the at least one chunk from the backup dataset even if other data of the backup dataset is not stored on the storage system. - View Dependent Claims (16, 17, 18, 19)
-
Specification