How to Install Pacemaker on Linux | Quick Start Tutorial

Team installing install pacemaker linux in a data center showcasing linux pacemaker setup

When managing our server cluster at IOFLOOD, we installed the Linux Pacemaker tool to evaluate its cluster management features. We have shared our best installation methods into this article, to properly install Pacemaker for high availability and failover protection on your custom server configurations.

In this Pacemaker Tutorial, we will walk you through the process of installing Pacemaker on your Linux system. We will cover methods for both APT and YUM-based distributions, delve into compiling Pacemaker from source, installing a specific version, and finally, how to use Pacemaker and verify it’s installed correctly.

So, let’s dive in and start installing Pacemaker on your Linux system!

TL;DR: How Do I Install Corosync Pacemaker on Linux?

Pacemaker can be installed on Centos with sudo yum install pacemaker corosync. To start the service, enable it with systemctl enable pacemaker corosync and start it with, systemctl start pacemaker corosync. On Ubuntu, you can run the following command:

sudo apt-get update
sudo apt-get install pacemaker corosync
sudo systemctl enable pacemaker corosync
sudo systemctl start pacemaker corosync

This command will fetch the Pacemaker package from the Ubuntu repositories and install it on your system. However, this is just the basic way to install Pacemaker on Linux. There’s much more to learn about the installation process, including how to compile from source, install a specific version, and verify the installation. Continue reading for more detailed information and advanced installation options.

Getting Started: Install Pacemaker

Pacemaker is a high-availability cluster resource manager. It ensures that your services, such as a web server or database, keep running even if there are system failures. It does this by creating a cluster of systems and managing the services on them. If a service fails on one system, Pacemaker can automatically move it to another system in the cluster.

Now, let’s get to the installation process. We’ll cover how to install Pacemaker using package managers like APT (used in Debian and Ubuntu) and YUM (used in CentOS and AlmaLinux).

Install Pacemaker with APT

If you’re using a Debian or Ubuntu system, you can use the APT package manager to install Pacemaker. Here’s how you do it:

sudo apt update
sudo apt install pacemaker corosync

# Output:
# 'Reading package lists... Done'
# 'Building dependency tree... Done'
# 'The following additional packages will be installed:...'
# 'Do you want to continue? [Y/n]'

After running these commands, your system will fetch the latest software list, then download and install the Pacemaker package.

Install Pacemaker with YUM

For those using CentOS or AlmaLinux, the YUM package manager is your go-to option for installing Pacemaker. Here’s the command sequence:

sudo yum check-update
sudo yum install pacemaker corosync

# Output:
# 'Loaded plugins: fastestmirror, langpacks'
# 'Loading mirror speeds from cached hostfile'
# 'Resolving Dependencies'
# 'Dependencies Resolved'

This will update your package list and then install Pacemaker on your system.

Remember, these are the basic installation methods. There are more advanced methods, like compiling from source or installing specific versions, that we’ll discuss in the next section.

Install Pacemaker from Source

While installing Pacemaker from package managers like APT or YUM is convenient, sometimes you may need to install it from source. This could be due to the need for a specific version not available in your distribution’s repository or the desire to customize the build.

Pacemaker Installation from Source Code

To install Pacemaker from source, first, you need to download the source code. You can get it from the official Pacemaker GitHub repository. Here’s how you do it:

git clone https://github.com/ClusterLabs/pacemaker.git

# Output:
# Cloning into 'pacemaker'...
# remote: Enumerating objects: 762, done.
# remote: Counting objects: 100% (762/762), done.
# remote: Compressing objects: 100% (500/500), done.

This command clones the Pacemaker repository into a new directory named ‘pacemaker’.

Next, navigate to the ‘pacemaker’ directory and compile the source code:

cd pacemaker
./autogen.sh && ./configure && make

# Output:
# Generating build system
# Configuring pacemaker
# Building pacemaker

This will generate the build system, configure it, and then compile the Pacemaker source code.

Specific Versions: Install Pacemaker

There are times when you may need to install a specific version of Pacemaker. This could be due to compatibility issues, specific features, or stability.

Installing Specific Version from Source

When installing from source, you can checkout to a specific version before building. Here’s how:

git checkout tags/Pacemaker-2.0.5
./autogen.sh && ./configure && make

# Output:
# Checking out Pacemaker 2.0.5
# Generating build system
# Configuring pacemaker
# Building pacemaker

This command checks out to Pacemaker version 2.0.5 and then builds it.

Installing Specific Version with APT and YUM

With APT and YUM, you can also install a specific version of Pacemaker. Here’s how:

# For APT
sudo apt-get install pacemaker=2.0.5-3

# For YUM
sudo yum install pacemaker-2.0.5-3

# Output:
# 'Reading package lists... Done'
# 'Building dependency tree... Done'
# 'The following additional packages will be installed:...'
# 'Do you want to continue? [Y/n]'

These commands will install Pacemaker version 2.0.5-3 on your system.

Pacemaker Version Comparison

Different versions of Pacemaker come with different features and compatibilities. Here’s a brief comparison:

