Method and apparatus for file system disaster recovery
First Claim
1. A geographical data replication system comprising:
- a local site having at least one local server running a first file system, at least one client and first stable file storage, the local server being configured to serve via the first file system file requests from the at least one client;
a remote site having at least one remote server running a second file system and second stable file storage;
a network connecting the local and remote sites;
the local server, being configured to intercept the file requests and to determine which of the file requests is one of a first set of file requests that will alter file state of the first file system;
a log file stored on the first stable file storage in which the local server writes operations and data required to replicate changes to the file state of the first file system resulting from performing the first set of file requests, the local server being configured to periodically flush the log file to the remote site;
a first identifier maintained by the first file system for each of the files on the first stable file storage, the first identifier being transmitted by the local server to the remote server for each of the flushed files;
a second identifier maintained by the second file system for each of the flushed files replicated on the remote server; and
a mapping table on the remote server that maintains a mapping between the first and second identifiers enabling the remote server to serve the requests from the clients;
the remote server being configured to update state of the second file system in accordance with the flushed log file by performing the operations on the data represented in the flushed log file;
such that, whenever failover occurs from the local to the remote server, the remote server is able to serve the requests from the clients with little or no loss of file state.
2 Assignments
0 Petitions
Accused Products
Abstract
A file disaster recovery system that employs geographical replication of data from a local site to remote site in a such a manner that file requests from clients of the local site can be handled by a file server on the remote site following a failover from the local site to the remote site. Geographical data replication software running on a local server checkpoints to a log in local stable storage all information on file operations that change the file state of the local file system. According to a selected mode, the local geographical data replication software flushes information in the log pertaining to the file operations since the last flush to the remote site. At the remote site, compatible remote geographical data replication software running on a remote file server receives the flushed log and replicates in sequence order the file operations represented in the flushed log. The results of the operations are stored on remote stable storage. The local and remote servers can be clusters or single servers. There is no need for commonality, except for operating and file systems, between the local and remote sites. Because operations are replicated and not low level, formatted data, the local and remote stable file storage can be completely different.
550 Citations
43 Claims
-
1. A geographical data replication system comprising:
-
a local site having at least one local server running a first file system, at least one client and first stable file storage, the local server being configured to serve via the first file system file requests from the at least one client; a remote site having at least one remote server running a second file system and second stable file storage; a network connecting the local and remote sites; the local server, being configured to intercept the file requests and to determine which of the file requests is one of a first set of file requests that will alter file state of the first file system; a log file stored on the first stable file storage in which the local server writes operations and data required to replicate changes to the file state of the first file system resulting from performing the first set of file requests, the local server being configured to periodically flush the log file to the remote site; a first identifier maintained by the first file system for each of the files on the first stable file storage, the first identifier being transmitted by the local server to the remote server for each of the flushed files; a second identifier maintained by the second file system for each of the flushed files replicated on the remote server; and a mapping table on the remote server that maintains a mapping between the first and second identifiers enabling the remote server to serve the requests from the clients; the remote server being configured to update state of the second file system in accordance with the flushed log file by performing the operations on the data represented in the flushed log file; such that, whenever failover occurs from the local to the remote server, the remote server is able to serve the requests from the clients with little or no loss of file state. - View Dependent Claims (2, 3, 4, 5, 6, 8, 9, 10, 11, 12, 13)
-
-
7. A geographical data replication system comprising:
-
a local site having at least one local server running a first file system, at least one client and first stable file storage, the local server being configured to serve via the first file system file requests from the at least one client; a remote site having at least one remote server running a second file system and second stable file storage; a network connecting the local and remote sites; the local server, being configured to intercept the file requests and to determine which of the file requests is one of a first set of file requests that will alter file state of the first file system; and a log file stored on the first stable file storage in which the local server writes operations and data required to replicate changes to the file state of the first file system resulting from performing the first set of file requests, the local server being configured to periodically flush the log file to the remote site; the remote server being configured to update state of the second file system in accordance with the flushed log file by performing the operations on the data represented in the flushed log file; such that, whenever failover occurs from the local to the remote server, the remote server is able to serve the requests from the clients with little or no loss of file state; wherein the first and second file systems are PXFS; the first set of file requests that will alter state of the first file system include selected file data methods file attribute methods and directory methods; the file data methods include page-- out; write-- out; sync; uiowrite; and fsync; the file attribute methods include; set-- attributes; set-- secattr; ioctl; and the directory methods include; create-- fobj; remove-- fobj; create-- symlink; rename-- fobj; link-- fobj; create-- dir; and remove-- dir.
-
-
14. A method for geographical data replication that can be implemented in a computer network including a local site with a local server and at least one client configured to issue file requests to a first file system run by the local server and a remote site with a remote server running a second file system that is interoperable with the first file system, comprising:
-
the local server; intercepting the file requests; determining which of the file requests is one of a first set of file requests that will alter file state of the first file system; writing to a persistent log file operations and data required to replicate changes to the file state of the first file system resulting from performing the first set of file requests; periodically flushing the log file to the remote site; and transmitting to the remote server for each of the flushed files a first identifier maintained by the first file system for each of the files on the first stable file storage; and the remote server; updating state of the second file system in accordance with the flushed log file; and mapping the first identifier to a second identifier maintained by the second file system for each of the flushed files, enabling the remote server to serve the requests from the clients; such that, whenever failover occurs from the local to the remote server, the remote server is able to serve the requests from the clients with little or no loss of file state. - View Dependent Claims (15, 16, 17, 18, 21, 22, 23, 24, 25, 26)
-
-
20. A method for geographical data replication that can be implemented in a computer network including a local site with a local server and at least one client configured to issue file requests to a first file system run by the local server and a remote site with a remote server running a second file system that is interoperable with the first file system, comprising:
-
the local server; intercepting the file requests; determining which of the file requests is one of a first set of file requests that will alter file state of the first file system; writing to a persistent log file operations and data required to replicate changes to the file state of the first file system resulting from performing the first set of file requests; and periodically flushing the log file to the remote site; and the remote server; updating state of the second file system in accordance with the flushed log file; such that, whenever failover occurs from the local to the remote server, the remote server is able to serve the requests from the clients with little or no loss of file state; wherein the first set of file requests that will alter state of the first file system include selected file data methods, file attribute methods, and directory methods; the first and second file systems are PXFS; the file data methods include page-- out; write-- out; sync; uiowrite; and fsync; the file attribute methods include; set-- attributes; set-- secattr; ioctl; and the directory methods include; create-- fobj; remove-- fobj; create-- symlink; rename-- fobj; ink-- fobj; create-- dir; and remove-- dir. - View Dependent Claims (19)
-
-
27. A computer program product for providing geographical data replication in a computer network including a local site with a local server and at least one client configured to issue file requests to a first file system run by the local server and a remote site with a remote server running a second file system that is interoperable, the first file system maintaining a first identifier for each file on the first stable file storage, the computer program product including a computer readable storage medium and a computer program mechanism embedded therein, the computer program mechanism comprising:
-
local geographical data replication software that configures the local server to; intercept the file requests; determine which of the file requests is one of a first set of file requests that will alter file state of the first file system; write to a persistent log file operations and data required to replicate changes to the file state of the first file system resulting from performing the first set of file requests; periodically flush the log file to the remote site; and pass to the remote server the first identifier for each of the flushed files; and remote geographical replication software that configures the remote server to;
update state of the second file system in accordance with the flushed log file by performing the operations on the data represented in the flushed log file, maintain a second identifier for each of the flushed files replicated on the remote server, and maintain a mapping table on the remote server that maintains a mapping between the first and second identifiers, enabling the remote server to serve the requests from the clients;such that, whenever failover occurs from the local to the remote server, the remote server is able to serve the requests from the clients with little or no loss of file state. - View Dependent Claims (28, 29, 30, 31, 32, 33, 35, 36, 37, 38, 39, 40)
-
-
34. A computer program product A computer program product for providing geographical data replication in a computer network including a local site with a local server and at least one client configured to issue file requests to a first file system run by the local server and a remote site with a remote server running a second file system that is interoperable, the computer program product including a computer readable storage medium and a computer program mechanism embedded therein, the computer program mechanism comprising:
-
local geographical data replication software that configures the local server to; intercept the file requests; determine which of the file requests is one of a first set of file requests that will alter file state of the first file system; write to a persistent log file operations and data required to replicate chances to the file state of the first file system resulting from performing the first set of file requests; and periodically flush the log file to the remote site; and remote geographical replication software that configures the remote server to;
update state of the second file system in accordance with the flushed log file by performing the operations on the data represented in the flushed log file;such that, whenever failover occurs from the local to the remote server, the remote server is able to serve the requests from the clients with little or no loss of file state; wherein the first set of file requests that will alter state of the first file system include selected file data methods, file attribute methods and directory methods; the first and second file systems are PXFS; the file data methods include page-- out; write-- out; sync; uiowrite; and fsync; the file attribute methods include; set-- attributes; set-- secattr; ioctl; and the directory methods include; create-- fobj; remove-- fobj; create-- symlink; rename-- fobj; link-- fobj; create-- dir; and remove-- dir.
-
-
41. A geographical data replication system comprising:
-
a local server configured to intercept file requests directed to a first file system and to determine which of the file requests is one of a first set of file requests that will alter file state of the first file system and to maintain a first identifier for each file in the first file system; and a persistent log file in which the local server writes operations and data required to replicate changes to the file state of the first file system resulting from performing the first set of file requests, the local server being configured to periodically flush the log file to a remote server; the remote server being configured to;
update state of a second file system in accordance with the flushed log file by performing the operations on the data represented in the flushed log file, maintain a second identifier for each of the files flushed to the remote server, and maintain a mapping table on the remote server that maintains a mapping between the first and second identifiers, enabling the remote server to serve the requests from the clients;such that, whenever failover occurs from the local to the remote server, the remote server is able to serve the file requests with little or no loss of file state.
-
-
42. A method for geographical data replication, comprising:
-
on a local server; intercepting file requests directed to a first file system; determining which of the file requests is one of a first set of file requests that will alter file state of the first file system; writing to a persistent log file operations and data required to replicate changes to the file state of the first file system resulting from performing the first set of file requests; maintain a first identifier for each file in the first file system, and periodically flushing the log file to a remote server; and on a remote server; updating state of the second file system in accordance with the flushed log file, maintaining a second identifier for each of the files flushed to the remote server, and maintaining a mapping table on the remote server that maintains a mapping between the first and second identifiers, enabling the remote server to serve the requests from the clients; such that, whenever failover occurs from the local to the remote server, the remote server is able to serve the requests from the clients with little or no loss of file state.
-
-
43. A computer program product for providing geographical data replication, the computer program product including a computer readable storage medium and a computer program mechanism embedded therein, the computer program mechanism comprising:
-
local geographical data replication software that configures a local server to; intercept file requests directed to a first file system; determine which of the file requests is one of a first set of file requests that will alter file state of the first file system; write to a persistent log file operations and data required to replicate changes to the file state of the first file system resulting from performing the first set of file requests; maintain a first identifier for each file in the first file system, and periodically flush the log file to a remote server; and remote geographical replication software that configures the remote server to; update state of a second file system in accordance with the flushed log file by performing the operations on the data represented in the flushed log file, maintain a second identifier for each of the files flushed to the remote server, and maintain a mapping table on the remote server that maintains a mapping between the first and second identifiers, enabling the remote server to serve the requests from the clients; such that, whenever failover occurs from the local to the remote server, the remote server is able to serve the requests from the clients with little or no loss of file state.
-
Specification