Concepts and Terminologies
Node Roles
A HyWorks node in a cluster can have the following roles:
Primary HyWorks Management Role: This is the Primary Management node that takes care of the management of HyWorks functions and infrastructure.
Secondary HyWorks Management Role: This is the backup management node that becomes active only when the Primary HyWorks Management node is unavailable, in fault or maintenance mode.
HyWorks Session Role: These are one or more nodes that handle user logins, session launches, session time management, logout and other user session related aspects. These nodes are connected to the user endpoints. When more than one node is available, an external load balancer is used to distribute the load across these nodes. These nodes are stateless and a simple L3 or L4 based balancing can be used.
Database Role: In a HyWorks cluster, at least one database node is required. The Microsoft SQL server express edition is the minimum required version.
HyWorks has built-in synchronization between the two nodes of the databases. External database clustering is not mandatory.
If an existing shared database is to be used, HyWorks database clustering does not need to be enabled. In a HyWorks cluster, HyWorks Management, Session and database roles can work on the same node, but not recommended for scaling and performance.
Node States
HyWorks Controller Modes: The HyWorks Controller, when configured in a cluster, can exist in the following states:
-
Active: The node that actively serves user/management connections. The HyWorks Management node as well as the HyWorks Session node can exist in an Active state.
-
Secondary: This node acts as a backup server and will not service any end user connection or management functions. The server continuously synchronize it's database in case of two-node active-passive cluster or multi-node active-active cluster with HyWorks managed database high-availability.
-
Fault Mode: The HyWorks Controller mode where the node cannot function correctly even though the HyWorks Controller Service is running, for example, when the database services are down, or the license services are down.
-
Maintenance Mode: The HyWorks Controller mode in which it does not interact with another server in the cluster. Maintenance mode can be used to conduct management activities on the Controller to avoid any synchronization, which could lead to data corruption.
HyWorks Controller Failover Cases
This section lists failover cases, in the event of which the HyWorks Controller management modes will switch, allowing the healthy and reachable server to take over the role of the "Primary" management node:
Primary Server goes down
If the primary HyWorks Controller node goes down, the secondary will take over as the primary. Upon the resolution of the primary server controller, it will take the role of the secondary management server.
License issues on the primary HyWorks controller
On experiencing the following licensing error condition, the primary HyWorks Controller will go into fault mode, allowing the secondary HyWorks Controller will take control and become the primary:
-
The license key on the primary server is corrupted
-
The license on the primary server has expired
-
The HyWorks Controller is unable to communicate with the licensing service (i.e the licensing service is down)
Communication failure with the database server
If the primary HyWorks Controller fails to connect with it's database server, the primary HyWorks controller will move in to the fault mode, allowing the secondary HyWorks Controller will take control and become the primary.
Note
- On experiencing SQL transaction errors or intermediate timeouts, the HyWorks Controller does not move into a fault state and may retain it's primary role.
HyWorks controller service goes down
In case the HyWorks Controller goes down on the primary Management node, the secondary server will take over the role of the primary. When the HyWorks Controller service restarts, the old primary server will take on the role of the secondary.
Network Un-reachability
If the primary HyWorks Controller faces network issues and the secondary node is unable to connect to it, then the secondary server will become the primary.
Note
-
The Primary HyWorks Controller will retain it's primary role, as it will also experience a communication failure with the secondary node.
- The HyWorks client will be able to connect to either of the reachable HyWorks Controller nodes as both will be maintaining the primary role.
-
On restoring network communication between the two nodes, either node can retain the role of the primary. It will depend on whichever server goes to poll the status of other server.
Manual Switching
Other than the conditions mentioned above, the Administrator can also force switch Controller:
-
On moving the primary HyWorks Controller into Maintenance mode, the secondary controller will automatically take on the role of the primary.
-
Moving the primary to the secondary and the secondary to the primary manually using the HyWorks Controller Management Console > Settings > System > Controllers section.
HyWorks Controller Session Nodes Failover Cases
In multi-node, active-active deployments, multiple session nodes are deployed and kept behind an external load-balancer. The load-balancer must support mechanisms to check health of HyWorks session nodes using health check APIs.
In all above cases, session node will not be able to serve any requests from clients or session servers and thus, load-balancer must exclude that server from communicating with end-points or session servers.