Claims
- 1. A data redundancy system including a primary facility for storing a primary copy of data and a secondary facility for storing data that is redundant of the primary copy of the data, wherein the primary facility comprises:
a first redundancy appliance for receiving a sequence of write requests and for storing data for the sequence of write requests in storage associated with the primary storage facility; and a second redundancy appliance for shadowing the first redundancy appliance wherein the second redundancy appliance assumes the role of the first redundancy appliance.
- 2. The data redundancy system according to claim 1, wherein the first redundancy appliance updates the second redundancy appliance with information about the data in storage.
- 3. The data redundancy system according to claim 1, wherein the second redundancy appliance assumes the role of the first redundancy appliance in response to a failover event.
- 4. The data redundancy system according to claim 3, wherein the failover event comprises a fault.
- 5. The data redundancy system according to claim 4, wherein the fault occurs at a location selected from the group consisting of the first storage facility, the second storage facility and a communication medium between the first data storage facility and the second data storage facility.
- 6. The data redundancy system according to claim 3, wherein the failover event comprises an operational event.
- 7. The data redundancy system according to claim 6, wherein the failover event is selected from the group consisting of a manually initiated event and an automatically initiated event.
- 8. The data redundancy system according to claim 3, wherein the failover event comprises a communication traffic conditition.
- 9. The data redundancy system according to claim 8, wherein the communication traffic condition comprises a greater portion of request traffic originating closer to the second data storage facility.
- 10. The data redundancy system according to claim 1, wherein the first redundancy appliance updates the second redundancy appliance with information about the data in storage.
- 11. The data redundancy system according to claim 10, wherein the first redundancy appliance updates the second redundancy appliance by forwarding a write record to the second redundancy appliance for each write request.
- 12. The data redundancy system according to claim 11, wherein write records are forwarded to the second appliance in batches.
- 13. The data redundancy system according to claim 11, wherein the second redundancy appliance sends an acknowledgement in response to receiving the write record.
- 14. The data redundancy system according to claim 13, wherein the first redundancy appliance sends an acknowledgement to an originator of the write request in response to receiving the acknowledgement from the second redundancy appliance.
- 15. The data redundancy system according to claim 11, wherein acknowledgements are sent in batches.
- 16. The data redundancy system according to claim 1, wherein the first redundancy appliance is disjoint from the second redundancy appliance.
- 17. The data redundancy system according to claim 1, wherein the second redundancy appliance maintains a shadow copy of data stored by the first redundancy appliance wherein the second redundancy appliance accesses the shadow copy of the data when the second redundancy appliance assumes the role of the first redundancy appliance.
- 18. The data redundancy system according to claim 1, wherein the second redundancy appliance accesses the data stored in storage by the first redundancy appliance when the second redundancy appliance assumes the role of the first redundancy appliance.
- 19. The data redundancy system according to claim 1, wherein the first redundancy appliance forwards redundant data to the secondary facility according to send batches.
- 20. The data redundancy system according to claim 1, wherein a first write transaction in a send batch at the first storage facility is replaced with a second write transaction where the second write transaction overwrites data written by the first write transaction.
- 21. The data redundancy system according to claim 20, wherein a send batch size is determined according to a time interval for collecting transactions into the send batch.
- 22. The data redundancy system according to claim 20, wherein a send batch size is determined according to a predetermined quantity of transactions to be included in the send batch.
- 23. The data redundancy system according to claim 20, wherein a send batch size is determined adaptively based on available communication bandwidth between the first storage facility and the second storage facility.
- 24. The data redundancy system according to claim 1, wherein the secondary facility comprises:
a third redundancy appliance for storing redundant data for the first sequence of write requests in storage associated with the secondary facility; and a fourth redundancy appliance for shadowing the third redundancy appliance wherein the fourth redundancy appliance assumes the role of the third redundancy appliance in the event of a fault at the first redundancy appliance.
- 25. The data redundancy system according to claim 24, wherein the third redundancy appliance stores redundant data to the storage associated with the secondary facility according to receive batches.
- 26. The data redundancy system according to claim 25, wherein the third redundancy appliance stores a receive batch after the receive batch is determined safe to apply.
- 27. The data redundancy system according to claim 26, wherein a receive batch is determined safe to apply when a data integrity test is successfully performed.
- 28. The data redundancy system according to claim 25, wherein a first write transaction in a first receive batch at the second storage facility is replaced with a second write transaction in a second receive batch wherein the second write transaction overwrites data written by the first write transaction and the first and second receive batches are combined.
- 29. A data redundancy method for storing a primary copy of data at a primary storage facility and for storing data that is redundant of the primary copy at a secondary storage facility, the method comprising:
receiving a sequence of write requests at a first redundancy appliance at the primary storage facility; storing data for the sequence of write requests in storage at the primary storage facility; updating a shadow redundancy appliance at the primary storage facility with information about the data in storage; and forwarding the sequence of write requests to the secondary storage facility.
- 30. The data redundancy method according to claim 29, wherein said first redundancy appliance performs said storing and arranging prior to a failover event and wherein the second redundancy appliance performs said storing and arranging after the failover event.
- 31. The data redundancy method according to claim 29, wherein said updating is performed synchronously.
- 32. The data redundancy method according to claim 31, wherein said updating comprises the first redundancy appliance forwarding a write record to the second redundancy appliance for each write request.
- 33. The data redundancy method according to claim 32, further comprising the second redundancy appliance sending an acknowledgement in response to receiving the write record.
- 34. The data redundancy method according to claim 33, further comprising the first redundancy appliance sending an acknowledgement to an originator of the write request in response to receiving the acknowledgement from the second redundancy appliance.
- 35. The data redundancy method according to claim 29, wherein the first redundancy appliance is disjoint from the second redundancy appliance.
- 36. The data redundancy method according to claim 29, further comprising the second redundancy appliance maintaining a shadow copy of data stored by the first redundancy appliance.
- 37. The data redundancy method according to claim 29, further comprising the first redundancy appliance arranging the sequence of write requests according to a sequence of send batches, wherein said forwarding comprises forwarding the send batches to the secondary facility.
- 38. The data redundancy method according to claim 37, further comprising determining a send batch size according to a time interval for collecting transactions into the send batch.
- 39. The data redundancy method according to claim 37, further comprising determining a send batch size according to a predetermined quantity of transactions to be included in the send batch.
- 40. The data redundancy method according to claim 37, further comprising determining a send batch size adaptively based on available communication bandwidth between the first storage facility and the second storage facility.
- 41. The data redundancy method according to claim 29, further comprising replacing a first write transaction in a send batch at the first storage facility with a second write transaction where the second write transaction overwrites data written by the first write transaction.
- 42. The data redundancy method according to claim 29, further comprising:
receiving write requests from the primary storage facility at a third redundancy appliance at the secondary storage facility; storing data for the write requests in storage at the secondary storage facility.
- 43. The data redundancy method according to claim 42, further comprising updating a shadow redundancy appliance at the secondary storage facility with information about the data in storage at the secondary storage facility.
- 44. The data redundancy method according to claim 29, further comprising storing data for the write requests in storage at the secondary storage facility according to receive batches.
- 45. The data redundancy method according to claim 44, further comprising determining whether a receive batch is safe to apply before storing the receive batch.
- 46. The data redundancy method according to claim 45, wherein said determining whether a receive batch is safe to apply comprises performing a data integrity test on data of the receive batch.
- 47. The data redundancy method according to claim 44, further comprising replacing a first write transaction in a receive batch at the second storage facility with a second write transaction wherein the second write transaction overwrites data written by the first write transaction.
RELATED APPLICATIONS
[0001] The following applications disclose related subject matter: U.S. application Ser. No. ______ (Attorney Docket No. 100204276-1), filed (on the same day as this application) and entitled, “Asynchronous Data Redundancy Technique”;U.S. application Ser. No. ______ (Attorney Docket No. 200309042-1), filed (on the same day as this application) and entitled, “Redundant Data Consistency After Failover”; U.S. application Ser. No. ______ (Attorney Docket No. 200309043-1), filed (on the same day as this application) and entitled, “Distributed Data Redundancy Operations”; U.S. application Ser. No. ______ (Attorney Docket No. 200309045-1), filed (on the same day as this application) and entitled, “Adaptive Batch Sizing for Asynchronous Data Redundancy”; U.S. application Ser. No. ______ (Attorney Docket No. 200309046-1), filed (on the same day as this application) and entitled, “State Machine and System for Data Redundancy”; U.S. application Ser. No. ______ (Attorney Docket No. 200309047-1), filed (on the same day as this application) and entitled, “Batched, Asynchronous Data Redundancy Technique”; U.S. application Ser. No. ______ (Attorney Docket No. 200309499-1), filed (on the same day as this application) and entitled, “Data Redundancy Using Portal and Host Computer”; the contents of all of which are hereby incorporated by reference.