This section explains how to achieve high availability (HA) in the License Manager. This post-installation task is optional but necessary if you want to avoid having a single point of failure in the production environment of Denodo.
When a Denodo component starts (e.g. a Virtual DataPort server, the Scheduler server…), it requests permission to the License Manager to run. To do this, the component sends an HTTP request to the License Manager with details about the host where the component is going to run (host name, IP address, number of cores, etc.). If approved, the component starts.
Periodically, each component sends a request to the License Manager to keep running. If for some reason, the License Manager does not respond (e.g. the host where the License Manager runs is down), there is a grace period of 5 days. During this period, the Denodo server still runs normally and it keeps trying to renew the license. After 5 days of the License Manager not responding, the component will shut down. Note that during the grace period, the component will still run. However, if you stop it, you will not be able to start it again because a Denodo component will only start if it reaches the License manager.
In this architecture, the License Manager is the single point of failure so we recommend:
Setting up a secondary License Manager in a different host.
Making all the Denodo Platform servers to connect to the License Manager through a load balancer.
The License Manager supports the active-passive approach. This means that the load balancer has to be configured to redirect all the requests to the primary License Manager; and if the primary License Manager fails, to send the requests to the secondary License Manager.
To do this, follow these steps:
Your license must allow running two License Manager servers in active-passive HA configuration.
Log in to the Solution Manager administration tool you just installed and configure it to use an external database. The section Setting-Up an External Database explains how to do this.
This License Manager of this installation will be the primary License Manager.
In another computer, use the same installer to install the component Solution Manager. You do not need to install the Diagnostic and Monitoring Tool component.
This will be the secondary node for the License Manager.
For this secondary installation, use the same license file you used for the primary Solution Manager.
Log in to the Solution Manager administration tool of the secondary node and configure it to use the same external database as in step #1.
In the secondary node, after configuring the external database, stop all the components, except the License Manager server. The Solution Manager is not meant to be used on a cluster, only the License Manager is.
In the load balancer of your organization, configure the two License Managers on an active-passive configuration. By default, the License Manager runs on the port 10091.
To detect if the primary License Manager server is up, send a GET request to
https://<Solution Manager host>:10091/pingLicenseManager(see Ping to Solution Manager Server for more details). If the server is up and configured correctly, this endpoint returns the HTTP code 200. Otherwise, the request fails.
Configure your existing Denodo Platform installations to point to the virtual host name defined for both License Managers, in the load balancer.
Check that the clocks of both computers are in sync. On Windows, check that the option Synchronize your clock is enabled. On Linux, check that the Network Time Protocol (NTP) service is enabled.
The clocks of these computers need to be in sync as much as possible. That is, both computers must be set to the same time and date. Otherwise, the Denodo components may not be able to retrieve a license properly. Not having the clocks synchronized may cause the Virtual DataPort servers to remain in “grace period” or shutting down when reaching the grace period.
In the load balancer, only configure the License Manager server to work with high availability, not the Solution Manager server nor its administration tool. They are not designed to run on a cluster.
The section Updating Solution Manager with High Availability provides best practices regarding how to update a cluster of License Managers.