IP Library Granted Patent US 7,593,966
Granted Patent B2
US 7,593,966 · App. 10/659,642 · Granted Sep 22, 2009

Method and apparatus for server share migration and server recovery using hierarchical storage management

Assignee: Exagrid Systems, Inc.
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 7,593,966
App. No.
10/659,642
Granted
Sep 22, 2009
Kind
B2
Abstract

The present invention provides systems and methods for transferring a set of files. Metadata and stub files associated with the set of files are received at a destination fileserver, a location component in the destination fileserver is updated to maintain a list of repository nodes associated with each file in the set of files, and each stub file is replaced with the full content of the file associated with the stub file. The replacing includes receiving a client request for a specified file in the set of files and replacing the stub file associated with the specified file with a full content of the specified file if the full content of the specified file has not yet been transferred. Replacing the stub file associated with a requested file is a higher priority task than replacing a stub file associated with a non-requested file.

Claims (79)

1. A method for storing data, the method comprising:

providing a fileserver having:

a file system configured to store client files;

a policy component configured to store a protection policy associated with a set of files;

a mirror service in communication with the policy component, the mirror service configured to prepare modified and created files in a set of files to be written to a repository as specified in the protection policy associated with the set of files;

a fileserver API coupled to the mirror service and configured to communicate with a repository;

a fileserver file transfer module in communication with the file system and configured to transfer files for the file system to at least one repository or transfer files for the file system from at least one repository; and,

a location updating component configured to maintain a list of repository nodes that contain a replica of each file in the set of files and a list of files in the set of files stored at the fileserver;

said fileserver initiates recovery of files in the set of files on the fileserver, wherein based on the list of files and the list of repository nodes stored at said fileserver, a replica of a file in the list of files is recovered from a repository node in the list of repository nodes;

wherein using a stub file in the set of stub files, said fileserver allows access to a full content of a file associated with the stub file by receiving a client request for a specified file in the set of files, replacing the stub file with the full content of the specified file associated with the stub file, and replacing remaining stub files in the set of stub files with respective full contents of remaining files in the set of files while replacing the stub file with the full content of the specified file;

determining a caching level for said fileserver; and

recursively, determining a utilization of the fileserver;

comparing the caching level against the utilization; and

creating a file migration candidate list when the utilization exceeds the caching level;

staging out one candidate file;

replacing the candidate file with a stub file; and

determining whether the utilization of the fileserver still exceeds the caching level, wherein said determining if the utilization of the fileserver still exceeds the caching level further comprises staging out another candidate file on the candidate list and again determining if the utilization of the fileserver exceeds the caching level.

2. The method of claim 1 wherein a metadata is received at the fileserver from a repository node in the list of repository nodes.

3. The method of claim 2 further comprising:

selecting the fileserver for receiving the metadata and the set of stub files.

4. The method of claim 1 further comprising:

selecting a share of data for receiving at said fileserver.

5. The method of claim 3 wherein the metadata is associated with a file in the set of files and includes

a fileserver name where the file was created;

a size of the file;

the list of all repository nodes that maintain a replica of the file; and,

a content checksum of the file when the file was first created or last modified.

6. The method of claim 1 wherein the set of files is the set of files that have been accessed during a specified period; and

wherein the replacing each stub file step further comprises

recursively replacing the stub files associated with the files that were accessed within the specified period until all stub files associated with the set of files have been replaced.

7. The method of claim 6 wherein the specified period is a most-recent period.

8. The method according to claim 6 ,

wherein a recovery service is configured to recursively replace the stub files associated with the files that were accessed within the specified period until all stub files associated with the set of files have been replaced.

9. The method of claim 1 wherein said replacing the stub file for the specified file is a higher priority task than replacing the stub files for non-requested files.

10. A system for storing data, the system comprising:

a fileserver having:

fileserver hardware;

a file system configured to store client files;

a policy component configured to store a protection policy associated with a set of files;

a mirror service in communication with the policy component, the mirror service configured to prepare modified and created files in a set of files to be written to a repository as specified in the protection policy associated with the set of files;

a fileserver API coupled to the mirror service and configured to communicate with a repository;

a fileserver file transfer module in communication with the file system and configured to transfer files for the file system to at least one repository or transfer files for the file system from at least one repository; and,

a location updating component configured to maintain a list of repository nodes that contain a replica of each file in the set of files and a list of files in the set of files stored at the fileserver;

said fileserver initiates recovery of files in the set of files on the fileserver, wherein based on the list of files and the list of repository nodes stored at said fileserver, a replica of a file in the list of files is recovered from a repository node in the list of repository nodes;

