Circular and bi-directional mirroring of flexible volumes
First Claim
1. A method of mirroring data, comprising the steps of:
- in a first receiving step, receiving, at least one data write request at a source storage server;
storing, in a first cache on said source storage server, said at least one data write request received in said first receiving step;
writing, by said source storage server into at least one first log file of a plurality of log files on a destination storage server, information about said at least one data write request received in said first receiving step;
in at least one cache flush operation performed on said source storage server, flushing said first cache on said source storage server, and, responsive to receiving at least one next data write request at said source storage server, beginning to write information about said at least one next data write request into at least one second log file of said plurality of log files on said destination storage server by said source storage server,wherein, each time said first cache is flushed, said source storage server begins writing information about at least one next data write request to a different one of said plurality of log files on said destination storage server;
in a second receiving step, receiving at least one data write request at said destination storage server;
storing, in a second cache on said destination storage server, said at least one data write request received in said second receiving step;
in at least one cache flush operation performed on said destination storage server, flushing said second cache on said destination storage server; and
responsive to said flushing of said second cache, performing one of deallocating and overwriting said at least one first log file,wherein a total number of said plurality of log files on said destination storage server is greater than or equal to a number of cache flush operations performed on said source storage server between cache flush operations performed on said destination storage server.
2 Assignments
0 Petitions
Accused Products
Abstract
A method and system mirror flexible volumes in a circular or bi-directional configuration, without creating a deadlock. A source filer maintains a number of log files on a destination filer, where the number of log files is greater than or equal to the number of cache flush operations the primary filer performs between cache flush operations on the destination filer. The source filer can create the log files in advance. Alternatively or in addition, the source filer can create the log files as needed, i.e., the source filer can create a log file when the source filer flushes its cache. Once the destination filer flushes its cache, the log files created prior to the destination filer cache flush can be deallocated or reused.
31 Citations
18 Claims
-
1. A method of mirroring data, comprising the steps of:
- in a first receiving step, receiving, at least one data write request at a source storage server;
storing, in a first cache on said source storage server, said at least one data write request received in said first receiving step; writing, by said source storage server into at least one first log file of a plurality of log files on a destination storage server, information about said at least one data write request received in said first receiving step; in at least one cache flush operation performed on said source storage server, flushing said first cache on said source storage server, and, responsive to receiving at least one next data write request at said source storage server, beginning to write information about said at least one next data write request into at least one second log file of said plurality of log files on said destination storage server by said source storage server, wherein, each time said first cache is flushed, said source storage server begins writing information about at least one next data write request to a different one of said plurality of log files on said destination storage server; in a second receiving step, receiving at least one data write request at said destination storage server; storing, in a second cache on said destination storage server, said at least one data write request received in said second receiving step; in at least one cache flush operation performed on said destination storage server, flushing said second cache on said destination storage server; and responsive to said flushing of said second cache, performing one of deallocating and overwriting said at least one first log file, wherein a total number of said plurality of log files on said destination storage server is greater than or equal to a number of cache flush operations performed on said source storage server between cache flush operations performed on said destination storage server. - View Dependent Claims (2, 3, 4, 5, 6)
- in a first receiving step, receiving, at least one data write request at a source storage server;
-
7. A method of mirroring data, comprising the steps of:
-
in a first receiving step, receiving, at least one data write request at a source storage server; storing, in a first cache on said source storage server, said at least one data write request received in said first receiving step; writing, by said source storage server into at least one first log file of a plurality of log files on a destination storage server, information about said at least one data write request received in said first receiving step; in at least one cache flush operation performed on said source storage server, flushing said first cache on said source storage server, and, responsive to receiving at least one next data write request at said source storage server, beginning to write information about said at least one next data write request into at least one second log file of said plurality of log files on said destination storage server by said source storage server, wherein, each time said first cache is flushed, said source storage server begins writing information about at least one next data write request to a different one of said plurality of log files on said destination storage server; in a second receiving step, receiving at least one data write request at said destination storage server; storing, in a second cache on said destination storage server, said at least one data write request received in said second receiving step; in at least one cache flush operation performed on said destination storage server, flushing said second cache on said destination storage server; and responsive to said flushing of said second cache, de allocating said at least one first log file, wherein a total number of said plurality of log files on said destination storage server is greater than or equal to a number of cache flush operations performed on said source storage server between cache flush operations performed on said destination storage server. - View Dependent Claims (8, 9)
-
-
10. A system for mirroring data, comprising:
-
a source storage server including a first cache; and a destination storage server including a second cache, said destination storage server being operative to maintain a plurality of log files including at least one first log file and at least one second log file, wherein said source storage server is operative; to receive at least one first data write request; to store the at least one first data write request in the first cache; to write information about the at least one first data write request into the at least one first log file maintained on said destination storage server; and in at least one cache flush operation, to flush the first cache, and, responsive to receiving at least one next data write request at said source storage server, to begin to write information about said at least one next data write request into the at least one second log file maintained on said destination storage server, wherein, each time the first cache is flushed, said source storage server is operative to begin writing information about at least one next data write request to a different one of said plurality of log files on said destination storage server, wherein said destination storage server is operative; to receive at least one second data write request; to store the at least one second data write request in the second cache; in at least one cache flush operation, to flush the second cache, and responsive to said flushing of said second cache, to perform one of de allocating and overwriting the at least one first log file, wherein a total number of said plurality of log files on said destination storage server is greater than or equal to a number of cache flush operations performed by said source storage server between cache flush operations performed by said destination storage server. - View Dependent Claims (11, 12, 13, 14, 15, 16, 17, 18)
-
Specification