TRANSFERRING OR MIGRATING PORTIONS OF DATA OBJECTS, SUCH AS BLOCK-LEVEL DATA MIGRATION OR CHUNK-BASED DATA MIGRATION
First Claim
1. A system for migrating data from a primary storage device to a secondary storage device, wherein the system includes a file system for transferring data to the primary storage device, and wherein the system further includes a disk driver for at least writing data received from the file system to the primary storage device and a secondary driver for at least writing data to the secondary storage device, the system comprising:
- a virtual disk driver that receives data from the file system associated with the primary storage device and provides data to the disk driver that writes data to the primary storage device, wherein the virtual disk driver includes;
a data reception component, wherein the data reception component is configured to receive data from the file system, wherein the received data identifies multiple blocks of a file to be modified, wherein the multiple blocks are a proper subset of the total number of blocks for the file;
a data interception component, wherein the data interception component is configured to intercept the received data and extract information associated with the received data, wherein the extracted information includes information identifying the multiple blocks to be modified;
an index component, wherein the index component is configured to update an index that associates the extracted information with data blocks on the secondary storage device that contain the received data; and
a data transfer component, wherein the data transfer component is configured to transfer the received data to the secondary driver for storage to the secondary storage device;
a block-level data migration component, wherein the block-level migration component is configured to identify data blocks within the primary storage device that satisfy one or more predetermined criteria;
a data management component, configured to communicate with the virtual disk driver, the block-level data migration component and one or more media agents, wherein the data management component includes a storage policy that provides the one or more predetermined criteria, the storage policy identifying a time period in which to retain data within the primary storage device and identifying the one or more media agents in which to transfer the data from the file system to the disk driver, via the virtual disk driver; and
a media agent, wherein the media agent is one of the identified media agents and is configured to;
transfer data from the identified data blocks to the secondary driver; and
update an index that associates the transferred data with the secondary storage device that stores data from the secondary driver.
3 Assignments
0 Petitions
Accused Products
Abstract
A system and method for migrating data objects based on portions of the data objects is described. The system may transfer portions of files, folders, and other data objects from primary storage to secondary storage based on certain criteria, such as time-based criteria, age-based criteria, and so on. An increment may be one or more blocks of a data object, or one or more chunks of a data object, or other segments that combine to form or store a data object. For example, the system identifies one or more blocks of a data object that satisfy a certain criteria, and migrates the identified blocks. The system may determine that a certain number of blocks of a file have not been modified or called by a file system in a certain time period, and migrate these blocks to secondary storage.
359 Citations
22 Claims
-
1. A system for migrating data from a primary storage device to a secondary storage device, wherein the system includes a file system for transferring data to the primary storage device, and wherein the system further includes a disk driver for at least writing data received from the file system to the primary storage device and a secondary driver for at least writing data to the secondary storage device, the system comprising:
-
a virtual disk driver that receives data from the file system associated with the primary storage device and provides data to the disk driver that writes data to the primary storage device, wherein the virtual disk driver includes; a data reception component, wherein the data reception component is configured to receive data from the file system, wherein the received data identifies multiple blocks of a file to be modified, wherein the multiple blocks are a proper subset of the total number of blocks for the file; a data interception component, wherein the data interception component is configured to intercept the received data and extract information associated with the received data, wherein the extracted information includes information identifying the multiple blocks to be modified; an index component, wherein the index component is configured to update an index that associates the extracted information with data blocks on the secondary storage device that contain the received data; and a data transfer component, wherein the data transfer component is configured to transfer the received data to the secondary driver for storage to the secondary storage device; a block-level data migration component, wherein the block-level migration component is configured to identify data blocks within the primary storage device that satisfy one or more predetermined criteria; a data management component, configured to communicate with the virtual disk driver, the block-level data migration component and one or more media agents, wherein the data management component includes a storage policy that provides the one or more predetermined criteria, the storage policy identifying a time period in which to retain data within the primary storage device and identifying the one or more media agents in which to transfer the data from the file system to the disk driver, via the virtual disk driver; and a media agent, wherein the media agent is one of the identified media agents and is configured to; transfer data from the identified data blocks to the secondary driver; and update an index that associates the transferred data with the secondary storage device that stores data from the secondary driver. - View Dependent Claims (2, 3, 4)
-
-
5. A method for storing a data object in two or more different data stores, the method comprising:
-
identifying data blocks representing a data object in a first data store, wherein the data object is a discrete data object managed by a file system; for the identified data blocks; identifying a portion of the identified data blocks that satisfies one or more data storage criteria, wherein the one or more data storage criteria is associated with a recent access of the identified data blocks; and transferring data stored by the portion of the identified data blocks that satisfies the one or more data storage criteria to a second data store, wherein the second data store is associated with data that satisfies the one or more data storage criteria. - View Dependent Claims (6, 7, 8, 9, 10)
-
-
11. A tangible computer-readable storage medium whose contents cause a data storage system to perform a method of migrating data from primary storage to secondary storage, the method comprising:
-
identifying no more than n−
1 data blocks, located within primary storage, that satisfy a criteria, wherein the n−
1 data blocks represent a portion of a data file consisting of n blocks and the n blocks contain data written by a file system associated with the primary storage; andtransferring data contained by the identified no more than n−
1 data blocks from the primary storage to the secondary storage. - View Dependent Claims (12, 13, 14, 15, 16, 17, 18)
-
-
19. A method in a data storage system for restoring a portion of a file, the method comprising:
-
receiving, at a file system, a request from a user to modify a portion of a file, wherein the file is at least partially stored in secondary storage on a storage device located at a location geographically different than a location for the file system; identifying one or more data blocks within the storage device that contain data associated with the portion of the file to be modified; retrieving the data contained by the identified one or more data blocks without retrieving all data blocks associated with the file; presenting the retrieved data to the user; and upon receiving input from the user to modify the portion of the file, transferring data associated with the received input for storage by the storage device.
-
-
20. A system for restoring a portion of a file, the system comprising:
-
means, at a file system, for receiving a request from a user to modify a portion of a file, wherein the file is at least partially stored in secondary storage on a storage device located at a location geographically different than a location for the file system; means for identifying one or more data blocks within the storage device that contain data associated with the portion of the file to be modified; means for retrieving the data contained by the identified one or more data blocks without retrieving all data blocks associated with the file; means for presenting the retrieved data to the user; and means for transferring data associated with the received input for storage by the storage device upon receiving input from the user to modify the portion of the file. - View Dependent Claims (21, 22)
-
Specification