wherein using a stub file in the set of stub files, said fileserver allows access to a full content of a file associated with the stub file by receiving a client request for a specified file in the set of files, replacing the stub file with the full content of the specified file associated with the stub file, and replacing remaining stub files in the set of stub files with respective full contents of remaining files in the set of files while replacing the stub file with the full content of the specified file;

said mirror service is configured to:

determine a caching level for said fileserver; and

recursively, determine a utilization of the fileserver;

compare the caching level against the utilization; and

create a file migration candidate list when the utilization exceeds the caching level;

stage out one candidate file;

replace the candidate file with a stub file; and

determine whether the utilization of the fileserver still exceeds the caching level, wherein said determining whether the utilization of the fileserver still exceeds the caching level further comprises staging out another candidate file on the candidate list and again determining if the utilization of the fileserver exceeds the caching level.

11. The system of claim 10 further comprising

a filter driver operative to intercept input/output activity initiated by client file requests and to maintain a list of modified and created files since a prior backup.

12. The system of claim 11 further comprising:

a location cache in communication with the mirror service and configured to indicate which repository should receive an updated version of an existing file; and

a location manager coupled to the location cache and configured to update the location cache when the system writes a new file to a specific repository node.

13. The system of claim 10 further comprising

a local repository having:

a local repository node API configured to communicate with the fileserver API;

a local repository file transfer module in communication with the fileserver file transfer module and configured to transfer files to the fileserver file transfer module; and

a data mover in communication with the local repository node API and configured to supervise the replication of files from the local repository to the fileserver.

14. The system of claim 13 wherein the fileserver API is configured to communicate with a network and wherein the system further comprises:

a remote repository having:

a remote repository node API configured to communicate with the network;

a remote repository file transfer module in communication with the local file transfer module and configured to transfer files to the fileserver file transfer module; and

a data mover in communication with the remote repository node API and configured to supervise the replication of files from the remote repository to the fileserver.

15. The system according to claim 10 wherein the fileserver is configured to receives a metadata from a repository node in the list of repository nodes.

16. The system according to claim 15 , wherein the metadata is associated with a file in the set of files and includes

a fileserver name where the file was created;

a size of the file;

the list of all repository nodes that maintain a replica of the file; and,

a content checksum of the file when the file was first created or last modified.

17. The system according to claim 10 wherein the set of files is the set of files that have been accessed during a specified period; and

wherein the recovery service is further configured to recursively replace the stub files associated with the files that were accessed within the specified period until all stub files associated with the set of files have been replaced.

18. The system according to claim 17 , wherein the specified period is a most-recent period.

19. The system according to claim 10 , wherein the set of files in the set of files that has been accessed during a specified period; and

wherein a recovery service is configured to recursively replace the stub files associated with the files that were accessed within the specified period until all stub files associated with the set of files have been replaced.

Assignments (6)
RELEASE OF SECURITY INTEREST Recorded Jun 3, 2021
From: COMERICA BANK
To: EXAGRID SYSTEMS, INC.
Reel/Frame 056425/0108 →
SECURITY INTEREST Recorded May 27, 2021
From: EXAGRID SYSTEMS, INC.
To: SILICON VALLEY BANK, AS ADMINISTRATIVE AGENT
Reel/Frame 056372/0929 →
CORRECTIVE ASSIGNMENT TO CORRECT THE APPL. NOS. 10303656, 10114831, 10073855 AND 10067946 BY REMOVING THEM FOR THE PATENT NOS. PREVIOUSLY RECORDED ON REEL 049619 FRAME 0342. ASSIGNOR(S) HEREBY CONFIRMS THE SECURITY INTERESTS. Recorded Feb 9, 2021
From: EXAGRID SYSTEMS, INC.
To: ORIX GROWTH CAPITAL, LLC
Reel/Frame 056399/0163 →
SECURITY INTEREST Recorded Jun 28, 2019
From: EXAGRID SYSTEMS, INC.
To: ORIX GROWTH CAPITAL, LLC
Reel/Frame 049619/0342 →
SECURITY INTEREST Recorded Oct 1, 2018
From: EXAGRID SYSTEMS, INC.
To: COMERICA BANK
Reel/Frame 047172/0685 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 15, 2003
From: THERRIEN, DAVID G.; POWNELL, JAMES E.; VANDERSPEK, ADRIAN; KENNA, HERMAN ROBERT; HANSEN, THOMAS G.; GILHOOLY, SEAN R.; EVILIA, STEVEN H.
To: EXAGRID SYSTEMS, INC.
Reel/Frame 014794/0793 →
Continuity (2)
Provisional Application 6040968400 · Sep 10, 2002
Related Publication 20040088382A1 · May 6, 2004