A snapshot is a copy of a set of files and/or directories as they were at a particular point in the past. That is, the snapshot is an image, or representation, of a volume of data at a point in time. A snapshot may be as a secondary copy of a primary volume of data, such as data in a file system, an Exchange server, a SQL database, an Oracle database, and so on. The snapshot may be an image of files, folders, directories, and other data objects within a volume, or an image of the blocks of the volume.
Data storage systems utilize snapshots for a variety of reasons. One typical use of snapshots is to copy a volume of data without disabling access to the volume for a long period. After performing the snapshot, the data storage system can then copy the data set by leveraging the snapshot of the data set. Thus, the data storage system performs a full backup of a primary volume when a primary volume is active and generating real-time data. Although performing a snapshot (i.e., taking an image of the data set) is a fast process, the snapshot is typically not an effective or reliable backup copy of a data set, because it does not actually contain the content of the data set. Restoring data from snapshots can be especially cumbersome, because a restoration process cannot restore the data set using snapshots alone. Recovery of individual files or folders can be especially cumbersome, because typical systems often recover an entire snapshot in order to restore an individual file or folder imaged by the snapshot.
Associated information, such as metadata, is often required in order to restore a file or folder via the snapshot, because the snapshot itself does not provide any information about the file or folder other than the image of a data set at a certain time. That is, the snapshot provides information about what was in or is changed in a data set (the image), but does not provide any information about where a particular file (or a copy of a data object) is currently stored or contained.
Therefore, a system that provides the benefits of snapshots while avoiding some of the drawbacks would provide significant utility.
Overview
Described in detail herein is a system and method that restores desired data via snapshot images of the data by retrieving a directory file from the snapshots, using the directory file to identify a location of where the data is stored, and providing the location to a requestor of the data (such as a data recovery system, a user, and so on). That is, the system may restore data from an image level copy of the data without generally relying on metadata or other similar information associated with the data.
In some examples, the system includes an intermediate component communicating between a data recovery system and a secondary copy of data to be restored, such as a snapshot copy mounted to the intermediate component. The snapshot copy may be a software-based snapshot (such as a snapshot performed using File System Snapshot, Qsnap, Volume Shadow Services, and so on), or a hardware-based snapshot (such as a snapshot performed using EMC, HP, Hitachi, and/or NetApp or other applications). For example, the snapshot copy may be created during a copy-on-write process, a redirect-on-write process, a split mirror process, using a log structure file architecture, using continuous data protection, and so on. The intermediate component may receive a request from the data recovery system to restore a file, locate a snapshot that contains an image of the file, retrieve, from the snapshot, a directory file imaged by the snapshot, identify a location for the file from the directory file, and indicate the location for the file to the data recovery system. The data recovery system can then retrieve the requested file using the location information.
In some examples, the system includes a cache or other memory component that stores retrieved files, directory files, and other data once the data is requested and/or retrieved during a restoration process. Before identifying a snapshot that images the file, the system may review the cache after receiving a request to restore a file. In some cases, the system may identify a directory file associated with the file, and extract the location information directly from the cached directory file. In some cases, the system may restore the file directly from the cache.
Thus, in some examples, the system utilizes an intermediate component to facilitate the extraction of information from imaged directory files that identify locations of files within imaged data sets. Knowledge or extraction of location information enables a recovery system to avoid relying on metadata and/or other indexed information associated with a data set and/or a snapshot of a data set. Additionally, in some examples the system enables a snapshot-based copy of data to act as a file system for all data imaged by the copy of data.
The system will now be described with respect to various examples. The following description provides specific details for a thorough understanding of, and enabling description for, these examples of the system. However, one skilled in the art will understand that the system may be practiced without these details. In other instances, well-known structures and functions have not been shown or described in detail to avoid unnecessarily obscuring the description of the examples of the system.
The terminology used in the description presented below is intended to be interpreted in its broadest reasonable manner, even though it is being used in conjunction with a detailed description of certain specific examples of the system. Certain terms may even be emphasized below; however, any terminology intended to be interpreted in any restricted manner will be overtly and specifically defined as such in this Detailed Description section.
Suitable System
Referring to
The secondary storage device 113 receives the data from the media agent 112 and stores the data as a secondary copy, such as a backup copy. Secondary storage devices may be magnetic tapes, optical disks, USB and other similar media, disk and tape drives, and so on. Of course, the system may employ other configurations of stream components not shown in the Figure.
Referring to
Aspects of the system can be embodied in a special purpose computer or data processor that is specifically programmed, configured, or constructed to perform one or more of the computer-executable instructions explained in detail herein. Aspects of the system can also be practiced in distributed computing environments where tasks or modules are performed by remote processing devices, which are linked through a communications network, such as a Local Area Network (LAN), Wide Area Network (WAN), Storage Area Network (SAN), Fibre Channel, or the Internet. In a distributed computing environment, program modules may be located in both local and remote memory storage devices.
Aspects of the system may be stored or distributed on computer-readable media, including magnetically or optically readable computer discs, hard-wired or preprogrammed chips (e.g., EEPROM semiconductor chips), nanotechnology memory, biological memory, or other tangible or physical data storage media. In some aspects of the system, computer implemented instructions, data structures, screen displays, and other data under aspects of the system may be distributed over the Internet or over other networks (including wireless networks), on a propagated signal on a propagation medium (e.g., an electromagnetic wave(s), a sound wave, etc.) over a period of time, or they may be provided on any analog or digital network (packet switched, circuit switched, or other scheme). Those skilled in the relevant art will recognize that portions of the system reside on a server computer, while corresponding portions reside on a client computer, and thus, while certain hardware platforms are described herein, aspects of the system are equally applicable to nodes on a network.
The data storage system 200 contains a storage manager 210, one or more clients 111, one or more media agents 112, and one or more storage devices 113. Storage manager 210 controls media agents 112, which may be responsible for transferring data to storage devices 113. Storage manager 210 includes a jobs agent 211, a management agent 212, a database 213, and/or an interface module 214. Storage manager 210 communicates with client(s) 111. One or more clients 111 may access data to be stored by the system from database 222 via a data agent 221. The system uses media agents 112, which contain databases 231, to transfer and store data into storage devices 113. Client databases 222 may contain data files and other information, while media agent databases may contain indices and other data structures that include information associated with the storage of data into secondary storage devices, for example.
The data storage and recovery system may include software and/or hardware components and modules used in data storage operations. The components may be storage resources that function to copy data during storage operations. The components may perform other storage operations (or storage management operations) other that operations used in data stores. For example, some resources may create, store, retrieve, and/or migrate primary or secondary data copies. Additionally, some resources may create indices and other tables relied upon by the data storage system and other data recovery systems. The secondary copies may include snapshot copies and associated indices, but may also include other backup copies such as HSM copies, archive copies, and so on. The resources may also perform storage management functions that may communicate information to higher level components, such as global management resources.
In some examples, the system performs storage operations based on storage policies, as mentioned above. For example, a storage policy includes a set of preferences or other criteria to be considered during storage operations. The storage policy may determine or define a storage location and/or set of preferences about how the system transfers data to the location and what processes the system performs on the data before, during, or after the data transfer. In some cases, a storage policy may define a logical bucket in which to transfer, store or copy data from a source to a data store, such as storage media. Storage policies may be stored in storage manager 210, or may be stored in other resources, such as a global manager, a media agent, and so on. Further details regarding storage management and resources for storage management will now be discussed.
Referring to
Data Recovery Using an Intermediary
In some examples, the system performs some or all the operations described herein using an intermediate component, virtual storage device, virtual device drover, or other intermediary capable of mounting to a file system and communicating with a storage device. That is, an intermediate component may communicatively reside between a component that receives requests for files (such as a restoration component) and a data store (such as a data storage component). The intermediate component enables flexibility during data restoration, enabling a file system to indirectly access a secondary copy of data in order to identify information associated with data stored by the secondary copy, among other benefits.
Referring to
The restore component 410 sends data recovery requests to an intermediate component 420, to be discussed herein. Briefly, the intermediate component 420 acts to receive requests from the restore component 410 and to provide location information for requested data. The intermediate component 420 communicates with a storage component 430, such as storage media containing secondary copies of a data set. The storage component receives requests for files or folders via the intermediate component, and may transfer the files or folders (or information associated with the files or folders) to the intermediate component 420 or to the restore component 410.
The system 400 may also include an optional cache 425 associated with the intermediate component 420. The cache, or other memory component, may store files or information retrieved from the storage component 430, such as files or information requested by the restore component 410 via the intermediate component 420. The cache 425 may serve requests for files or information included in the cache, to promptly respond to a request, such as a request for the same file that was recently and/or previously requested. Although the cache 425 is shown as being outside the intermediate component, other configurations are of course possible. For example, the cache may be included within the intermediate component, within the restore component 410, within the storage component 430, and so on. Additionally, some or all of the components may include a cache that stores various files or information retrieved during data recovery.
Referring to
Referring to
The intermediate component 420 may also include a storage device module 520 that communicates with storage devices, such as disk driver 435 and disk 437 (or other removable media). The storage device module 520 may include a directory module 525 that accesses entries within directory files obtained from snapshot-based secondary copies and extracts information from the directory files, such as location information associated with files indexed by the directory files. In other words, to determine the location of files, the directory module identifies the specific disk or storage device maintaining a desired file and identifies the blocks on the disk that contain the file, such as by retrieving the directory, file allocation table (FAT), master file table (MFT), or other data structures that describe files and file locations on the disk.
The intermediate component 420 may also include a cache 530 (or, a cache module or interface that communicates with an external cache), and/or other agents or components 540, such as components that index files, classify files, manage files or information, and so on.
As discussed above, the system facilitates the recovery of files from snapshot-based secondary copies of data using an intermediary. Referring to
Alternatively or additionally, the request may include an indication of a snapshot (or group of snapshots) that contain an image of the file. The system may present snapshots (or groups of snapshots) to a user via the user interface, or information associated with the snapshots or groups of snapshots. For example, the system may present information identifying various snapshots taken of a file or of a data store that contained the file. In some cases, the restore component 410 presents, via the user interface, various groups of snapshots to a user for selection.
In step 620, the system recovers the file using an intermediary, such as the intermediate component 420. For example, the intermediary may receive the request, identify a location of the requested file, and provide the location to the requestor. By having previously mapped specific files with particular disks and/or storage devices, and with snapshots of the mapped storage devices, the system of
Thus, the intermediary, in some examples, intercepts requests for files from a file system in order to quickly and efficiently provide location information associated with the file to the file system. The file system, using the provided information, can then directly access and retrieve the file. The intermediary will now be discussed. Referring to
In step 710, the system mounts the file system, or launches a file system process for accessing a file location data structure, to an intermediate component, such as a component that acts as a virtual storage device. That is, the file system communicates with a component that appears to external systems (such as file system 417) to be the disk driver 435 for reading and writing data from disk 437, but is in fact the intermediate component 420 communicating between the file system and the storage device.
In step 720, the file system requests a directory file from the storage device 430. That is, the file system requests an index or other table that is associated with and identifies the files within the storage device and the secondary copies contained within the storage device and locations of those files. In some cases, the directory file was created when a primary copy of the data was created, or was periodically created and/or updated from a primary volume. For snapshot-based copies, the directory file may be imaged by a snapshot along with the files imaged by the snapshot.
Referring to
Referring back to
In step 740, the virtual storage device presents the obtained data blocks to the file system. Optionally, upon receiving a selection of a file by the file system, the virtual storage device sends a location of the selected file to the file system. That is, the virtual storage device reviews the extracted directory file, obtains location information (such as the blocks on a magnetic disk storing a file, the tape offsets on a tape storing the file, and so on), and provides the location information to the file system. In step 745, the virtual storage device may optionally store the obtained data blocks in an associated cache, to serve future requests for files in the directory, among other things In step 755, the virtual storage device may optionally store the provided location information, the file itself, and/or the directory file in the cache, as described above.
In step 760, the file system retrieves the file from the storage device using the location information provided by the virtual storage device and responds to the original request. Using the location information, the file system may directly mount to the storage device and retrieve the file at the provided location. Alternatively, the virtual storage device may retrieve the file from the storage device and present the file to the file system.
As an example, a user, via a user interface presented to the user at a client computer 415, selects one or more Microsoft® Exchange® mailboxes to restore. The Exchange mailbox includes one or more files and associated data objects (such as emails) currently stored at the client computer 415 (or in database 418) as well as files that have been stored in snapshot-based secondary copies and moved from the database 418. The system, however, is able to present all the files to the user via the user interface. For example, Windows Explorer, or a similar application, may query the database 418 and obtain files and/or associated data objects associated with the mailbox, and lists them for the user. In addition, Windows Explorer queries the data storage component 430 for files/data objects associated with the mailbox. This query is intercepted by the intermediate component, which retrieves a directory file associated with the data imaged by the snapshot-based secondary copies, and transfers the directory file to the user via the user interface. The user interface presents all retrieved files/data objects to the user, without the user performing any additional or different steps to receive information from the snapshot-based secondary copies.
When the user selects a file/data object stored in database 418, the system looks to a FAT, MFT, or other location table associated with the file system 417, identifies the blocks in the database that contain the file/data object, and retrieves the file/data object. However, when the user selects a file/data object no longer stored in database 418, the system performs one of the routines described herein, such as routine 700, via a restore component or other similar components described herein. For example, the file system 417 sends a request to the data storage component 430 in order to retrieve the file/data object. The request is intercepted by the intermediate component 420, which then locates the file/data object based on information in the directory file that associates the snapshot image of the file with the file's location (e.g., what physical storage media stores the file and where on that physical storage media it resides). The system then transfers the location information to the file system, which then retrieves the file/data object. Thus, the system facilitates the recovery of data for users without required a user or a file system to perform additional tasks or functions when the data is not stored at the file system.
Of course, the routines and examples described herein with some of the steps omitted or modified. For example, a virtual storage device may receive a request for a file and only provide location information for the file (and not the directory file). Additionally, the virtual storage device may first look to the cache before retrieving a directory file, which will now be discussed.
Referring to
If the cache includes information associated with the file, or the file itself, the system, in step 940, restores the file using the cached information. If the cache does not include any information, routine 900 proceeds to step 720 of
Therefore, in some cases, utilizing an intermediate component enables the system to use previously recovered information to restore data. This can save time and resources, among other benefits.
Conclusion
From the foregoing, it will be appreciated that specific examples of the data recovery system have been described herein for purposes of illustration, but that various modifications may be made without deviating from the spirit and scope of the system. For example, although files have been described, other types of content such as user settings, application data, emails, and other data objects can be imaged by snapshots. Accordingly, the system is not limited except as by the appended claims.
Unless the context clearly requires otherwise, throughout the description and the claims, the words “comprise,” “comprising,” and the like are to be construed in an inclusive sense, as opposed to an exclusive or exhaustive sense; that is to say, in the sense of “including, but not limited to.” The word “coupled”, as generally used herein, refers to two or more elements that may be either directly connected, or connected by way of one or more intermediate elements. Additionally, the words “herein,” “above,” “below,” and words of similar import, when used in this application, shall refer to this application as a whole and not to any particular portions of this application. Where the context permits, words in the above Detailed Description using the singular or plural number may also include the plural or singular number respectively. The word “or” in reference to a list of two or more items, that word covers all of the following interpretations of the word: any of the items in the list, all of the items in the list, and any combination of the items in the list.
The above detailed description of embodiments of the system is not intended to be exhaustive or to limit the system to the precise form disclosed above. While specific embodiments of, and examples for, the system are described above for illustrative purposes, various equivalent modifications are possible within the scope of the system, as those skilled in the relevant art will recognize. For example, while processes or blocks are presented in a given order, alternative embodiments may perform routines having steps, or employ systems having blocks, in a different order, and some processes or blocks may be deleted, moved, added, subdivided, combined, and/or modified. Each of these processes or blocks may be implemented in a variety of different ways. Also, while processes or blocks are at times shown as being performed in series, these processes or blocks may instead be performed in parallel, or may be performed at different times.
The teachings of the system provided herein can be applied to other systems, not necessarily the system described above. The elements and acts of the various embodiments described above can be combined to provide further embodiments.
These and other changes can be made to the system in light of the above Detailed Description. While the above description details certain embodiments of the system and describes the best mode contemplated, no matter how detailed the above appears in text, the system can be practiced in many ways. Details of the system may vary considerably in implementation details, while still being encompassed by the system disclosed herein. As noted above, particular terminology used when describing certain features or aspects of the system should not be taken to imply that the terminology is being redefined herein to be restricted to any specific characteristics, features, or aspects of the system with which that terminology is associated. In general, the terms used in the following claims should not be construed to limit the system to the specific embodiments disclosed in the specification, unless the above Detailed Description section explicitly defines such terms. Accordingly, the actual scope of the system encompasses not only the disclosed embodiments, but also all equivalent ways of practicing or implementing the system under the claims.
While certain aspects of the system are presented below in certain claim forms, the inventors contemplate the various aspects of the system in any number of claim forms. For example, while only one aspect of the system is recited as embodied in a computer-readable medium, other aspects may likewise be embodied in a computer-readable medium. Accordingly, the inventors reserve the right to add additional claims after filing the application to pursue such additional claim forms for other aspects of the system.
This application claims priority to U.S. Provisional Patent Application No. 61/094,763, filed on Sep. 5, 2008, entitled IMAGE LEVEL COPY OR RESTORE, SUCH AS IMAGE LEVEL RESTORE WITHOUT KNOWLEDGE OF DATA OBJECT METADATA, which is incorporated by reference in its entirety.
Number | Name | Date | Kind |
---|---|---|---|
4464122 | Fuller et al. | Aug 1984 | A |
4686620 | Ng | Aug 1987 | A |
4995035 | Cole et al. | Feb 1991 | A |
5005122 | Griffin et al. | Apr 1991 | A |
5093912 | Dong et al. | Mar 1992 | A |
5133065 | Cheffetz et al. | Jul 1992 | A |
5193154 | Kitajima et al. | Mar 1993 | A |
5212772 | Masters | May 1993 | A |
5212784 | Sparks | May 1993 | A |
5226157 | Nakano et al. | Jul 1993 | A |
5239647 | Anglin et al. | Aug 1993 | A |
5241668 | Eastridge et al. | Aug 1993 | A |
5241670 | Eastridge et al. | Aug 1993 | A |
5276860 | Fortier et al. | Jan 1994 | A |
5276867 | Kenley et al. | Jan 1994 | A |
5287500 | Stoppani, Jr. | Feb 1994 | A |
5321816 | Rogan et al. | Jun 1994 | A |
5333315 | Saether et al. | Jul 1994 | A |
5347653 | Flynn et al. | Sep 1994 | A |
5386545 | Gombos, Jr. et al. | Jan 1995 | A |
5410700 | Fecteau et al. | Apr 1995 | A |
5448718 | Cohn et al. | Sep 1995 | A |
5448724 | Hayashi | Sep 1995 | A |
5485606 | Midgdey et al. | Jan 1996 | A |
5491810 | Allen | Feb 1996 | A |
5495607 | Pisello et al. | Feb 1996 | A |
5504873 | Martin et al. | Apr 1996 | A |
5517405 | McAndrew et al. | May 1996 | A |
5537568 | Yanai et al. | Jul 1996 | A |
5544345 | Carpenter et al. | Aug 1996 | A |
5544347 | Yanai et al. | Aug 1996 | A |
5555371 | Duyanovich et al. | Sep 1996 | A |
5559957 | Balk | Sep 1996 | A |
5564037 | Lam | Oct 1996 | A |
5608865 | Midgely et al. | Mar 1997 | A |
5613134 | Lucus et al. | Mar 1997 | A |
5619644 | Crockett et al. | Apr 1997 | A |
5634052 | Morris | May 1997 | A |
5638509 | Dunphy et al. | Jun 1997 | A |
5659614 | Bailey, III | Aug 1997 | A |
5666501 | Jones et al. | Sep 1997 | A |
5673381 | Huai et al. | Sep 1997 | A |
5673382 | Cannon et al. | Sep 1997 | A |
5699361 | Ding et al. | Dec 1997 | A |
5729743 | Squibb | Mar 1998 | A |
5740405 | DeGraaf | Apr 1998 | A |
5751997 | Kullick et al. | May 1998 | A |
5758359 | Saxon | May 1998 | A |
5758649 | Iwashita et al. | Jun 1998 | A |
5761677 | Senator et al. | Jun 1998 | A |
5764972 | Crouse et al. | Jun 1998 | A |
5778165 | Saxon | Jul 1998 | A |
5778395 | Whiting et al. | Jul 1998 | A |
5812398 | Nielsen | Sep 1998 | A |
5813009 | Johnson et al. | Sep 1998 | A |
5813017 | Morris | Sep 1998 | A |
5860073 | Ferrel et al. | Jan 1999 | A |
5864846 | Voorhees et al. | Jan 1999 | A |
5875478 | Blumenau | Feb 1999 | A |
5887134 | Ebrahim | Mar 1999 | A |
5896531 | Curtis et al. | Apr 1999 | A |
5901327 | Ofek | May 1999 | A |
5924102 | Perks | Jul 1999 | A |
5950205 | Aviani, Jr. | Sep 1999 | A |
5974563 | Beeler, Jr. | Oct 1999 | A |
5983239 | Cannon | Nov 1999 | A |
5991753 | Wilde | Nov 1999 | A |
6012053 | Pant et al. | Jan 2000 | A |
6021415 | Cannon et al. | Feb 2000 | A |
6026414 | Anglin | Feb 2000 | A |
6052735 | Ulrich et al. | Apr 2000 | A |
6064821 | Shough et al. | May 2000 | A |
6073128 | Pongracz et al. | Jun 2000 | A |
6076148 | Kedem | Jun 2000 | A |
6091518 | Anabuki et al. | Jul 2000 | A |
6094416 | Ying | Jul 2000 | A |
6131095 | Low et al. | Oct 2000 | A |
6131190 | Sidwell | Oct 2000 | A |
6148412 | Cannon et al. | Nov 2000 | A |
6154787 | Urevig et al. | Nov 2000 | A |
6161111 | Mutalik et al. | Dec 2000 | A |
6167402 | Yeager | Dec 2000 | A |
6182198 | Hubis et al. | Jan 2001 | B1 |
6212512 | Barney et al. | Apr 2001 | B1 |
6226759 | Miller et al. | May 2001 | B1 |
6239800 | Mayhew et al. | May 2001 | B1 |
6253217 | Dourish et al. | Jun 2001 | B1 |
6260069 | Anglin | Jul 2001 | B1 |
6266679 | Szalwinski et al. | Jul 2001 | B1 |
6266784 | Hsiao et al. | Jul 2001 | B1 |
6269431 | Dunham | Jul 2001 | B1 |
6275953 | Vahalia et al. | Aug 2001 | B1 |
6298439 | Beglin | Oct 2001 | B1 |
6301592 | Aoyama et al. | Oct 2001 | B1 |
6308175 | Lang et al. | Oct 2001 | B1 |
6324581 | Xu et al. | Nov 2001 | B1 |
6327590 | Chidlovskii et al. | Dec 2001 | B1 |
6327612 | Watanabe et al. | Dec 2001 | B1 |
6328766 | Long | Dec 2001 | B1 |
6330570 | Crighton | Dec 2001 | B1 |
6330642 | Carteau | Dec 2001 | B1 |
6341287 | Sziklai et al. | Jan 2002 | B1 |
6343287 | Kumar et al. | Jan 2002 | B1 |
6343324 | Hubis et al. | Jan 2002 | B1 |
6345288 | Reed et al. | Feb 2002 | B1 |
RE37601 | Eastridge et al. | Mar 2002 | E |
6356801 | Goodman et al. | Mar 2002 | B1 |
6363462 | Bergsten | Mar 2002 | B1 |
6367073 | Elledge | Apr 2002 | B2 |
6374363 | Wu et al. | Apr 2002 | B1 |
6389432 | Pothapragada et al. | May 2002 | B1 |
6418478 | Ignatius et al. | Jul 2002 | B1 |
6421678 | Smiga et al. | Jul 2002 | B2 |
6421711 | Blumenau et al. | Jul 2002 | B1 |
6442706 | Wahl et al. | Aug 2002 | B1 |
6470332 | Weschler | Oct 2002 | B1 |
6484162 | Edlund et al. | Nov 2002 | B1 |
6487561 | Ofek et al. | Nov 2002 | B1 |
6487644 | Huebsch et al. | Nov 2002 | B1 |
6502205 | Yanai et al. | Dec 2002 | B1 |
6519679 | Devireddy et al. | Feb 2003 | B2 |
6538669 | Lagueux, Jr. et al. | Mar 2003 | B1 |
6540623 | Jackson | Apr 2003 | B2 |
6549918 | Probert, Jr. et al. | Apr 2003 | B1 |
6557039 | Leong et al. | Apr 2003 | B1 |
6564228 | O'Connor | May 2003 | B1 |
6593656 | Ahn et al. | Jul 2003 | B2 |
6618771 | Leja et al. | Sep 2003 | B1 |
6629110 | Cane et al. | Sep 2003 | B2 |
6647399 | Zaremba | Nov 2003 | B2 |
6658526 | Nguyen et al. | Dec 2003 | B2 |
6675177 | Webb | Jan 2004 | B1 |
6691232 | Wood et al. | Feb 2004 | B1 |
6721767 | De Meno et al. | Apr 2004 | B2 |
6732088 | Glance | May 2004 | B1 |
6732231 | Don et al. | May 2004 | B1 |
6732244 | Ashton et al. | May 2004 | B2 |
6745178 | Emens et al. | Jun 2004 | B1 |
6795828 | Ricketts | Sep 2004 | B2 |
6816941 | Carlson et al. | Nov 2004 | B1 |
6820070 | Goldman et al. | Nov 2004 | B2 |
6839741 | Tsai | Jan 2005 | B1 |
6839803 | Loh et al. | Jan 2005 | B1 |
6850994 | Gabryjelski | Feb 2005 | B2 |
6860422 | Hull et al. | Mar 2005 | B2 |
6865568 | Chau | Mar 2005 | B2 |
6871182 | Winnard et al. | Mar 2005 | B1 |
6892221 | Ricart et al. | May 2005 | B2 |
6948038 | Berkowitz et al. | Sep 2005 | B2 |
6957186 | Guheen et al. | Oct 2005 | B1 |
6970997 | Shibayama et al. | Nov 2005 | B2 |
6976039 | Chefalas et al. | Dec 2005 | B2 |
6995675 | Curkendall et al. | Feb 2006 | B2 |
6996616 | Leighton et al. | Feb 2006 | B1 |
7003641 | Prahlad et al. | Feb 2006 | B2 |
7028079 | Mastrianni et al. | Apr 2006 | B2 |
7035880 | Crescenti et al. | Apr 2006 | B1 |
7039860 | Gautestad et al. | May 2006 | B1 |
7058661 | Ciaramitaro et al. | Jun 2006 | B2 |
7099901 | Sutoh et al. | Aug 2006 | B2 |
7107298 | Prahlad et al. | Sep 2006 | B2 |
7107416 | Stuart et al. | Sep 2006 | B2 |
7133870 | Tripp et al. | Nov 2006 | B1 |
7139826 | Watanabe et al. | Nov 2006 | B2 |
7139846 | Rossi | Nov 2006 | B1 |
7146387 | Russo et al. | Dec 2006 | B1 |
7155421 | Haldar | Dec 2006 | B1 |
7155481 | Prahlad et al. | Dec 2006 | B2 |
7159081 | Suzuki | Jan 2007 | B2 |
7171468 | Yeung et al. | Jan 2007 | B2 |
7171585 | Gail et al. | Jan 2007 | B2 |
7188141 | Novaes | Mar 2007 | B2 |
7240100 | Wein et al. | Jul 2007 | B1 |
7246207 | Kottomtharayil et al. | Jul 2007 | B2 |
7269664 | Hutsch et al. | Sep 2007 | B2 |
7284033 | Jhanji | Oct 2007 | B2 |
7287047 | Kavuri | Oct 2007 | B2 |
7290017 | Wang et al. | Oct 2007 | B1 |
7313659 | Suzuki | Dec 2007 | B2 |
7328325 | Solis et al. | Feb 2008 | B1 |
7346623 | Prahlad et al. | Mar 2008 | B2 |
7346676 | Swildens et al. | Mar 2008 | B1 |
7346751 | Prahlad et al. | Mar 2008 | B2 |
7376947 | Evers | May 2008 | B2 |
7379978 | Anderson et al. | May 2008 | B2 |
7386535 | Kalucha et al. | Jun 2008 | B1 |
7395282 | Crescenti et al. | Jul 2008 | B1 |
7421460 | Chigusa et al. | Sep 2008 | B2 |
7424543 | Rice, III | Sep 2008 | B2 |
7434219 | De Meno et al. | Oct 2008 | B2 |
7457790 | Kochunni et al. | Nov 2008 | B2 |
7472142 | Prahlad et al. | Dec 2008 | B2 |
7496841 | Hadfield et al. | Feb 2009 | B2 |
7565484 | Ghosal et al. | Jul 2009 | B2 |
7577689 | Masinter et al. | Aug 2009 | B1 |
7577694 | Nakano et al. | Aug 2009 | B2 |
7584469 | Mitekura et al. | Sep 2009 | B2 |
7587715 | Barrett et al. | Sep 2009 | B1 |
7593935 | Sullivan | Sep 2009 | B2 |
7603626 | Williams et al. | Oct 2009 | B2 |
7606844 | Kottomtharayil | Oct 2009 | B2 |
7610285 | Zoellner et al. | Oct 2009 | B1 |
7668884 | Prahlad et al. | Feb 2010 | B2 |
7673175 | Mora et al. | Mar 2010 | B2 |
7676542 | Moser et al. | Mar 2010 | B2 |
7689899 | Leymaster et al. | Mar 2010 | B2 |
7730031 | Forster | Jun 2010 | B2 |
7734593 | Prahlad et al. | Jun 2010 | B2 |
7734669 | Kottomtharayil et al. | Jun 2010 | B2 |
7751628 | Reisman | Jul 2010 | B1 |
7761409 | Stefik et al. | Jul 2010 | B2 |
7792789 | Prahlad et al. | Sep 2010 | B2 |
7801871 | Gosnell | Sep 2010 | B2 |
7814118 | Kottomtharayil et al. | Oct 2010 | B2 |
7827266 | Gupta | Nov 2010 | B2 |
7831793 | Chakravarty et al. | Nov 2010 | B2 |
7840537 | Gokhale et al. | Nov 2010 | B2 |
7844676 | Prahlad et al. | Nov 2010 | B2 |
7865517 | Prahlad et al. | Jan 2011 | B2 |
7882077 | Gokhale et al. | Feb 2011 | B2 |
7882093 | Kottomtharayil et al. | Feb 2011 | B2 |
7937393 | Prahlad et al. | May 2011 | B2 |
7937420 | Tabellion et al. | May 2011 | B2 |
7937702 | De Meno et al. | May 2011 | B2 |
7984063 | Kottomtharayil et al. | Jul 2011 | B2 |
8037028 | Prahlad et al. | Oct 2011 | B2 |
8055627 | Prahlad et al. | Nov 2011 | B2 |
8060514 | Arrouye et al. | Nov 2011 | B2 |
8099428 | Kottomtharayil et al. | Jan 2012 | B2 |
8108427 | Prahlad et al. | Jan 2012 | B2 |
8140786 | Bunte et al. | Mar 2012 | B2 |
8161003 | Kavuri | Apr 2012 | B2 |
8229954 | Kottomtharayil et al. | Jul 2012 | B2 |
20020032878 | Karpf | Mar 2002 | A1 |
20020049883 | Schneider et al. | Apr 2002 | A1 |
20020120858 | Porter et al. | Aug 2002 | A1 |
20030046313 | Leung et al. | Mar 2003 | A1 |
20030050979 | Takahashi | Mar 2003 | A1 |
20030101086 | San Miguel | May 2003 | A1 |
20040039689 | Penney et al. | Feb 2004 | A1 |
20040267815 | De Mes | Dec 2004 | A1 |
20050039069 | Prahlad et al. | Feb 2005 | A1 |
20050097070 | Enis et al. | May 2005 | A1 |
20050216788 | Mani-Meitav et al. | Sep 2005 | A1 |
20050251786 | Citron et al. | Nov 2005 | A1 |
20050278207 | Ronnewinkel | Dec 2005 | A1 |
20060036619 | Fuerst et al. | Feb 2006 | A1 |
20060070061 | Cox et al. | Mar 2006 | A1 |
20060115802 | Reynolds | Jun 2006 | A1 |
20060116999 | Dettinger et al. | Jun 2006 | A1 |
20060149604 | Miller | Jul 2006 | A1 |
20060149724 | Ritter et al. | Jul 2006 | A1 |
20060224846 | Amarendran et al. | Oct 2006 | A1 |
20060282900 | Johnson et al. | Dec 2006 | A1 |
20070022145 | Kavuri | Jan 2007 | A1 |
20070028229 | Knatcher | Feb 2007 | A1 |
20070043715 | Kaushik et al. | Feb 2007 | A1 |
20070061266 | Moore et al. | Mar 2007 | A1 |
20070061298 | Wilson et al. | Mar 2007 | A1 |
20070136541 | Herz et al. | Jun 2007 | A1 |
20070166674 | Kochunni et al. | Jul 2007 | A1 |
20070214330 | Minami et al. | Sep 2007 | A1 |
20070226320 | Hager et al. | Sep 2007 | A1 |
20070250810 | Tittizer et al. | Oct 2007 | A1 |
20070296258 | Calvert et al. | Dec 2007 | A1 |
20080282048 | Miura | Nov 2008 | A1 |
20080288947 | Gokhale et al. | Nov 2008 | A1 |
20080288948 | Attarde et al. | Nov 2008 | A1 |
20080320319 | Muller et al. | Dec 2008 | A1 |
20090171883 | Kochunni et al. | Jul 2009 | A1 |
20090319534 | Gokhale | Dec 2009 | A1 |
20090319585 | Gokhale | Dec 2009 | A1 |
20090320029 | Kottomtharayil | Dec 2009 | A1 |
20090320033 | Gokhale et al. | Dec 2009 | A1 |
20090320037 | Gokhale et al. | Dec 2009 | A1 |
20100031017 | Gokhale et al. | Feb 2010 | A1 |
20100070466 | Prahlad et al. | Mar 2010 | A1 |
20100070474 | Lad | Mar 2010 | A1 |
20100070725 | Prahlad et al. | Mar 2010 | A1 |
20100070726 | Ngo et al. | Mar 2010 | A1 |
20100114837 | Prahlad et al. | May 2010 | A1 |
20110093471 | Brockway et al. | Apr 2011 | A1 |
20110138225 | Gunabalasubramaniam et al. | Jun 2011 | A1 |
20110173171 | De Meno et al. | Jul 2011 | A1 |
20120036108 | Prahlad et al. | Feb 2012 | A1 |
20130145376 | Gokhale et al. | Jun 2013 | A1 |
Number | Date | Country |
---|---|---|
0259912 | Mar 1988 | EP |
0405926 | Jan 1991 | EP |
0467546 | Jan 1992 | EP |
0774715 | May 1997 | EP |
0809184 | Nov 1997 | EP |
0899662 | Mar 1999 | EP |
0910019 | Apr 1999 | EP |
0981090 | Feb 2000 | EP |
0986011 | Mar 2000 | EP |
1035690 | Sep 2000 | EP |
2216368 | Oct 1989 | GB |
07-046271 | Feb 1995 | JP |
7073080 | Mar 1995 | JP |
8044598 | Feb 1996 | JP |
2000035969 | Feb 2000 | JP |
2003531435 | Oct 2003 | JP |
WO-9513580 | May 1995 | WO |
WO-9912098 | Mar 1999 | WO |
WO-0058865 | Oct 2000 | WO |
WO-0106368 | Jan 2001 | WO |
WO-0116693 | Mar 2001 | WO |
WO-0180005 | Oct 2001 | WO |
Entry |
---|
Quinlan, Sean. “A cached worm file system.” Software: Practice and Experience 21.12 (1991): 1289-1299. |
Hutchinson, Norman C., et al. “Logical vs. physical file system backup.” OSDI. vol. 99. 1999. |
Wu, Chin-Hsien, Tei-Wei Kuo, and Li-Pin Chang. “Efficient initialization and crash recovery for log-based file systems over flash memory.” Proceedings of the 2006 ACM symposium on Applied computing. ACM, 2006. |
Matthews, Jeanna, et al. “Data protection and rapid recovery from attack with a virtual private file server and virtual machine appliances.” Proceedings of the IASTED International Conference on Communication, Network and Information Security (CNIS 2005). 2005. |
Armstead et al., “Implementation of a Campus-wide Distributed Mass Storage Service: The Dream vs. Reality,” IEEE, 1995, pp. 190-199. |
Arneson, “Mass Storage Archiving in Network Environments,” Digest of Papers, Ninth IEEE Symposium on Mass Storage Systems, Oct. 31, 1988-Nov. 3, 1988, pp. 45-50, Monterey, CA. |
Cabrera et al., “ADSM: A Multi-Platform, Scalable, Backup and Archive Mass Storage System,” Digest of Papers, Compcon '95, Proceedings of the 40th IEEE Computer Society International Conference, Mar. 5, 1995-Mar. 9, 1995, pp. 420-427, San Francisco, CA. |
Eitel, “Backup and Storage Management in Distributed Heterogeneous Environments,” IEEE, 1994, pp. 124-126. |
Jander, M., “Launching Storage-Area Net,” Data Communications, US, McGraw Hill, NY, vol. 27, No. 4 (Mar. 21, 1998), pp. 64-72. |
Jason Gait, “The Optical File Cabinet: A Random-Access File System for Write-Once Optical Disks,” IEEE Computer, vol. 21, No. 6, pp. 11-22 (1988) (see in particular figure 5 in p. 15 and recitation in claim 5). |
Rosenblum et al., “The Design and Implementation of a Log-Structured File System,” Operating Systems Review SIGOPS, vol. 25, No. 5, New York, US, pp. 1-15 (May 1991). |
U.S. Appl. No. 13/538,290, filed Jun. 29, 2012, Kottomtharayil. |
PCT International Search Report for International Application No. PCT/US09/32325, date of mailing Mar. 17, 2009, 11 pages. |
Hennessy et al., “Computer Architecture—A Quantitative Approach”, 2nd Edition, 1996, pp. 246-250. |
Microsoft Press Computer Dictionary Third Edition, “Data Compression,” Microsoft Press, 1997, p. 130. |
Pitoura et al., “Locating Objects in Mobile Computing”, IEEE Transactions on Knowledge amd Data Engineering, vol. 13, No. 4, Jul./Aug. 2001, pp. 571-592. |
Rowe et al., “Indexes for User Access to Large Video Databases”, Storage and Retrieval for Image and Video Databases II, IS,& T/SPIE Symp. on Elec. Imaging Sci. & Tech., Feb. 1994, pp. 1-12. |
U.S. Appl. No. 09/609,977, filed Jul. 5, 2000, Inventor(s) A. Prahlad et al., 55 pages. |
U.S. Appl. No. 13/076,792, filed Mar. 31, 2011, Inventor(s) P. Kumarasamy et al., 37 pages. |
U.S. Appl. No. 13/538,290, filed Jun. 29, 2012, Inventor(s) R. Kottomtharayil., 39 pages. |
Veeravalli, B., “Network Caching Strategies for a Shared Data Distribution for a Predefined Service Demand Sequence,” IEEE Transactions on Knowledge and Data Engineering, vol. 15, No. 6, Nov./Dec. 2003, pp. 1487-1497. |
U.S. Appl. No. 13/801,625, filed Mar. 13, 2013, Yongtao et al. |
Extended European Search Report for Application No. EP 09767119, Mail date Feb. 11, 2013, 12 pages. |
Number | Date | Country | |
---|---|---|---|
20100076932 A1 | Mar 2010 | US |
Number | Date | Country | |
---|---|---|---|
61094763 | Sep 2008 | US |