System for implementing a high volume availability server cluster including both sharing volume of a mass storage on a local site and mirroring a shared volume on a remote site
First Claim
1. A method of providing high availability of a service, comprising the steps of:
- (a) allocating said service and at least one shared volume of a first mass storage device associated with said service to a first server of a first subcluster that (i) is located at a first site, and (ii) comprises a plurality of servers that share said first mass storage device;
(b) mirroring said at least one shared volume to a second mass storage device of a second subcluster that (i) is located at a second site, and (ii) comprises at least one server in order to obtain a first mirrored copy of said at least one shared volume at said second site;
(c) determining to reallocate said service to a first server of said second subcluster;
(d) allocating said first mirrored copy to said first server of said second subcluster; and
(e) allocating said service to said first server of said second subcluster in response to step (c).
2 Assignments
0 Petitions
Accused Products
Abstract
A method of providing high availability of a service includes the step of allocating the service and a shared volume of a first mass storage device associated with the service to a first server of a first subcluster that is located at a first site and that includes servers which share the first mass storage device. Another step of the method includes mirroring the shared volume to a second mass storage device of a second subcluster that is located at a second site and that includes at least one server in order to obtain a first mirrored copy of the shared volume at the second site. Yet another step of the method includes determining to reallocate said service to a first server of the second subcluster. The method also includes the step of allocating the first mirrored copy to the first server of the second subcluster. Moreover, the method includes the step of allocating the service to the first server of the second subcluster in response to the step of determining to reallocate the service to the first server of the second subcluster. Apparatus for carrying out the method are also disclosed.
115 Citations
20 Claims
-
1. A method of providing high availability of a service, comprising the steps of:
-
(a) allocating said service and at least one shared volume of a first mass storage device associated with said service to a first server of a first subcluster that (i) is located at a first site, and (ii) comprises a plurality of servers that share said first mass storage device;
(b) mirroring said at least one shared volume to a second mass storage device of a second subcluster that (i) is located at a second site, and (ii) comprises at least one server in order to obtain a first mirrored copy of said at least one shared volume at said second site;
(c) determining to reallocate said service to a first server of said second subcluster;
(d) allocating said first mirrored copy to said first server of said second subcluster; and
(e) allocating said service to said first server of said second subcluster in response to step (c). - View Dependent Claims (2, 3, 4, 5, 6, 7)
determining that said first server of said first subcluster is unavailable to provide said service.
-
-
3. The method of claim 1, wherein step (c) further comprises the step of:
determining that no server of said first subcluster is currently available to provide said service.
-
4. The method of claim 3, further comprising prior to step (c) the steps of:
-
determining to reallocate said service to a second server of said first subcluster; and
allocating said service and said at least one shared volume to said second server of said first subcluster in response to said step of determining to reallocate said service to said second server of said first subcluster.
-
-
5. The method of claim 3, further comprising after step (e) the steps of:
-
determining that at least one server of said first subcluster is currently available to provide said service;
updating said at least one shared volume associated with said service based upon said first mirrored copy in response to said step of determining that at least one server of said first subcluster is currently available to provide said service;
allocating said at least one shared volume to a second server of said first subcluster; and
allocating said service to said second server after said step of updating said at least one shared volume.
-
-
6. The method of claim 3, further comprising after step (e) the steps of:
-
determining that said first server of said first subcluster is currently available to provide said service;
updating said at least one shared volume associated with said service based upon said first mirrored copy in response to said step of determining that said first server of said first subcluster is currently available to provide said service; and
allocating said service to said first server after said step of updating said at least one shared volume.
-
-
7. The method of claim 1, further comprising after step (e) the steps of:
-
determining that said first server of said second subcluster is currently unavailable to provide said service;
determining that a second server of said second subcluster is currently available to provide said service; and
allocating said service and said first mirrored copy to said second server of said second subcluster in response to said steps of (i) determining that said first server of said second subcluster is currently unavailable to provide said service, and (ii) determining that said second server of said second subcluster is currently available to provide said service.
-
-
8. A server cluster for providing high availability of a service, comprising:
-
a first mass storage device located at a first site and comprising at least one volume associated with said service;
a second mass storage device located at a second site and comprising at least one volume associated with said service;
a first subcluster located at said first site and comprising a plurality of servers operably coupled to said first mass storage device;
a second subcluster located at said second site and comprising at least one server operably coupled to said second mass storage device; and
a cluster manager operable to;
allocate said service and said at least one volume of said first mass storage device to a first server of said first subcluster, mirror said at least one volume of said first mass storage device to said at least one volume of said second mass storage device, determine to reallocate said service to a first server of said second subcluster, allocate said at least one volume of said second mass storage device to said first server of said second subcluster, and allocate said service to said first server of said second subcluster in response to detecting a first failure of said first server of said first subcluster. - View Dependent Claims (9, 10, 11, 12, 13, 14)
determining that said first server of said first subcluster is unavailable to provide said service.
-
-
10. The server cluster of claim 8, wherein said cluster manager is further operable to determine to reallocate said service to said first server of said second subcluster based upon:
determining that no server of said first subcluster is currently available to provide said service prior to allocating said service to said first server of said second subcluster.
-
11. The server cluster of claim 9, wherein said cluster manager prior to determining to reallocate said service to said first server of said second subcluster is further operable to:
-
determine to reallocate said service to a second server of said first subcluster; and
allocate said service and said at least one volume of said first mass storage device to said second server of said first subcluster in response to determining to reallocate said service to said second server of said first subcluster.
-
-
12. The server cluster of claim 9, wherein said cluster manager after allocating said service to said first server of said second subcluster is further operable to:
-
determine that at least one server of said first subcluster is currently available to provide said service, update said at least one volume of said first mass storage device based upon said at least one volume of said second mass storage device in response to determining that at least one server of said first subcluster is currently available to provide said service, allocate said at least one volume of said first mass storage device to a second server of said first subcluster, and allocate said service to said second server after updating said at least one volume of said first mass storage device.
-
-
13. The server cluster of claim 9, wherein said cluster manager after allocating said service to said first server of said second subcluster is further operable to:
-
determining that said first server of said first subcluster is currently available to provide said service, update said at least one volume of said first mass storage device based upon said at least one volume of said second mass storage device in response to determining that said first server of said first subcluster is currently available to provide said service, and allocate said service to said first server after updating said at least one volume of said first mass storage device.
-
-
14. The server cluster of claim 8, further comprising:
-
a third mass storage device located at a third site and comprising at least one volume associated with said service; and
a third subcluster located at said third site and comprising at least one server operably coupled to said third mass storage device, wherein said cluster manager after allocating said service to said first server of said second subcluster is further operable to;
mirror said at least one volume of said second mass storage device to said at least one volume of said third mass storage device, determine that no server of said second subcluster is currently available to provide said service, determine that a first server of said third subcluster is currently available to provide said service in response to determining that no server of said second subcluster is currently available to provide said service, allocate said at least one volume of said third mass storage device to said first server of said third subcluster, and allocate said service to said first server of said third subcluster in response to determining that said first server of said third subcluster is currently available to provide said service.
-
-
15. A computer readable medium for providing high availability of a service, comprising a plurality of instructions, which when executed, cause a cluster manager to:
-
allocate said service and at least one shared volume of a first mass storage device associated with said service to a first server of a first subcluster that (i) is located at a first site, and (ii) comprises a plurality of servers that share said first mass storage device;
mirror said at least one shared volume to a second mass storage device of a second subcluster that (i) is located at a second site, and (ii) comprises at least one server in order to obtain a first mirrored copy of said at least one shared volume at said second site;
determine to reallocate said service to a first server of said second subcluster;
allocate said first mirrored copy to said first server of said second subcluster; and
allocate said service to said first server of said second subcluster in response to determining to reallocate said service to said first server of said first subcluster. - View Dependent Claims (16, 17, 18, 19, 20)
determining that said first server of said first subcluster is unavailable.
-
-
17. The computer readable medium of claim 15, wherein said plurality of instructions which when executed, further cause said cluster manager to determine to reallocate said service to said first server of said second subcluster based upon:
determining that no server of said first subcluster is currently available to provide said service.
-
18. The computer readable medium of claim 15, wherein said plurality of instructions which when executed, further cause said cluster manager prior to allocating said service to said first server of said second subcluster to:
-
determine that a second server of said first subcluster is currently available to provide said service, and allocate said service and said at least one shared volume to said second server of said first subcluster in response to determining that said second server of said first subcluster is currently available to provide said service.
-
-
19. The computer readable medium of claim 15, wherein said plurality of instructions which when executed, further cause said cluster manager after allocating said service to said first server of said second subcluster to:
-
determine that at least one server of said first subcluster is currently available to provide said service, update said at least one shared volume of said first mass storage device based upon said first mirrored copy in response to determining that at least one server of said first subcluster is currently available to provide said service, allocate said at least one shared volume to a second server of said first subcluster, and allocate said service to said second server of said first subcluster after updating said at least one shared volume.
-
-
20. The computer readable medium of claim 15, wherein said plurality of instructions which when executed, further cause said cluster manager after allocating said service to said first server of said second subcluster to:
-
determine that a second server of said first subcluster is currently available to provide said service, update said at least one shared volume associated with said service based upon said first mirrored copy in response to determining that said second server of said first subcluster is currently available to provide said service, and allocate said service to said second server of said first subcluster after updating said at least one shared volume.
-
Specification