DATA TRANSFER TECHNIQUES WITHIN DATA STORAGE DEVICES, SUCH AS NETWORK ATTACHED STORAGE PERFORMING DATA MIGRATION
First Claim
1. A network attached storage (NAS) device, wherein the network attached storage device is configured to be connected to a networked computing system, the networked computing system including one or more secondary data storage devices and one or more client computers connected via a network, the network attached storage device comprising:
- a housing containing one or more components, the components including;
a data reception component, wherein the data reception component is configured to receive for storage multiple data files from the one or more client computers via the network;
an operating system, wherein the operating system is configured to provide a computing environment for the network attached storage device;
at least one processor, wherein the at least one processor is programmed to perform one or more data storage functions for the network attached storage device;
a non-volatile data store, wherein the non-volatile data store is configured to store the data files received from the data reception component;
a file system, wherein the file system is configured to manage, for the network attached storage device, the writing of data files to, and the reading of data files from, the non-volatile data store;
one or more media agents, wherein the one or more media agents are configured to receive instructions from the at least one processor and to transfer data stored in the non-volatile data store to the one or more secondary data storage devices, wherein the one or more secondary data storage devices are external to the network attached storage device but are accessible by the one or more media agents via the network; and
a data migration component, wherein the data migration component is configured to identify portions of at least some of the data files within the non-volatile data store and to migrate the identified data file portions from the network attached storage device,wherein the identified data file portions are for storage by the one or more media agents to at least one of the one or more secondary storage devices,wherein the data migration component is further configured to identify portions of a selected data file within the non-volatile data store based at least in part on a data storage criteria,wherein the data storage criteria is associated with the writing of data to, and the reading of data from, portions of the selected data file by the file system,wherein the identified portions of the selected data file are less than all of the selected data file, andwherein the data migration component maintains a data structure thattracks a logical location of the identified data file portions stored in the one or more secondary storage devices, andmaps the identified data file portions to the selected data file.
1 Assignment
0 Petitions
Accused Products
Abstract
A stand-alone, network accessible data storage device, such as a filer or NAS device, is capable of transferring data objects based on portions of the data objects. The device transfers portions of files, folders, and other data objects from a data store within the device to external secondary storage based on certain criteria, such as time-based criteria, age-based criteria, and so on. A portion 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 device identifies one or more blocks of a data object that satisfy a certain criteria, and migrates the identified blocks to external storage, thereby freeing up storage space within the device. The device 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.
426 Citations
22 Claims
-
1. A network attached storage (NAS) device, wherein the network attached storage device is configured to be connected to a networked computing system, the networked computing system including one or more secondary data storage devices and one or more client computers connected via a network, the network attached storage device comprising:
a housing containing one or more components, the components including; a data reception component, wherein the data reception component is configured to receive for storage multiple data files from the one or more client computers via the network; an operating system, wherein the operating system is configured to provide a computing environment for the network attached storage device; at least one processor, wherein the at least one processor is programmed to perform one or more data storage functions for the network attached storage device; a non-volatile data store, wherein the non-volatile data store is configured to store the data files received from the data reception component; a file system, wherein the file system is configured to manage, for the network attached storage device, the writing of data files to, and the reading of data files from, the non-volatile data store; one or more media agents, wherein the one or more media agents are configured to receive instructions from the at least one processor and to transfer data stored in the non-volatile data store to the one or more secondary data storage devices, wherein the one or more secondary data storage devices are external to the network attached storage device but are accessible by the one or more media agents via the network; and a data migration component, wherein the data migration component is configured to identify portions of at least some of the data files within the non-volatile data store and to migrate the identified data file portions from the network attached storage device, wherein the identified data file portions are for storage by the one or more media agents to at least one of the one or more secondary storage devices, wherein the data migration component is further configured to identify portions of a selected data file within the non-volatile data store based at least in part on a data storage criteria, wherein the data storage criteria is associated with the writing of data to, and the reading of data from, portions of the selected data file by the file system, wherein the identified portions of the selected data file are less than all of the selected data file, and wherein the data migration component maintains a data structure that tracks a logical location of the identified data file portions stored in the one or more secondary storage devices, and maps the identified data file portions to the selected data file. - View Dependent Claims (2, 3, 4, 5, 6)
-
7. A computer-implemented method for tracking at least a first portion of at least one data object within a network attached storage (NAS) device coupled to a network, wherein the NAS device includes a NAS file system and a non-volatile data store, the method comprising:
-
accessing calls to or from the NAS file system for reading of data from or writing of data to the non-volatile data store of the NAS device, wherein the at least one data object consists of multiple data blocks, wherein the non-volatile data store of the NAS device stores the multiple data blocks of the at least one data object; wherein the NAS file system of the NAS device controls the reading of data from or the writing of data to the multiple data blocks of the at least one data object, and wherein the accessing includes identifying individual blocks or groups of blocks within the multiple data blocks of the at least one data object that the NAS file system of the NAS device reads data from or writes data to; based on the accessing, identifying a portion of the multiple data blocks of the at least one data object that satisfies a data storage criteria, wherein the data storage criteria is a time-based criteria; and
,based on the identifying, and independently of the NAS file system of the NAS device, updating a data structure, wherein the data structure—
tracks the portion of the multiple data blocks, andprovides an indication of the at least one data object to which the portion of the multiple data blocks belongs. - View Dependent Claims (8, 9, 10)
-
-
11. A stand-alone data storage device, coupled to one or more external computing devices over a network, wherein at least one external storage device is also connected to the data storage device via the network, the data storage device comprising:
-
at least one processor; a communication component coupled to the at least one processor and associated with a network address for the data storage device, wherein the communication component receives data transfer commands from the one or more external computing devices on the network, wherein the one or more external computing devices direct the data transfer commands to the data storage device via the network address for the data storage device, and wherein the data transfer commands direct operation of the data storage device; a non-volatile, internal data store, coupled to the at least one processor, wherein the internal data store stores data objects, wherein at least some of the data objects are comprised of multiple data blocks; a data storage component that comprises program code, which when executed by the processor, performs data storage tasks with respect to the internal data store; a file system that comprises program code, which when executed by the processor, stores and organizes data objects stored in the internal data store; a call intercept layer, in communication with the file system, that comprises program code, which when executed by the processor, recognizes calls to or from the file system for reading of data from or writing of data to individual data blocks or groups of data blocks stored within the internal data store; a data block identification component, in communication with the call intercept layer, that comprises program code, which when executed by the processor, identifies data blocks of the data object that satisfy a criteria, wherein the criteria is associated with the recognized calls to or from the file system for the reading of data from or the writing of data to the individual data blocks or groups of data blocks; and an index component that comprises program code, which when executed by the processor, updates an index to include information associating the identified data blocks with information identifying the data object. - View Dependent Claims (12, 13, 14, 15)
-
-
16. A method performed by a network attached storage device for storing a portion of a data object in a secondary storage device associated with the network attached storage device, the method comprising:
-
identifying, within a cache of the network attached storage device, a data object having at least a first portion, wherein the first portion was last accessed by a file system of the network attached storage device before a predetermined time, wherein a second portion of the data object was last accessed by the file system after the predetermined time; transferring the first portion of the data object out of the network attached storage and to a secondary storage device communicatively coupled with the network attached storage device, wherein the secondary storage device is external to the network attached storage device; and maintaining the second portion of the data object in the cache of the network attached storage device.
-
-
17. A network attached storage device, comprising:
-
a cache, wherein the cache stores one or more data objects; a media agent, wherein the media agent is configured to transfer portions of the one or more data objects from the cache to associated secondary storage devices, wherein the secondary storage devices are located external to the network attached storage device and configured to provide long term storage of data; and a data identification component, wherein the data identification component is configured to identify to the media agent the portions of the data objects to be transferred to the secondary storage devices based on one or more storage criteria. - View Dependent Claims (18, 19, 20)
-
-
21. A system for storing a portion of a data object in a secondary storage device associated with a network attached storage (NAS) device, the system comprising:
-
at least one processor; a data store; callback layer and block identifying means for identifying, from calls to or from a file system within the NAS device, a first portion a data object within the data store of the NAS device, wherein the first portion was last accessed by the file system of the network attached storage device before a predetermined time, wherein a second portion of the data object was last accessed by the file system after the predetermined time; media agent means for transferring the first portion of the data object to a secondary storage device associated with the network attached storage device; and index means for tracking the second portion of the data object in the data store of the network attached storage device. - View Dependent Claims (22)
-
Specification