• Stars
    star
    249
  • Rank 162,987 (Top 4 %)
  • Language
    Python
  • License
    GNU General Publi...
  • Created about 13 years ago
  • Updated 11 days ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

Pacemaker command line interface and GUI

PCS - Pacemaker/Corosync Configuration System

Pcs is a Corosync and Pacemaker configuration tool. It permits users to easily view, modify and create Pacemaker based clusters. Pcs contains pcsd, a pcs daemon, which operates as a remote server for pcs.


Pcs Versions

There are three pcs branches:

  • main
    • This is where pcs-0.11 lives.
    • Clusters running Pacemaker 2.1+ on top of Corosync 3.x are supported.
    • The main development happens here.
  • pcs-0.10
    • Clusters running Pacemaker 2.0 on top of Corosync 3.x are supported.
    • Pacemaker 2.1 is supported, if it is compiled with --enable-compat-2.0 option.
    • This branch is in maintenance mode - bugs are being fixed but only a subset of new features lands here.
  • pcs-0.9
    • Clusters running Pacemaker 1.x on top of Corosync 2.x or Corosync 1.x with CMAN are supported.
    • This branch is in no longer maintained.

Dependencies

These are the runtime dependencies of pcs and pcsd:

  • python 3.9+
  • python3-cryptography
  • python3-dateutil 2.7.0+
  • python3-lxml
  • python3-pycurl
  • python3-setuptools
  • python3-setuptools_scm
  • python3-pyparsing
  • python3-tornado 6.1.0+
  • dacite
  • ruby 2.5.0+
  • killall (package psmisc)
  • corosync 3.x
  • pacemaker 2.1+

Installation from Source

Apart from the dependencies listed above, these are also required for installation:

  • python development files (packages python3-devel, python3-setuptools, python3-setuptools_scm, python3-wheel)
  • ruby development files (package ruby-devel)
  • rubygems
  • rubygem bundler (package rubygem-bundler or ruby-bundler or bundler)
  • autoconf, automake
  • gcc
  • gcc-c++
  • FFI development files (package libffi-devel or libffi-dev)
  • printf (package coreutils)
  • redhat-rpm-config (if you are using Fedora)
  • wget (to download bundled libraries)

During the installation, all required rubygems are automatically downloaded and compiled.

To install pcs and pcsd run the following in terminal:

./autogen.sh
./configure
# alternatively './configure --enable-local-build' can be used to also download
# missing dependencies
make
make install

If you are using GNU/Linux with systemd, it is now time to:

systemctl daemon-reload

Start pcsd and make it start on boot:

systemctl start pcsd
systemctl enable pcsd

Packages

Currently this is built into Fedora, RHEL and its clones and Debian and its derivates. It is likely that other Linux distributions also contain pcs packages.


Quick Start

  • Authenticate cluster nodes

    Set the same password for the hacluster user on all nodes.

    passwd hacluster

    To authenticate the nodes, run the following command on one of the nodes (replacing node1, node2, node3 with a list of nodes in your future cluster). Specify all your cluster nodes in the command. Make sure pcsd is running on all nodes.

    pcs host auth node1 node2 node3 -u hacluster
  • Create a cluster

    To create a cluster run the following command on one node (replacing cluster_name with a name of your cluster and node1, node2, node3 with a list of nodes in the cluster). --start and --enable will start your cluster and configure the nodes to start the cluster on boot respectively.

    pcs cluster setup cluster_name node1 node2 node3 --start --enable
  • Check the cluster status

    After a few moments the cluster should startup and you can get the status of the cluster.

    pcs status
  • Add cluster resources

    After this you can add stonith agents and resources:

    pcs stonith create --help

    and

    pcs resource create --help

Further Documentation

ClusterLabs website is an excellent place to learn more about Pacemaker clusters.


Inquiries

If you have any bug reports or feature requests please feel free to open a github issue on the pcs project.

Alternatively you can use ClusterLabs users mailinglist which is also a great place to ask Pacemaker clusters related questions.

More Repositories

1

pacemaker

Pacemaker is an advanced, scalable High-Availability cluster resource manager
C
1,035
star
2

resource-agents

Combined repository of OCF agents from the RHCS and Linux-HA projects
Shell
491
star
3

PAF

PostgreSQL Automatic Failover: High-Availibility for Postgres, based on Pacemaker and Corosync.
Perl
340
star
4

libqb

libqb is a library providing high performance logging, tracing, ipc, and poll.
C
165
star
5

hawk

A web-based GUI for managing and monitoring the Pacemaker High-Availability cluster resource manager
JavaScript
151
star
6

crmsh

Command-line interface for High-Availability cluster management on GNU/Linux systems.
Python
131
star
7

fence-agents

Fence agents
Python
104
star
8

ha_cluster_exporter

Prometheus exporter for Pacemaker based Linux HA clusters
Go
79
star
9

striker

The Anvil! Intelligent Availabilityâ„¢ Platform - Striker UI and ScanCore decision engine
Perl
26
star
10

OCF-spec

C
20
star
11

cluster-glue

Reusable Cluster Components ("glue")
C
18
star
12

fence-virt

Virtual Machine I/O Fencing
12
star
13

hawk-apiserver

Next generation HA cluster interface
Go
12
star
14

pacemaker-1.0

Code for the older 1.0 series of Pacemaker
Graphviz (DOT)
12
star
15

pcs-web-ui

Web interface for pcs
TypeScript
10
star
16

go-pacemaker

Go API for the Pacemaker cluster resource manager
Go
7
star
17

clusterlabs-www

Content for clusterlabs.org
HTML
5
star
18

anvil

The Anvil! Intelligent Availabilityâ„¢ Platform, mark 3
Perl
5
star
19

high-laughability

Quotes from our HA overlords
4
star
20

nagios-agents-metadata

OCF metadata files to enable use of nagios agents in pacemaker.
3
star
21

anvil-external-deps

collection of scripts and spec files for Anvil!
Shell
2
star