Peer-to-peer backup system with failure-triggered device switching honoring reservation of primary device
First Claim
1. A method for operating a data backup system including a primary storage site having a counterpart secondary storage site, each site including a storage controller and a storage, where the system is configured to receive and store data at the primary site and forward the received data to the secondary site for storage therein to mirror contents of the primary site, the primary and secondary sites being coupled to one or more hosts, the method comprising operations of:
- the primary controller receiving reserve requests from the hosts, each reserve request identifying a different part of the primary storage, and in response, the primary controller reserving each identified part to its requesting host by permitting only the requesting host to write to that part;
the primary controller notifying the secondary controller of reservations of the primary storage; and
upon detection of an error occurring at the primary site, performing a switch operation comprising;
configuring the system to stop mirroring contents of the primary site at the secondary site;
the secondary controller determining whether any parts of the primary storage are reserved;
the secondary site operating in substitution for the primary site to satisfy host requests to exchange data with the primary storage by exchanging the requested data with the secondary storage instead; and
where, if any part of the primary storage is reserved, the operation of the secondary controller in substitution for the primary site additionally includes reserving counterparts of the secondary storage corresponding to reserved parts of the primary storage by permitting writing to each counterpart only by its reserving host.
1 Assignment
0 Petitions
Accused Products
Abstract
A peer-to-peer backup storage system automatically switches from a primary storage site to a mirrored backup site in response to a primary site failure, where the secondary site then honors any existing host initiated reservation of primary storage. Each site includes a storage controller and storage, where the primary site receives and stores data and forwards the received data to the secondary site for storage to mirror contents of primary storage. The primary and secondary sites are coupled to one or more hosts. Whenever the primary controller receives a reserve request from a host, it reserves the primary storage (or a subpart thereof) for the exclusive use of the reserve-initiating host. This may involve, for example, the primary controller storing a path group ID that identifies the reserving host. The primary controller also notifies the secondary controller of the reservation, e.g., sending the path group ID involved in the reservation operation to the secondary site. Responsive to a primary site failure, the system performs “switch” operation where the system stops forwarding data from the primary site to the secondary site. Furthermore, the secondary site is operated in substitution for the primary site, to receive and store data from the hosts. Importantly, the secondary site honors the existing reservation of the primary storage by reserving the secondary storage to the first reserve-initiating host.
-
Citations
24 Claims
-
1. A method for operating a data backup system including a primary storage site having a counterpart secondary storage site, each site including a storage controller and a storage, where the system is configured to receive and store data at the primary site and forward the received data to the secondary site for storage therein to mirror contents of the primary site, the primary and secondary sites being coupled to one or more hosts, the method comprising operations of:
-
the primary controller receiving reserve requests from the hosts, each reserve request identifying a different part of the primary storage, and in response, the primary controller reserving each identified part to its requesting host by permitting only the requesting host to write to that part;
the primary controller notifying the secondary controller of reservations of the primary storage; and
upon detection of an error occurring at the primary site, performing a switch operation comprising;
configuring the system to stop mirroring contents of the primary site at the secondary site;
the secondary controller determining whether any parts of the primary storage are reserved;
the secondary site operating in substitution for the primary site to satisfy host requests to exchange data with the primary storage by exchanging the requested data with the secondary storage instead; and
where, if any part of the primary storage is reserved, the operation of the secondary controller in substitution for the primary site additionally includes reserving counterparts of the secondary storage corresponding to reserved parts of the primary storage by permitting writing to each counterpart only by its reserving host. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10)
the primary controller receiving a release request from a first host identifying a part of the primary storage reserved by that host, and in response, the primary controller canceling the reservation by permitting all hosts to write to that part of the primary storage, and notifying the secondary controller of the canceled reservation.
-
-
5. The method of claim 1, the switch operation further comprising:
configuring the system to begin mirroring changes from the secondary site to the primary site.
-
6. The method of claim 1, where each part comprises one of the following:
- all of the primary storage, a logical device of the primary storage, a physical device, a subpart being less than all of the primary storage.
-
7. The method of claim 1, the operations further comprising:
responsive to the primary controller notifying the secondary controller of a reservation, the secondary controller storing a representation of the reservation.
-
8. The method of claim 7, the operation of the secondary controller determining whether any parts of the primary storage are reserved comprises retrieving any stored representations of reservations to identify reserved parts of the primary storage.
-
9. The method of claim 1, the operation of the primary controller reserving parts of the primary storage further including the primary controller permitting reading of each part only by its respective reserving host.
-
10. The method of claim 1, the operation of the secondary controller reserving counterparts of the secondary storage further including the secondary controller permitting reading of each counterpart only by its respective reserving host.
-
11. A method for operating a data backup system including a primary storage site having a counterpart secondary storage site, each site including a storage controller and a storage, where the system is configured to receive and store data at the primary site and forward the received data to the secondary site for storage therein to mirror contents of the primary site, the primary and secondary sites being coupled to one or more hosts, where the primary controller is additionally programmed to receive reserve requests from the hosts, each reserve request identifying a part of the primary storage, and in response, the primary controller is programmed to reserve each identified part to the requesting host by permitting only the requesting host to write to the identified part, the primary controller also notifying the secondary controller of the reservations, the method comprising operations of:
-
responsive to detection of an error occurring at the primary site, performing a switch operation comprising;
configuring the system to stop mirroring contents of the primary site at the secondary site;
the secondary controller determining whether any parts of the primary storage are reserved; and
the secondary site operating in substitution for the primary site to satisfy host requests to exchange data with the primary storage by exchanging the requested data with the secondary storage instead, where if any parts of the primary storage are reserved, the operation of the secondary site in substitution for the primary site additionally includes reserving counterparts of the secondary storage corresponding to reserved parts of the primary storage by permitting writing to each counterpart only by its reserving host.
-
-
12. A data backup system comprising:
-
primary and secondary storage sites each including a controller and a storage, where the primary and secondary storage sites are programmed to receive and store data at the primary site and forward the received data to the secondary site for storage therein to mirror contents of the primary site, the primary and secondary sites being coupled to one or more hosts;
where the primary site is programmed to perform operations including;
receiving reserve requests from the hosts, each reserve request identifying a different part of the primary storage, and in response, the primary controller reserving each identified part to its requesting host by permitting only the requesting host to write to that part;
notifying the secondary controller of reservations of the primary storage; and
where the secondary site is programmed, in response to an error condition occurring at the primary site, to perform operations comprising;
ceasing to mirror contents of the primary site at the secondary site;
determining whether any parts of the primary storage are reserved;
operating in substitution for the primary site to satisfy host requests to exchange data with the primary storage by exchanging the requested data with the secondary storage instead; and
where, if any part of the primary storage is reserved, the operation of the secondary controller in substitution for the primary site additionally includes reserving counterparts of the secondary storage corresponding to reserved parts of the primary storage by permitting writing to each counterpart only by its reserving host; and
a communications link between the primary and secondary sites. - View Dependent Claims (13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24)
one or more hosts coupled to the primary and secondary sites, where the communications link comprises a command path between the primary and secondary sites via one or more of the hosts.
-
-
16. The system of claim 12, where the operation of primary controller notifying the secondary controller comprises transmitting codes identifying the reserving hosts.
-
17. The system of claim 16, the codes comprising path group identifiers.
-
18. The system of claim 12, the primary controller being further programmed to perform operations comprising:
the primary controller receiving a release request from a first host identifying a part of the primary storage reserved by that host, and in response, the primary controller canceling the reservation by permitting all hosts to write to that part of the primary storage, and notifying the secondary controller of the canceled reservation.
-
19. The system of claim 12, the primary and secondary controllers being further programmed to respond to an error condition by starting to mirror changes from the secondary site to the primary site.
-
20. The system of claim 12, where each part comprises one of the following:
- all of the primary storage, a logical device of the primary storage, a physical device, a subpart being less than all of the primary storage.
-
21. The system of claim 12, the secondary controller being further programmed to perform operations comprising:
responsive to the primary controller notifying the secondary controller of a reservation, the secondary controller storing a representation of the reservation.
-
22. The system of claim 21, the operation of the secondary controller determining whether any parts of the primary storage are reserved comprises retrieving any stored representations of reservations to identify reserved parts of the primary storage.
-
23. The system of claim 12, the operation of the primary controller reserving parts of the primary storage further including the primary controller permitting reading of each part only by its respective reserving host.
-
24. The system of claim 12, the operation of the secondary controller reserving counterparts of the secondary storage further including the secondary controller permitting reading of each counterpart only by its respective reserving host.
Specification