In this blog post, we will discuss setting up and configure the Pacemaker and Corosync technologies to create a high availability (HA) Oracle Linux cluster that delivers continuous access to services that are running across multiple nodes. High availability services in Oracle Linux are comprised of several open-source packages, including the Corosync and Pacemaker features. These tools enable you to achieve high availability for applications and services that are running on Oracle Linux. You can download Corosync, Pacemaker, and the functional sub-packages from the Unbreakable Linux Network (ULN) at https://linux.oracle.com or the Oracle Linux yum server at https://yum.oracle.com.
Corosync is an open source cluster engine that includes an API to implement a number of high availability features, including an availability manager that can restart a process when it fails, a configuration and statistics database, and a quorum system that can notify applications when quorum is achieved or lost.Corosync is installed in conjunction with Pacemaker, which is an open source high availability cluster resource manager that is responsible for managing the life cycle of software that is deployed on a cluster. Pacemaker also provides high availability services, which are achieved by detecting and recovering from node and resource-level failures by using the API that is provided by the cluster engine.
Pacemaker also ships with the Pacemaker Command Shell (pcs). You can use the pcs command to access and configure the cluster and its resources. The pcs daemon runs as a service on each node in the cluster, making it possible to synchronize configuration changes across all of the nodes in the cluster.
Let’s start the installing and configuring Pacemaker and Corosync.
The Pacemaker and Corosync packages are available on the Oracle Linux yum server in the ol8_addons repository, or on the Unbreakable Linux Network (ULN) in the ol8_arch_addons channel. ome dependency packages may be required from the ol8_appstream and ol8_baseos_latest yum repositories, or from the ol8_arch_appstream and ol8_arch_baseos_latest channels on ULN.
Enabling Repositories With ULN
To subscribe to the ULN channels:
- Log in to https://linux.oracle.com with your ULN user name and password.
- On the Systems tab, click the link named for the system in the list of registered machines.
- On the System Details page, click Manage Subscriptions.
- On the System Summary page, select each required channel from the list of available channels and click the right arrow to move the channel to the list of subscribed channels. Subscribe the system to the following channels:ol8_arch_appstream,ol8_arch_baseos_latest, ol8_arch_addons
Enabling Repositories With the Oracle Linux Yum Server
To enable the yum repositories:
Enable the following yum repositories: ol8_appstream, ol8_baseos_latest, ol8_addons
Use the dnf config-manager tool to enable the yum repositories:
sudo dnf config-manager –enable ol8_appstream ol8_baseos_latest ol8_addons
On each node in the cluster, install the pcs and pacemaker software packages, along with all of the available resource and fence agents from the Oracle Linux yum server or from ULN, for example:
sudo dnf install pcs pacemaker resource-agents fence-agents-all
If you are running firewalld, add the high-availability service on each of the nodes so that the service components are able to communicate across the network. Per the command that is run in the following example, this step typically enables the following ports: TCP port 2224 (used by the pcs daemon), port 3121 (for Pacemaker Remote nodes), port 21064 (for DLM resources), and UDP ports 5405 (for Corosync clustering), and 5404 (for Corosync multicast, if configured):
sudo firewall-cmd –permanent –add-service=high-availability
sudo firewall-cmd –add-service=high-availability
To use the pcs command to configure and manage your cluster, you must set a password on each node for the hacluster user.
sudo passwd hacluster
Note that to use the pcs command, the pcsd service must be running on each of the nodes in the cluster. You can set this service to run and to start at boot by running the following command:
sudo systemctl enable –now pcsd.service
We installed the necessary packages and will continue to write about the configuring an initial Cluster and Service on next blog post.