VersionKey FeaturesCompatibility
2.0.5Improved fencing mechanism, Enhanced resource managementLinux Kernel 3.10 and above
2.0.3Improved resource management, Bug fixesLinux Kernel 3.10 and above
1.1.23Stable, Less featuresLinux Kernel 2.6.32 and above

Use and Verify Corosync Pacemaker

Once you’ve installed Pacemaker, you can verify its installation by checking the version:

pacemakerd --version

# Output:
# 'Pacemaker 2.0.5'

This command will display the installed Pacemaker version.

To start using Pacemaker, you can start the service with the following command:

sudo systemctl start pacemaker

# Output:
# No output if the command is successful

This command starts the Pacemaker service. You can then use crm_mon to monitor your Pacemaker cluster:

crm_mon

# Output:
# 'No cluster configured'

This command will display the status of your Pacemaker cluster. Since we haven’t set up a cluster yet, it shows ‘No cluster configured’.

Alternatives to Linux Pacemaker

While Pacemaker is an excellent tool for managing high-availability clusters, there are alternative solutions available. Two such alternatives are Corosync and Keepalived. Both offer unique features that might suit your specific needs better.

Corosync Cluster Engine

Corosync is a group communication system that provides a reliable and ordered message delivery service. It’s the default messaging layer for Pacemaker, but it can also be used independently to manage high-availability clusters.

To install Corosync on Ubuntu, you can use the following command:

sudo apt-get install corosync

# Output:
# 'Reading package lists... Done'
# 'Building dependency tree... Done'
# 'The following additional packages will be installed:...'
# 'Do you want to continue? [Y/n]'

This command installs Corosync on your system.

Corosync is highly efficient and provides a robust messaging layer for cluster communication. It’s also very flexible and can be used with different cluster resource managers like Pacemaker.

Keepalived for Linux

Keepalived is another alternative for managing high-availability clusters. It uses the VRRP (Virtual Router Redundancy Protocol) to provide failover capabilities.

To install Keepalived on CentOS, you can use the following command:

sudo yum install keepalived

# Output:
# 'Loaded plugins: fastestmirror, langpacks'
# 'Loading mirror speeds from cached hostfile'
# 'Resolving Dependencies'
# 'Dependencies Resolved'

This command installs Keepalived on your system.

Keepalived is relatively easy to configure and use, making it a good choice for beginners. It also supports load balancing through the LVS (Linux Virtual Server) project.

Pacemaker vs. Corosync vs. Keepalived

When comparing Pacemaker, Corosync, and Keepalived, it’s important to consider your specific needs. Here’s a brief comparison:

SolutionProCon
PacemakerHighly configurable, Wide range of resource agentsComplex configuration
CorosyncEfficient messaging, FlexibleRequires additional resource manager for complete HA solution
KeepalivedEasy to use, Supports load balancingLimited resource types

Remember, there’s no one-size-fits-all solution. While Pacemaker is a powerful tool, Corosync and Keepalived offer unique features that might be more suitable for your specific use case. Always consider your needs and the capabilities of each tool before making a decision.

Fixing Linux Pacemaker Installs

Like any software, you may encounter some issues when installing and using Pacemaker. Here are some common problems and their solutions.

Issue: Pacemaker Installation Fails due to Unmet Dependencies

Sometimes, the Pacemaker installation might fail due to unmet dependencies. This usually happens when certain required packages are not installed on your system.

Here’s an example of what the error might look like:

sudo apt-get install pacemaker

# Output:
# 'Reading package lists... Done'
# 'Building dependency tree... Done'
# 'Some packages could not be installed...'
# 'You might want to run 'apt --fix-broken install'...'

In this case, you can fix the issue by running the suggested command:

sudo apt --fix-broken install

# Output:
# 'Reading package lists... Done'
# 'Building dependency tree... Done'
# 'Correcting dependencies... Done'

This command will attempt to correct the broken dependencies. After running it, you should be able to install Pacemaker without any issues.

Issue: Pacemaker Service Fails to Start

Another common issue is the Pacemaker service failing to start. This could be due to various reasons, such as configuration errors or system issues.

Here’s an example of what the error might look like:

sudo systemctl start pacemaker

# Output:
# 'Job for pacemaker.service failed because the control process exited with error code.'
# 'See "systemctl status pacemaker.service" and "journalctl -xe" for details.'

In this case, you can check the status of the Pacemaker service for more details:

systemctl status pacemaker.service

# Output:
# 'pacemaker.service - Pacemaker High Availability Cluster Manager'
# 'Loaded: loaded (/lib/systemd/system/pacemaker.service; disabled; vendor preset: enabled)'
# 'Active: failed (Result: exit-code)'
# 'Main PID: 12345 (code=exited, status=1/FAILURE)'

This command will show the status of the Pacemaker service and any error messages. You can use these details to troubleshoot the issue.

Remember, troubleshooting is a critical part of working with any software. Always be patient and methodical when solving issues. And don’t forget, the Pacemaker community is a great resource for help and advice.

What is a Pacemaker Cluster?

