Autonomous primary node election within a virtual input/output server cluster
First Claim
1. In a data processing system having one or more computing electronic complexes (CECs) that comprise a plurality of virtual input/output (I/O) servers (VIOSes) configured within a VIOS cluster, which has an associated VIOS database (DB) and in which each VIOS provides I/O resources to one or more logical partitions (LPARs) executing within the one or more CECs, a first VIOS of the VIOS cluster executing code on a processing resource to perform a method comprising:
- the first VIOS of the VIOS cluster detecting that a primary node is required for the VIOS cluster, wherein the first VIOS is a first node; and
autonomously initiating an election process to elect a next primary node from among one or more VIOSes within the VIOS cluster;
the first node determining whether it meets a plurality of pre-established requirements to become a primary node by checking a plurality of configuration parameters of the first node against the plurality of pre-established requirements for a node to become the primary node;
in response to the first node not meeting the plurality of pre-established requirements, activating a primary node discovery process which discovers and notifies a next node from within an elector list of a need to elect a primary node;
wherein the first node becomes an elector node if there is a next node that meets the pre-established requirements to be a candidate for election;
in response to the first node meeting the plurality of pre-established requirements, determining whether a primary node identifier (ID) field within the VIOS DB is locked by another node, wherein the primary node ID field within the VIOS DB contains the unique ID of the primary node;
in response to the primary node ID field being locked, setting a primary node election timer to track an elapsed time from when the first node made the attempt to become the primary node, wherein the timer expires after a pre-set amount of time, and wherein an expiration of the timer prior to another node being elected as the primary node triggers the first node to re-initiate an attempt to become the primary node; and
in response to the primary node ID field being unlocked;
locking the primary node ID field within the VIOS DB; and
initiating a primary node commit process to assign the first node as the primary node by;
sending a commit signal to the VIOS DB to update the primary node ID field with a unique ID of the first node;
in response to an updating of the primary node ID field with the unique ID of the first node, unlocking the primary node ID field; and
issuing a notification message to all other nodes in the cluster to inform the other nodes that a new primary node has been elected.
1 Assignment
0 Petitions
Accused Products
Abstract
In a data processing system having a plurality of virtual input/output servers (VIOSes) configured within a VIOS cluster, a method, data processing system and computer program product provide for autonomous election of a primary node within a virtual input/output server (VIOS) cluster. A first VIOS performs the functions of: detecting that a primary node is required for the VIOS cluster; and autonomously initiating an election process to elect a next primary node from among the VIOSes within the VIOS cluster. When the first VIOS meets the pre-established requirements for becoming a primary node, the first VIOS obtains a lock on a primary node ID field within a VIOS database (DB) and then initiates a primary node commit process to assign the first VIOS as the primary node. The first VIOS issues a notification to the VIOS cluster to notify the other VIOSes that a primary node has been elected.
-
Citations
21 Claims
-
1. In a data processing system having one or more computing electronic complexes (CECs) that comprise a plurality of virtual input/output (I/O) servers (VIOSes) configured within a VIOS cluster, which has an associated VIOS database (DB) and in which each VIOS provides I/O resources to one or more logical partitions (LPARs) executing within the one or more CECs, a first VIOS of the VIOS cluster executing code on a processing resource to perform a method comprising:
-
the first VIOS of the VIOS cluster detecting that a primary node is required for the VIOS cluster, wherein the first VIOS is a first node; and autonomously initiating an election process to elect a next primary node from among one or more VIOSes within the VIOS cluster; the first node determining whether it meets a plurality of pre-established requirements to become a primary node by checking a plurality of configuration parameters of the first node against the plurality of pre-established requirements for a node to become the primary node; in response to the first node not meeting the plurality of pre-established requirements, activating a primary node discovery process which discovers and notifies a next node from within an elector list of a need to elect a primary node; wherein the first node becomes an elector node if there is a next node that meets the pre-established requirements to be a candidate for election; in response to the first node meeting the plurality of pre-established requirements, determining whether a primary node identifier (ID) field within the VIOS DB is locked by another node, wherein the primary node ID field within the VIOS DB contains the unique ID of the primary node; in response to the primary node ID field being locked, setting a primary node election timer to track an elapsed time from when the first node made the attempt to become the primary node, wherein the timer expires after a pre-set amount of time, and wherein an expiration of the timer prior to another node being elected as the primary node triggers the first node to re-initiate an attempt to become the primary node; and in response to the primary node ID field being unlocked; locking the primary node ID field within the VIOS DB; and initiating a primary node commit process to assign the first node as the primary node by;
sending a commit signal to the VIOS DB to update the primary node ID field with a unique ID of the first node;
in response to an updating of the primary node ID field with the unique ID of the first node, unlocking the primary node ID field; and
issuing a notification message to all other nodes in the cluster to inform the other nodes that a new primary node has been elected. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8)
-
-
9. A computer program product comprising:
-
a machine readable storage device; and program code on the computer readable storage device that when executed by a processor of a first virtual input/output server within a VIOS cluster comprised of a plurality of VIOSes and a VIOS database (DB) and where the plurality of VIOSes provide I/O resources to one or more logical partitions (LPARs), causes the first VIOS to perform the functions of; detecting that a primary node is required for the VIOS cluster; autonomously initiating an election process to elect a next primary node from among one or more VIOSes within the VIOS cluster; and determining whether the first node meets a plurality of pre-established requirements to become a primary node by checking a plurality of configuration parameters of the first node against the plurality of pre-established requirements for a node to become the primary node, wherein the first VIOS is the first node; in response to the first node not meeting the plurality of pre-established requirements, activating a primary node discovery process which discovers and notifies a next node from within an elector list of a need to elect a primary node; wherein the first node becomes an elector node if there is a next node that meets the pre-established requirements to be a candidate for election; in response to the first node meeting the plurality of pre-established requirements, determining whether a primary node identifier (ID) field within the VIOS DB is locked by another node, wherein the primary node ID field within the VIOS DB contains the unique ID of the primary node; in response to the primary node ID field being locked, setting a primary node election timer to track an elapsed time from when the first node made the attempt to become the primary node, wherein the timer expires after a pre-set amount of time, and wherein an expiration of the timer prior to another node being elected as the primary node triggers the first node to re-initiate an attempt to become the primary node; and in response to the primary node ID field being unlocked; locking the primary node ID field within the VIOS DB; and initiating a primary node commit process to assign the first node as the primary node by;
sending a commit signal to the VIOS DB to update the primary node ID field with a unique ID of the first node;
in response to an updating of the primary node ID field with the unique ID of the first node, unlocking the primary node ID field; and
issuing a notification message to all other nodes in the cluster to inform the other nodes that a new primary node has been elected. - View Dependent Claims (10, 11, 12, 13, 14, 15, 16)
-
-
17. A data processing system comprising:
-
one or more processors providing processing resources; one or more memories coupled to the one or more processors; a cluster-aware (CA) operating system (OS) which generates a first virtual input/output server (VIOS) that is communicatively couple to other VIOSes and to a VIOS database (DB) to create a VISO cluster, wherein the CA_OS comprises a utility executing on a processing resource of the first VIOS, which utility causes the first VIOS to perform the functions of; detecting that a primary node is required for the VIOS cluster; autonomously initiating an election process to elect a next primary node from among one or more VIOSes within the VIOS cluster; determining whether a first node from among one or more VIOSes within the VIOS cluster meets a plurality of pre-established requirements to become a primary node by checking a plurality of configuration parameters of the first node against the plurality of pre-established requirements for a node to become the primary node, wherein the first VIOS is a first node; in response to the first node not meeting the plurality of pre-established requirements, activating a primary node discovery process which discovers and notifies a next node from within an elector list of a need to elect a primary node, wherein the first node becomes an elector node if there is a next node that meets the pre-established requirements to be a candidate for election; in response to the first node meeting the plurality of pre-established requirements, determining whether a primary node identifier (ID) field within the VIOS DB is locked by another node, wherein the primary node ID field within the VIOS DB contains a unique ID of the primary node; in response to the primary node ID field being locked, setting a primary node election timer to track an elapsed time from when the first node made the attempt to become the primary node, wherein the timer expires after a pre-set amount of time, and wherein an expiration of the timer prior to another node being elected as the primary node triggers the first node to re-initiate an attempt to become the primary node; and in response to the primary node ID field being unlocked; locking the primary node ID field within the VIOS DB; and initiating a primary node commit process to assign the first node as the primary node. - View Dependent Claims (18, 19, 20, 21)
-
Specification