Claims
- 1. A method of ensuring data consistency after a failover event in a redundant data storage system having a first data storage facility that initially acts as a primary facility for storage requests and a second data storage facility that initially acts as a secondary facility for the storage requests, the method comprising:
conditioning the second data storage facility to assume the role of the primary facility in response to a failover event; and conditioning the first data storage facility to assume the role of the secondary facility, comprising sending a copy of data committed at the second data storage facility to the first data storage facility wherein the copy of data includes a version of data committed at the second storage facility.
- 2. The method according to claim 1, further comprising committing the copy of data at the first storage facility as a whole.
- 3. The method according to claim 2, wherein the copy of data includes data committed at the second storage facility after the failover event.
- 4. The method according to claim 3, wherein in the copy of data, a version of data committed at the second data storage facility after the failover event replaces a prior version of the data committed at the second data storage facility prior to the failover event.
- 5. The method according to claim 4, wherein the copy of data further includes a data block committed at the second storage facility after the failover event and before the version of data that replaces the prior version of the data.
- 6. The method according to claim 4, wherein the copy of committed data further includes all data blocks committed at the second storage facility after the failover event and before a version of data committed at the second storage facility after the failover event that replaces a prior version of the data committed at the second storage facility prior to the failover event.
- 7. The method according to claim 1, wherein the copy of data excludes a data block committed after the failover event and after the version of data at the second storage facility that replaces the prior version of the data.
- 8. The method according to claim 7, further comprising sending a copy of the excluded data block to the first data storage facility.
- 9. The method according to claim 8, further comprising committing the excluded data block after said committing the copy of data at the first storage facility as a whole.
- 10. The method according to claim 9, wherein committed data at the first and second data storage facilities is consistent after the excluded data block is committed.
- 11. The method according to claim 1, wherein data at the primary data storage facility that is not committed at the second data storage facility before the failover event is lost.
- 12. The method according to claim 1, wherein the failover event comprises a fault.
- 13. The method according to claim 12, 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.
- 14. The method according to claim 1, wherein the failover event comprises an operational event.
- 15. The method according to claim 14, wherein the failover event is selected from the group consisting of a manually initiated event and an automatically initiated event.
- 16. The method according to claim 14, wherein the failover event comprises a communication traffic conditition.
- 17. The method according to claim 16, wherein the communication traffic condition comprises a greater portion of request traffic originating closer to the second data storage facility.
- 18. The method according to claim 1, wherein said conditioning is performed automatically under control of state machines at the first and second data storage facilities.
- 19. A method of ensuring data consistency after a failover event in a redundant data storage system having a first data storage facility that initially acts as a primary facility for storage requests and a second data storage facility that initially acts as a secondary facility for the storage requests, the method comprising:
conditioning the second data storage facility to assume the role of the primary facility in response to a failover event; conditioning the first data storage facility to assume the role of the secondary facility; and conditioning the first data storage facility to assume the role of the primary facility in response to a fallback event wherein the first data storage facility commits a data block written at the first data storage facility prior to the failover event.
- 20. The method according to claim 19, wherein the fallback event comprises a fault.
- 21. The method according to claim 20, wherein conditioning the first data storage facility to assume the role of the secondary facility comprises attempting to send a copy of data committed at the second data storage facility to the first data storage facility.
- 22. The method according to claim 21, wherein the fault prevents sending of a copy of data committed at the second data storage facility to the first data storage facility.
- 23. The method according to claim 19, wherein conditioning the first data storage facility to assume the role of the secondary facility comprises attempting to send a copy of data committed at the second data storage facility to the first data storage facility.
- 24. A redundant data storage system having a first data storage facility that initially acts as a primary facility for storage requests and a second data storage facility that initially acts as a secondary facility for the storage requests wherein in response a failover event, the second data storage facility is conditioned to assume the role of the primary facility and wherein the first data storage facility is conditioned to assume the role of the secondary facility by the first data storage facility receiving a copy of data committed at the second data storage facility, wherein the copy of data includes a version of data committed at the second storage facility.
- 25. The system according to claim 24, wherein the copy of data is committed at the first storage facility as a whole.
- 26. The system according to claim 25, wherein the copy of data includes data committed at the second storage facility after the failover event.
- 27. The system according to claim 26, wherein in the copy of data, a version of data committed at the second data storage facility after the failover event replaces a prior version of the data committed at the second data storage facility prior to the failover event.
- 28. The system according to claim 27, wherein the copy of data further includes a data block committed at the second storage facility after the failover event and before the version of data that replaces the prior version of the data.
- 29. The system according to claim 27, wherein the copy of committed data further includes all data blocks committed at the second storage facility after the failover event and before a version of data committed at the second storage facility after the failover event that replaces a prior version of the data committed at the second storage facility prior to the failover event.
- 30. The system according to claim 24, wherein the copy of data excludes a data block committed after the failover event and after the version of data at the second storage facility that replaces the prior version of the data.
- 31. The system according to claim 30, wherein a copy of the excluded data block further is sent to the first data storage facility.
- 32. The system according to claim 31, wherein the excluded data block is committed after the copy of data is committed at the first storage facility as a whole.
- 33. The system according to claim 32, wherein committed data at the first and second data storage facilities is consistent after the excluded data block is committed.
- 34. The system according to claim 24, wherein data at the primary data storage facility that is not committed at the second data storage facility before the failover event is lost.
- 35. The system according to claim 24, wherein the failover event comprises a fault.
- 36. The system according to claim 35, 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.
- 37. The system according to claim 24, wherein the failover event comprises an operational event.
- 38. The system according to claim 37, wherein the failover event is selected from the group consisting of a manually initiated event and an automatically initiated event.
- 39. The system according to claim 24, wherein the failover event comprises a communication traffic conditition.
- 40. The system according to claim 39, wherein the communication traffic condition comprises a greater portion of request traffic originating closer to the second data storage facility.
- 41. The system according to claim 24, wherein the first and second data storage facilities are conditioned automatically under control of state machines at the first and second data storage facilities.
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. 200309043-1), filed (on the same day as this application) and entitled, “Distributed Data Redundancy Operations”; U.S. application Ser. No. ______ (Attorney Docket No. 200309044-1), filed (on the same day as this application) and entitled, “Fault-Tolerant Data Redundancy Technique”; 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.