High-availability (HA) clusters are groups of computers that support server applications that can be reliably utilized with a minimum amount of downtime. They operate by harnessing redundant computers in groups or clusters that provide continued service when system components fail. Without clustering, if a critical server fails, its services become unavailable until the issue is resolved.

# An example of a service that could be managed by an HA cluster
sudo systemctl start apache2

# Output:
# 'Starting apache2 (via systemctl): apache2.service.'

In this example, we started the Apache2 service, which could be managed by an HA cluster. If the server running Apache2 fails, the service becomes unavailable, leading to downtime.

The Importance of a Pacemaker Cluster

In our interconnected world, system downtime can lead to significant financial loss and damage to an organization’s reputation. High-availability clusters help mitigate these risks by providing service continuity — if one server fails, others in the cluster can pick up the workload.

The Role of Corosync Pacemaker

Pacemaker is a source cluster resource manager (CRM), a critical component of any high-availability cluster. It achieves high availability by detecting and recovering from node failures. It does this by moving the resources away from the failed node and onto a healthy one.

# An example of a resource managed by Pacemaker
crm configure primitive ClusterIP ocf:heartbeat:IPaddr2 params ip=192.168.1.120 cidr_netmask=24 op monitor interval=30s

# Output:
# '+ primitive ClusterIP IPaddr2 params ip=192.168.1.120 cidr_netmask=24 op monitor interval=30s'

In this example, we configured an IP address as a cluster resource. Pacemaker will continuously monitor this IP address (every 30 seconds, as specified by the ‘monitor interval’ parameter). If the node currently hosting this IP address fails, Pacemaker will move the IP address to a healthy node, ensuring the service associated with it remains available.

Understanding the fundamentals of high-availability clusters and the role of Pacemaker in managing them is key to maintaining service continuity and minimizing downtime. As we move forward, we’ll explore more advanced topics and delve deeper into the world of high-availability clusters and Pacemaker.

Cloud Computing and Pacemaker Clusters

High-availability clusters are not just a niche concept; they’re a fundamental part of system administration and cloud computing. They ensure that services remain available even when parts of the system fail, making them essential for maintaining uptime and providing a reliable user experience.

# An example of a cloud-based service that could benefit from high-availability clusters
aws ec2 run-instances --image-id ami-0abcdef1234567890 --count 1 --instance-type t2.micro --key-name MyKeyPair --security-groups my-sg

# Output:
# 'An Amazon EC2 instance is launched'

In this example, we launched an Amazon EC2 instance, a cloud-based service that could benefit from being part of a high-availability cluster. If this instance fails, any services running on it would become unavailable unless it’s part of a high-availability cluster.

Exploring Beyond Linux Pacemaker

High-availability is just one aspect of a robust system. Other related concepts include load balancing and failover.

Load balancing is the process of distributing network traffic across multiple servers to ensure no single server bears too much demand. This improves responsiveness and availability of applications.

Failover is a backup operational mode in which the functions of a system component (such as a processor, server, network, or database) are assumed by secondary system components when the primary component becomes unavailable through either failure or scheduled down time.

Understanding these concepts together provides a holistic view of how to design robust, reliable systems.

Resources for Pacemaker Cluster Mastery

To deepen your understanding of high-availability clusters, load balancing, and failover, consider exploring these resources:

  1. ClusterLabs: The official website of ClusterLabs, the organization behind Pacemaker. It provides comprehensive documentation and community support.

  2. Linux Journal: High-Availability Solutions: A great resource for understanding different high-availability solutions in the context of Linux.

  3. IBM Redbooks: High Availability Concepts for System z: An in-depth guide on high-availability concepts, including a detailed discussion on failover and load balancing.

Recap: Intro Pacemaker Tutorials

In this comprehensive guide, we’ve delved into the world of Pacemaker, a powerful tool for managing high-availability clusters on Linux. We’ve explored how to install and configure Pacemaker, ensuring your services remain available even in the face of system failures.

We began with the basics, learning how to install Pacemaker using package managers like APT and YUM. We then advanced to more complex topics, such as installing Pacemaker from source and installing specific versions. In each step, we provided practical code examples and explained their significance, ensuring you have a firm grasp of each concept.

Along the way, we tackled common challenges you might encounter when installing and using Pacemaker, such as unmet dependencies and service start failures. We provided solutions and workarounds for each issue, equipping you with the knowledge to overcome these hurdles.

We also looked at alternative approaches to managing high-availability clusters on Linux, comparing Pacemaker with other solutions like Corosync and Keepalived. Here’s a quick comparison of these solutions:

SolutionProCon
PacemakerHighly configurable, Wide range of resource agentsComplex configuration
CorosyncEfficient messaging, FlexibleRequires additional resource manager for complete HA solution
KeepalivedEasy to use, Supports load balancingLimited resource types

Whether you’re just beginning your journey with Pacemaker or looking to level up your skills, we hope this guide has provided a comprehensive and practical understanding of how to install and use Pacemaker on Linux.

With its robust configuration options and wide range of resource agents, Pacemaker is a powerful tool for managing high-availability clusters on Linux. Now, you’re well-equipped to ensure your services remain available, even in the face of system failures. Happy clustering!