Product SiteDocumentation Site

Pacemaker Remote

Scaling High Availablity Clusters

Edition 7

David Vossel

Primary author 
Red Hat

Legal Notice

Copyright © 2013-2016 David Vossel.
The text of and illustrations in this document are licensed under version 4.0 or later of the Creative Commons Attribution-ShareAlike International Public License ("CC-BY-SA")[1].
In accordance with CC-BY-SA, if you distribute this document or an adaptation of it, you must provide the URL for the original version.
In addition to the requirements of this license, the following activities are looked upon favorably:
  1. If you are distributing Open Publication works on hardcopy or CD-ROM, you provide email notification to the authors of your intent to redistribute at least thirty days before your manuscript or media freeze, to give the authors time to provide updated documents. This notification should describe modifications, if any, made to the document.
  2. All substantive modifications (including deletions) be either clearly marked up in the document or else described in an attachment to the document.
  3. Finally, while it is not mandatory under this license, it is considered good form to offer a free copy of any hardcopy or CD-ROM expression of the author(s) work.


The document exists as both a reference and deployment guide for the Pacemaker Remote service.
The example commands in this document will use:
  1. CentOS 7.1 as the host operating system
  2. Pacemaker Remote to perform resource management within guest nodes and remote nodes
  3. KVM for virtualization
  4. libvirt to manage guest nodes
  5. Corosync to provide messaging and membership services on cluster nodes
  6. Pacemaker to perform resource management on cluster nodes
  7. pcs as the cluster configuration toolset
The concepts are the same for other distributions, virtualization platforms, toolsets, and messaging layers, and should be easily adaptable.

Table of Contents

1. Scaling a Pacemaker Cluster
1.1. Overview
1.2. Terms
1.3. Support in Pacemaker Versions
1.4. Guest Nodes
1.5. Remote Nodes
1.6. Expanding the Cluster Stack
2. Guest Node Quick Example
2.1. Mile-High View of Configuration Steps
2.2. Using a Guest Node
3. Configuration Explained
3.1. Resource Meta-Attributes for Guest Nodes
3.2. Connection Resources for Remote Nodes
3.3. Environment Variables for Daemon Start-up
3.4. Removing Remote Nodes and Guest Nodes
4. Guest Node Walk-through
4.1. Configure the Physical Host
4.1.1. Configure Firewall on Host
4.1.2. Install Cluster Software
4.1.3. Configure Corosync
4.1.4. Configure Pacemaker for Remote Node Communication
4.1.5. Verify Cluster Software
4.1.6. Disable STONITH and Quorum
4.1.7. Install Virtualization Software
4.2. Configure the KVM guest
4.2.1. Create Guest
4.2.2. Configure Firewall on Guest
4.2.3. Verify Connectivity
4.2.4. Configure pacemaker_remote
4.2.5. Verify Host Connection to Guest
4.3. Integrate Guest into Cluster
4.3.1. Start the Cluster
4.3.2. Integrate as Guest Node
4.3.3. Starting Resources on KVM Guest
4.3.4. Testing Recovery and Fencing
4.3.5. Accessing Cluster Tools from Guest Node
5. Remote Node Walk-through
5.1. Configure Remote Node
5.1.1. Configure Firewall on Remote Node
5.1.2. Configure pacemaker_remote on Remote Node
5.2. Verify Connection to Remote Node
5.3. Configure Cluster Nodes
5.3.1. Configure Firewall on Cluster Nodes
5.3.2. Install Pacemaker on Cluster Nodes
5.3.3. Copy Authentication Key to Cluster Nodes
5.3.4. Configure Corosync on Cluster Nodes
5.3.5. Start Pacemaker on Cluster Nodes
5.4. Integrate Remote Node into Cluster
5.5. Starting Resources on Remote Node
5.6. Fencing Remote Nodes
5.7. Accessing Cluster Tools from a Remote Node
6. Alternative Configurations
6.1. Virtual Machines as Cluster Nodes
6.2. Virtual Machines as Remote Nodes
6.3. Containers as Guest Nodes
A. Revision History

List of Figures

1.1. Traditional HA Stack
1.2. HA Stack With Guest Nodes

List of Tables

3.1. Meta-attributes for configuring VM resources as guest nodes