Claims
- 1. A method for data mirroring, comprising the steps of mirroring data and performing a local-remote role reversal of mirroring units.
- 2. A computer storage medium configured to perform a method for data mirroring, the method comprising the steps of mirroring data and performing a local-remote role reversal of mirroring units.
- 3. A data mirroring system comprising at least two mirroring units, each mirroring unit configured by a means for performing a local-remote role reversal of the mirroring units in the system.
- 4. A method for data mirroring, comprising the steps of mirroring data and storing changed logical block numbers in a buffer rather than storing changed data in the buffer.
- 5. The method of claim 4, further comprising the step of changing a logical block number in place in the buffer to reference data at a second location rather than referencing data at a first location when a block corresponding to the logical block number is overwritten, the first location holding data for the block before the block is overwritten and the second location holding data for the block after the block is overwritten.
- 6. A computer storage medium configured to perform a method for data mirroring, the method comprising the steps of mirroring data and storing changed logical block numbers in a circular buffer rather than storing changed data in the circular buffer.
- 7. The configured medium of claim 6, wherein the method further comprises the step of changing a logical block number in place in the buffer to reference data at a second location rather than referencing data at a first location when a block corresponding to the logical block number is overwritten, the first location holding data for the block before the block is overwritten and the second location holding data for the block after the block is overwritten.
- 8. A mirroring unit comprising a buffer and a means for storing changed logical block numbers in the buffer rather than storing changed data in the buffer.
- 9. The mirroring unit of claim 8, wherein the storing means comprises a virtual block allocation structure.
- 10. The mirroring unit of claim 9, wherein the virtual block allocation structure includes block checksums rather than block data.
- 11. The mirroring unit of claim 10, wherein the mirroring unit transmits block checksums across a journey link to another mirroring unit rather than transmitting block data across the journey link during a resynchronization of the two mirroring un its.
- 12. A method for placing a secondary server in a hot stand-by mode, comprising the steps of booting the secondary server and then providing to the secondary server, from a mirroring unit which is in a secondary role, a “media not ready” signal whereby an emulation layer responds to requests from the secondary server as to size and availability of data, but denies the secondary server access to data content until the mirroring unit's role is changed.
- 13. The method of claim 12, further comprising the step of performing a local-remote role reversal between the mirroring unit and another mirroring unit in a data mirroring system to change each mirroring unit's role.
- 14. A computer storage medium configured to perform a method for placing a secondary server in a hot stand-by mode, the method comprising the steps of receiving a query signal from the secondary server and then providing to the secondary server a responsive signal, whereby an emulation layer of a mirroring unit responds to requests from the secondary server by providing at least information about the size of mirroring unit data but denies the secondary server access to mirroring unit data content.
- 15. The configured medium of claim 14, wherein the method further comprises the step of performing a local-remote role reversal between the mirroring unit and another mirroring unit in a data mirroring system.
- 16. A mirroring unit comprising a data storage medium and an emulation layer, the emulation layer having a means for responding to requests from a secondary server by providing a characteristic of data stored in the storage medium and by denying the secondary server access to content of such data.
- 17. A method for data mirroring, comprising the steps of mirroring data, snooping a bus, and buffering at least one command obtained by the snooping step.
- 18. The method of claim 17, further comprising the step of dividing read nature commands from write nature commands, the read nature commands being requests from a host controller on the snooped bus that are of a read nature, the write nature commands being commands from a host controller on the bus that are of a write nature, and wherein the buffering step buffers write nature commands.
- 19. The method of claim 17, further comprising the step of transferring buffered commands from a first mirroring unit to a second mirroring unit across a communication link.
- 20. The method of claim 17, further comprising the step of replaying from a second mirroring unit commands which were buffered by a first mirroring unit.
- 21. A computer storage medium configured to perform a method for data mirroring, the method comprising the steps of mirroring data, snooping a SCSI bus, and buffering at least one SCSI command obtained by the snooping step.
- 22. The configured medium of claim 21, wherein the buffering step buffers at least one write command.
- 23. The configured medium of claim 21, wherein the method further comprises the step of replaying from a second mirroring unit commands which were buffered by a first mirroring unit.
- 24. A data mirroring system comprising a SCSI bus, and at least one means for mirroring data, for snooping the SCSI bus, and for buffering a SCSI command obtained by snooping.
- 25. A method for data mirroring, comprising the steps of mirroring data and using a kernel wedge to provide transactional filesystem functionality.
- 26. A computer storage medium configured to perform a method for data mirroring, the method comprising the steps of mirroring data and using a kernel wedge to provide transactional filesystem functionality.
- 27. A data mirroring system comprising a source of data for mirroring, and a kernel wedge which provides transactional filesystem functionality during data mirroring.
- 28. The data mirroring system of claim 27 comprising a local system and a remote system, wherein the remote system comprises software that receives data change information from the local system, keeps a log of data changes buffered on the remote system, and supports change roll-backs at an administrator's request.
- 29. A method for data mirroring, comprising the steps of reading a block of data from a local mirror, writing that block of data to a temporary storage as a new block, updating a logical block number entry in a queue, writing the new block to a collection of mirror data, and adding a new block logical block number entry to the queue.
- 30. A computer storage medium configured to perform a method for data mirroring, the method comprising the steps of reading a block of data from a local mirror, writing that block of data to a temporary storage as a new block, updating a logical block number entry in a data structure, writing the new block to a collection of mirror data, and adding a new block logical block number entry to the data structure.
- 31. A data mirroring system comprising at least one means for reading a block of data from a local mirror, for writing that block of data to a temporary storage as a new block, for updating a logical block number entry in a data structure, for writing the new block to a collection of mirror data, and for adding a new block logical block number entry to the data structure.
- 32. A method for data storage management, comprising the steps of reading data and providing a virtual remote mirroring unit.
- 33. A computer storage medium configured to perform a method for data storage management, the method comprising the steps of reading data and executing a plurality of virtual remote mirroring units on a single hardware platform.
- 34. A data mirroring system comprising at least two virtual remote mirroring units on a single hardware platform.
- 35. A method for data storage management, comprising the steps of reading data and identifying frequently accessed data elements without prior application-specific knowledge about the order and frequency of storage operations by an application.
- 36. A computer storage medium configured to perform a method for data storage management, the method comprising the steps of reading data and identifying frequently accessed data elements without application-specific knowledge about storage operations by an application.
- 37. An improved data storage management system, the improvement comprising a means for identifying frequently accessed data elements without application-specific knowledge.
- 38. The improved data storage management system of claim 37, wherein the improvement comprises a data mirroring unit in which the means for identifying frequently accessed data elements without application-specific knowledge coordinates with a means for assisting recovery of an application's state by un-committing contiguous data blocks and un-committing state block updates written between state block updates, until the application state is recovered.
- 39. A method for data storage management, comprising the steps of reading data and resyncing a non-authoritative secondary data volume from a primary data volume after utilizing the secondary data volume in place of the primary data volume.
- 40. A computer storage medium configured to perform a method for data storage management, the method comprising the steps of reading data and resyncing a non-authoritative secondary data volume from a primary data volume after utilizing the secondary data volume as the primary data volume.
- 41. An improved data storage management system, the improvement comprising software for resyncing a non-authoritative secondary data volume from a primary data volume after utilizing the secondary data volume as the primary data volume.
- 42. A method for data storage management, comprising the steps of reading data and maintaining an ordered queue of mirrored data elements and a current copy of mirrored data elements on the same physical storage system, whereby it is not necessary to write the same data element twice to the storage system to implement a physically partitioned system.
- 43. A computer storage medium configured to perform a method for data storage management, the method comprising the steps of reading data and maintaining an ordered queue of mirrored data elements and a current copy of mirrored data elements on the same physical storage system.
- 44. An improved data storage management system, the improvement comprising software for maintaining an ordered data structure of mirrored data elements and a current copy of mirrored data elements on the same physical storage system.
RELATED APPLICATIONS
[0001] The present application claims priority to, and incorporates by reference, the following commonly owned copending application: Ser. No. 09/438,184 filed Nov. 11, 1999; Ser. No. 60/209,469 filed Jun. 5, 2000; Ser. No. 60/223,934 filed Aug. 9, 2000; Ser. No. 60/262,143 filed Jan. 16, 2001.
Provisional Applications (3)
|
Number |
Date |
Country |
|
60209469 |
Jun 2000 |
US |
|
60223934 |
Aug 2000 |
US |
|
60262143 |
Jan 2001 |
US |
Continuation in Parts (1)
|
Number |
Date |
Country |
Parent |
09438184 |
Nov 1999 |
US |
Child |
09873977 |
Jun 2001 |
US |