Methods, systems and computer program products for automated movement of IP addresses within a cluster
First Claim
1. A method of transferring a Virtual IP Address (VIPA) from a first application instance to a second application instance, wherein the first application instance and the second application instance are executing on a cluster of data processing systems having a plurality of communication protocol stacks associated therewith and wherein the first application instance is associated with a first of the plurality of communication protocol stacks and the second application instance is associated with a second of the plurality of communication protocol stacks, the method comprising the steps of:
- distributing among the plurality of communication protocol stacks a list of dynamic VIPAs, wherein a hierarchy of backup communication protocol stacks for the dynamic VIPAs in the list of dynamic VIPAs is determined based on the list of dynamic VIPAs;
receiving notification of failure of the first communication protocol stack at the second of the plurality of communication protocol stacks;
evaluating the hierarchy of backup communication protocol stacks to determine if the second of the plurality of communication protocol stacks is a next communication protocol stack of the plurality of communications after the first of the plurality of communication protocol stacks in the hierarchy of backup communication protocol stacks for the VIPA associated with the first application instance; and
transferring the VIPA associated with the first application instance to the second of the plurality of communication protocol stacks associated with the second application instance if the list of dynamic VIPAs identifies the second of the plurality of communication protocol stacks as the next communication protocol stack of the plurality of communications after the first of the plurality of communication protocol stacks in the hierarchy of backup communication protocol stacks for the VIPA associated with the first application instance.
1 Assignment
0 Petitions
Accused Products
Abstract
Methods, systems and computer program products are provided for transferring a Virtual IP Address (VIPA) from a first application instance to a second application instance executing on a cluster of data processing systems having a plurality of communication protocol stacks. A list of dynamic VIPAs is distributed among the protocol stacks and a hierarchy of backup communication protocol stacks for the dynamic VIPAs is determined based on the list of dynamic VIPAs. Upon receiving notification of failure of the first stack the second stack evaluates the hierarchy of backup stacks to determine if it is the next stack in the hierarchy for the VIPA associated with the first application instance. If so, then the VIPA associated with the first application instance is transferred to the second communication protocol stack associated with the second application instance.
-
Citations
32 Claims
-
1. A method of transferring a Virtual IP Address (VIPA) from a first application instance to a second application instance, wherein the first application instance and the second application instance are executing on a cluster of data processing systems having a plurality of communication protocol stacks associated therewith and wherein the first application instance is associated with a first of the plurality of communication protocol stacks and the second application instance is associated with a second of the plurality of communication protocol stacks, the method comprising the steps of:
-
distributing among the plurality of communication protocol stacks a list of dynamic VIPAs, wherein a hierarchy of backup communication protocol stacks for the dynamic VIPAs in the list of dynamic VIPAs is determined based on the list of dynamic VIPAs;
receiving notification of failure of the first communication protocol stack at the second of the plurality of communication protocol stacks;
evaluating the hierarchy of backup communication protocol stacks to determine if the second of the plurality of communication protocol stacks is a next communication protocol stack of the plurality of communications after the first of the plurality of communication protocol stacks in the hierarchy of backup communication protocol stacks for the VIPA associated with the first application instance; and
transferring the VIPA associated with the first application instance to the second of the plurality of communication protocol stacks associated with the second application instance if the list of dynamic VIPAs identifies the second of the plurality of communication protocol stacks as the next communication protocol stack of the plurality of communications after the first of the plurality of communication protocol stacks in the hierarchy of backup communication protocol stacks for the VIPA associated with the first application instance. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19)
receiving a broadcast VIPA define message;
establishing for each VIPA in the VIPA define message a list of communication protocol stacks associated with the VIPA so as to provide a list of the hierarchy of backup communication protocol stacks associated with the VIPA.
-
-
5. A method according to claim 4, wherein the list of communications protocol stacks is in the order of priority of the communication protocol stacks.
-
6. A method according to claim 4, further comprising the steps of:
-
determining if the received broadcast VIPA define message defines a communication protocol stack as a primary communication protocol stack for a dynamic VIPA identified as an active dynamic VIPA at the communication protocol stack receiving the VIPA define message; and
deleting the active dynamic VIPA at the receiving communication protocol stack if the received broadcast VIPA define message defines a communication protocol stack as a primary communication protocol stack for a dynamic VIPA identified as an active dynamic VIPA at the communication protocol stack receiving the VIPA define message.
-
-
7. A method according to claim 6, wherein the deleting step is preceded by the step of determining if an active connection exists to the active dynamic VIPA, and wherein the step of deleting the active dynamic VIPA is delayed if an active connection exists until there are no connections to the active dynamic VIPA.
-
8. A method according to claim 7, wherein the deleting step is preceded by the steps of:
-
broadcasting a VIPA delayed giveback message so as to notify other communication protocol stacks of the plurality of communication protocol stacks that the communication protocol stacks which received the VIPA define message will delete the active dynamic VIPA when there are no connections to the active dynamic VIPA; and
broadcasting from the communication protocol stack which transmitted the VIPA define message, responsive to receiving the VIPA delayed giveback message, a VIPA define message identifying the communication protocol stack which transmitted the VIPA define message as a backup protocol stack for the active dynamic VIPA having a highest priority.
-
-
9. A method according to claim 1, further comprising the steps of:
-
receiving, at the second of the plurality of communication protocol stacks, notification of the restart of the first of the plurality of communication protocol stacks;
determining if the first of the plurality of communication protocol stacks is the primary communication protocol stack associated with an active dynamic VIPA of the second of the plurality of communication protocol stacks;
deleting the active dynamic VIPA if the first of the plurality of communication protocol stacks is the primary communication protocol stack associated with the dynamic VIPA; and
broadcasting from the second of the plurality of communication protocol stacks, responsive to deleting the active dynamic VIPA, a VIPA define message identifying the second of the plurality of communication protocol stacks as a backup protocol stack for the active dynamic VIPA.
-
-
10. A method according to claim 9, wherein the deleting step is preceded by the step of determining if an active connection exists to the active dynamic VIPA of the second of the plurality of communication protocol stacks, and wherein the step of deleting the active dynamic VIPA is delayed if an active connection exists until there are no connections to the active dynamic VIPA.
-
11. A method according to claim 10, further comprising the steps of:
-
transmitting from the second communication protocol stack to the first of the plurality of communication protocol stacks a VIPA delayed giveback message so as to notify the first of the plurality of communication protocol stacks that the second of the plurality of communication protocol stacks will delete the active dynamic VIPA when there are no connections to the active dynamic VIPA; and
broadcasting from the first of the plurality of communication protocol stacks, responsive to receiving the VIPA delayed giveback message, a VIPA define message identifying the first of the plurality of communication protocol stacks as a backup protocol stack for the active dynamic VIPA having a highest priority.
-
-
12. A method according to claim 1, further comprising the steps of:
-
establishing a range of dynamic VIPAs associated with the first and the second of the plurality of communication protocol stacks;
distributing among the plurality of communication protocol stacks information as to a bind status of dynamic VIPAs associated with communication protocol stacks of the plurality of communication protocol stacks so as to allow communication protocol stacks in the plurality of communication protocol stacks to determine if a dynamic VIPA has been bound to an application instance;
receiving notification of failure of the first of the plurality of communication protocol stacks at the second of the plurality of communication protocol stacks;
resetting the bind status of dynamic VIPAs bound to the first of the plurality of communication protocol stacks so as to allow bind calls to the dynamic VIPAs bound to the first of the plurality of communication protocol stack;
receiving at the second of the plurality of communication protocol stacks a request to bind the second instance of the application with a specified dynamic VIPA of the first application instance; and
binding the second application instance to the specified dynamic VIPA at the second communication protocol stack so as to allow communications to the second application instance through the second communication protocol stack utilizing the first VIPA.
-
-
13. A method according to claim 12, wherein dynamic VIPAs in the range of dynamic VIPAs associated with communication protocol stacks of the plurality of communication protocol stacks and dynamic VIPAs in the list of dynamic VIPAs are mutually exclusive.
-
14. A method according to claim 12, wherein the request to bind the second application to the specified dynamic VIPA at the second of the plurality of communication protocol stacks is a BIND call which specifies the specified dynamic VIPA.
-
15. A method according to claim 12, further comprising the steps of:
-
determining if the specified dynamic VIPA is active on a communication protocol stack of the plurality of communication protocol stacks other than the second of the plurality of communication protocol stacks; and
rejecting the bind request from the second instance of the application if the specified dynamic VIPA is active on a communication protocol stack of the plurality of communication protocol stacks other than the second of the plurality of communication protocol stacks.
-
-
16. A method according to claim 12, further comprising the step of notifying the plurality of communication protocol stacks that the specified dynamic VIPA is active at the second of the plurality of communication protocol stacks.
-
17. A method according to claim 12, wherein the request to bind the second application to the specified dynamic VIPA at the second of the plurality of communication protocol stacks is an IOCTL command which specifies the specified dynamic VIPA.
-
18. A method according to claim 17, further comprising the steps of:
-
receiving at the second of the plurality of communication protocol stacks a BIND call specifying that the second instance of the application can bind to any valid address at the second of the plurality of communication protocol stacks; and
binding the second instance of the application to any valid address at the second of the plurality of communication protocol stacks.
-
-
19. A method according to claim 17, further comprising the steps of:
-
activating the specified dynamic VIPA on the second of the plurality of communication protocol stacks irrespective of whether the specified dynamic VIPA is active a communications protocol stack other than the second of the plurality of communication protocol stacks; and
deleting the specified dynamic VIPA from all communication protocol stacks other than the second of the plurality of communication protocol stacks.
-
-
20. A method of transferring a Virtual IP Address (VIPA) from a first application instance to a second application instance, wherein the first application instance and the second application instance are executing on a cluster of data processing systems having a plurality of communication protocol stacks associated therewith and wherein the first application instance is bound to a first VIPA associated with a first of the plurality of communication protocol stacks and wherein the second application instance is a restarted instance of the first application associated with a second of the plurality of communication protocol stacks, the method comprising the steps of:
-
establishing a range of dynamic VIPAs associated with a communication protocol stack of the plurality of communication protocol stacks;
distributing among the plurality of communication protocol stacks information as to a bind status of dynamic VIPAs associated with communication protocol stacks of the plurality of communication protocol stacks so as to allow communication protocol stacks in the plurality of communication protocol stacks to determine if a dynamic VIPA has been bound to an application instance;
receiving notification of failure of the first communication protocol stack at the second of the plurality of communication protocol stacks;
resetting the bind status of dynamic VIPAs bound to the first communication protocol stack so as to allow bind calls to the dynamic VIPAs bound to the first communication protocol stack;
receiving at the second communication protocol stack a request to bind the second instance of the application with the first VIPA of the first application instance; and
binding the second application instance to the first VIPA at the second communication protocol stack so as to allow communications to the second application instance through the second communication protocol stack utilizing the first VIPA. - View Dependent Claims (21, 22, 23, 24, 25, 26)
determining if the first VIPA is active on a communication protocol stack of the plurality of communication protocol stacks other than the second of the plurality of communication protocol stacks; and
rejecting the bind request from the second instance of the application if the first VIPA is active on a communication protocol stack of the plurality of communication protocol stacks other than the second of the plurality of communication protocol stacks.
-
-
23. A method according to claim 20, further comprising the step of notifying the plurality of communication protocol stacks that the first VIPA is active at the second of the plurality of communication protocol stacks.
-
24. A method according to claim 20, wherein the request to bind the second application to the first VIPA at the second of the plurality of communication protocol stacks is an IOCTL command which specifies the first VIPA.
-
25. A method according to claim 24, further comprising the steps of:
-
receiving at the second of the plurality of communication protocol stacks a BIND call specifying that the second instance of the application can bind to any valid address at the second of the plurality of communication protocol stacks; and
binding the second instance of the application to any valid address at the second of the plurality of communication protocol stacks.
-
-
26. A method according to claim 24, further comprising the steps of:
-
activating the first VIPA on the second of the plurality of communication protocol stacks irrespective of whether the first VIPA is active a communications protocol stack other than the second of the plurality of communication protocol stacks; and
deleting the first VIPA from all communication protocol stacks other than the second of the plurality of communication protocol stacks.
-
-
27. A system for transferring a Virtual IP Address (VIPA) from a first application instance to a second application instance, wherein the first application instance and the second application instance are executing on a cluster of data processing systems having a plurality of communication protocol stacks associated therewith and wherein the first application instance is associated with a first of the plurality of communication protocol stacks and the second application instance is associated with a second of the plurality of communication protocol stacks, comprising:
-
means for distributing among the plurality of communication protocol stacks a list of dynamic VIPAs, wherein a hierarchy of backup communication protocol stacks for the dynamic VIPAs in the list of dynamic VIPAs is determined based on the list of dynamic VIPAs;
means for receiving notification of failure of the first communication protocol stack at the second of the plurality of communication protocol stacks;
means for evaluating the hierarchy of backup communication protocol stacks to determine if the second of the plurality of communication protocol stacks is a next communication protocol stack of the plurality of communications after the first of the plurality of communication protocol stacks in the hierarchy of backup communication protocol stacks for the VIPA associated with the first application instance; and
means for transferring the VIPA associated with the first application instance to the second of the plurality of communication protocol stacks associated with the second application instance if the list of dynamic VIPAs identifies the second of the plurality of communication protocol stacks as the next communication protocol stack of the plurality of communications after the first of the plurality of communication protocol stacks in the hierarchy of backup communication protocol stacks for the VIPA associated with the first application instance. - View Dependent Claims (28)
means for establishing a range of dynamic VIPAs associated with the first and the second of the plurality of communication protocol stacks;
means for distributing among the plurality of communication protocol stacks information as to a bind status of dynamic VIPAs associated with communication protocol stacks of the plurality of communication protocol stacks so as to allow communication protocol stacks in the plurality of communication protocol stacks to determine if a dynamic VIPA has been bound to an application instance;
means for receiving notification of failure of the first of the plurality of communication protocol stacks at the second of the plurality of communication protocol stacks;
means for resetting the bind status of dynamic VIPAs bound to the first of the plurality of communication protocol stacks so as to allow bind calls to the dynamic VIPAs bound to the first of the plurality of communication protocol stack;
means for receiving at the second of the plurality of communication protocol stacks a request to bind the second instance of the application with a specified dynamic VIPA of the first application instance; and
means for binding the second application instance to the specified dynamic VIPA at the second communication protocol stack so as to allow communications to the second application instance through the second communication protocol stack utilizing the first VIPA.
-
-
29. A system for transferring a Virtual IP Address (VIPA) from a first application instance to a second application instance, wherein the first application instance and the second application instance are executing on a cluster of data processing systems having a plurality of communication protocol stacks associated therewith and wherein the first application instance is bound to a first VIPA associated with a first of the plurality of communication protocol stacks and wherein the second application instance is a restarted instance of the first application associated with a second of the plurality of communication protocol stacks, comprising:
-
means for establishing a range of dynamic VIPAs associated with a communication protocol stack of the plurality of communication protocol stacks;
means for distributing among the plurality of communication protocol stacks information as to a bind status of dynamic VIPAs associated with communication protocol stacks of the plurality of communication protocol stacks so as to allow communication protocol stacks in the plurality of communication protocol stacks to determine if a dynamic VIPA has been bound to an application instance;
means for receiving notification of failure of the first communication protocol stack at the second of the plurality of communication protocol stacks;
means for resetting the bind status of dynamic VIPAs bound to the first communication protocol stack so as to allow bind calls to the dynamic VIPAs bound to the first communication protocol stack;
means for receiving at the second communication protocol stack a request to bind the second instance of the application with the first VIPA of the first application instance; and
means for binding the second application instance to the first VIPA at the second communication protocol stack so as to allow communications to the second application instance through the second communication protocol stack utilizing the first VIPA.
-
-
30. A computer program product for transferring a Virtual IP Address (VIPA) from a first application instance to a second application instance, wherein the first application instance and the second application instance are executing on a cluster of data processing systems having a plurality of communication protocol stacks associated therewith and wherein the first application instance is associated with a first of the plurality of communication protocol stacks and the second application instance is associated with a second of the plurality of communication protocol stacks, comprising:
-
a computer readable storage medium having computer readable program code embodied in said medium, said computer readable program code comprising;
computer readable program code for distributing among the plurality of communication protocol stacks a list of dynamic VIPAs, wherein a hierarchy of backup communication protocol stacks for the dynamic VIPAs in the list of dynamic VIPAs is determined based on the list of dynamic VIPAs;
computer readable program code for receiving notification of failure of the first communication protocol stack at the second of the plurality of communication protocol stacks;
computer readable program code for evaluating the hierarchy of backup communication protocol stacks to determine if the second of the plurality of communication protocol stacks is a next communication protocol stack of the plurality of communications after the first of the plurality of communication protocol stacks in the hierarchy of backup communication protocol stacks for the VIPA associated with the first application instance; and
computer readable program code for transferring the VIPA associated with the first application instance to the second of the plurality of communication protocol stacks associated with the second application instance if the list of dynamic VIPAs identifies the second of the plurality of communication protocol stacks as the next communication protocol stack of the plurality of communications after the first of the plurality of communication protocol stacks in the hierarchy of backup communication protocol stacks for the VIPA associated with the first application instance. - View Dependent Claims (31)
computer readable program code for establishing a range of dynamic VIPAs associated with the first and the second of the plurality of communication protocol stacks;
computer readable program code for distributing among the plurality of communication protocol stacks information as to a bind status of dynamic VIPAs associated with communication protocol stacks of the plurality of communication protocol stacks so as to allow communication protocol stacks in the plurality of communication protocol stacks to determine if a dynamic VIPA has been bound to an application instance;
computer readable program code for receiving notification of failure of the first of the plurality of communication protocol stacks at the second of the plurality of communication protocol stacks;
computer readable program code for resetting the bind status of dynamic VIPAs bound to the first of the plurality of communication protocol stacks so as to allow bind calls to the dynamic VIPAs bound to the first of the plurality of communication protocol stack;
computer readable program code for receiving at the second of the plurality of communication protocol stacks a request to bind the second instance of the application with a specified dynamic VIPA of the first application instance; and
computer readable program code for binding the second application instance to the specified dynamic VIPA at the second communication protocol stack so as to allow communications to the second application instance through the second communication protocol stack utilizing the first VIPA.
-
-
32. A computer program product for transferring a Virtual IP Address (VIPA) from a first application instance to a second application instance, wherein the first application instance and the second application instance are executing on a cluster of data processing systems having a plurality of communication protocol stacks associated therewith and wherein the first application instance is bound to a first VIPA associated with a first of the plurality of communication protocol stacks and wherein the second application instance is a restarted instance of the first application associated with a second of the plurality of communication protocol stacks, comprising:
-
a computer readable storage medium having computer readable program code embodied in said medium, said computer readable program code comprising;
computer readable program code for establishing a range of dynamic VIPAs associated with a communication protocol stack of the plurality of communication protocol stacks;
computer readable program code for distributing among the plurality of communication protocol stacks information as to a bind status of dynamic VIPAs associated with communication protocol stacks of the plurality of communication protocol stacks so as to allow communication protocol stacks in the plurality of communication protocol stacks to determine if a dynamic VIPA has been bound to an application instance;
computer readable program code for receiving notification of failure of the first communication protocol stack at the second of the plurality of communication protocol stacks;
computer readable program code for resetting the bind status of dynamic VIPAs bound to the first communication protocol stack so as to allow bind calls to the dynamic VIPAs bound to the first communication protocol stack;
computer readable program code for receiving at the second communication protocol stack a request to bind the second instance of the application with the first VIPA of the first application instance; and
computer readable program code for binding the second application instance to the first VIPA at the second communication protocol stack so as to allow communications to the second application instance through the second communication protocol stack utilizing the first VIPA.
-
Specification