Page MenuHomeClusterLabs Projects

Pacemaker 2.0 Configuration Changes
Updated 262 Days AgoPublic

Pacemaker 2.0 changed cluster configuration in the following ways. Clusters that were using Pacemaker 1.1.11 or greater running on Corosync 2 or greater are generally not affected.

The build process

  • Pacemaker now requires these minimum versions of support software:
    • autoconf 2.64
    • automake 1.11
    • glib 2.16.0
    • python 2.7 or 3.2
  • The Pacemaker detail log is now stored in /var/log/pacemaker/ by default (instead of /var/log/), and Pacemaker will no longer default to using the log file specified in corosync.conf. Bundle logs are still stored in /var/log/pacemaker/bundles/ by default. These default directories can now be changed with the following new options to the configure script:
    • --with-logdir
    • --with-bundledir
  • The configure script will now configure Python scripts to invoke the Python executable specified by the PYTHON variable (which is auto-detected by default), so Pacemaker may be built to use a specific Python version with, for example, ./configure PYTHON=/usr/bin/python3.6. The spec file provided with the distribution now has a global variable python_path which can be edited to set this when building an RPM.
  • The following deprecated, legacy options to the configure script have been removed:
    • --with-ais
    • --with-ais-prefix
    • --with-cman
    • --with-cs-quorum
    • --with-doc-cli
    • --with-esmtp
    • --with-heartbeat
    • --with-snmp
  • The configure script will no longer check heartbeat's glue_config.h and agent_config.h headers for configuration values (such as the location of the core dump directory, the cluster daemon directory, the resource agent temporary directory, and the cluster user/group ids).
  • The configure script will no longer map NONE to the build prefix when used as the value of directory location options.
  • Defining RHEL7_COMPAT when building Pacemaker will no longer have any effect (the notification-agent and notification-recipient cluster properties, which were never part of an official release, are no longer supported in any fashion).

The environment

  • Support for the following deprecated, legacy environment variables (typically set in /etc/sysconfig/pacemaker or similar locations) has been *removed*:
    • LRMD_MAX_CHILDREN (use PCMK_node_action_limit instead)
    • PCMK_debugfile and HA_debugfile (use PCMK_logfile instead)
    • PCMK_legacy
    • PCMK_uname_is_uuid
    • PCMK_use_logd, HA_use_logd, and HA_LOGD (along with the ability to launch pacemaker-mgmtd)
  • If corosync.conf contains both a name and a ring0_addr for a node, Pacemaker will prefer name as the node name. (This restores the behavior before 1.1.8, which flipped the preference, apparently unintentionally.)
  • When Pacemaker or Pacemaker Remote is launched by systemd, by default it will now run without limits on the number of processes it can spawn simultaneously. To override this behavior, create a unit file override for pacemaker.service with TasksMax set to the desired value.
  • When Pacemaker is launched by init script, the init script no longer behaves differently when called with the --skip-cman option, and no longer has the ability to manage CMAN and its helper daemons.
  • Pacemaker will no longer automatically create /var/run/heartbeat/rsctmp at start-up for (old) resource agents.

Configuration Information Base (CIB) XML changes

Changes in behavior

  • The record-pending cluster property now defaults to true
  • If the stonith-watchdog-timeout cluster property is set to a negative number, and the SBD_WATCHDOG_TIMEOUT environment variable is set, Pacemaker will calculate an appropriate value. To get the previous behavior of disabling Pacemaker watchdog fencing, use 0 (which is still the default).
  • The reconnect_interval option of ocf:pacemaker:remote resources now accepts ISO8601 period specifications, as well as the previously accepted bare number of seconds or number with SI units.

Promotable clone resources

The resource type referred to as "master/slave", "stateful", or "multi-state" is no longer a separate resource type, but a variation of clone now referred to as a "promotable clone". "Master scores" are now referred to as "promotion scores" (though the names of the crm_master tool and master-* node attributes are unchanged).

DeprecatedUse instead
<master> resource<clone> resource with a new meta-attribute "promotable" set to "true"
"master-max" master meta-attribute"promoted-max" clone meta-attribute
"master-node-max" master meta-attribute"promoted-node-max" clone meta-attribute
masters property of <docker> and <rkt> tags inside bundlespromoted-max property in the same place

The deprecated syntax will continue to be accepted for at least the lifetime of the 2.0.x series.

Further changes in related terminology (such as the role names) occurred in the 2.1.0 release. It was not done all at once because some changes required updates to the OCF standard and existing resource agents.

Options that have been renamed

Cluster properties
DeprecatedUse instead

The deprecated syntax will continue to be accepted for at least the lifetime of the 2.0.x series.

Deprecated options that have been removed

Cluster properties
RemovedUse instead
default-action-timeouttimeout in op_defaults
default_action_timeouttimeout in op_defaults
default-resource-failure-stickinesscomparable migration-threshold in rsc_defaults
default_resource_failure_stickinesscomparable migration-threshold in rsc_defaults
default-resource-stickinessresource-stickiness in rsc_defaults
default_resource_stickinessresource-stickiness in rsc_defaults
is-managed-defaultis-managed in rsc_defaults
is_managed_defaultis-managed in rsc_defaults
Resource meta-attributes
RemovedUse instead
isolation, isolation-host, isolation-instance, isolation-wrapperbundle resources
resource-failure-stickinesscomparable migration-threshold
resource_failure_stickinesscomparable migration-threshold
Operation meta-attributes
RemovedUse instead
requiresrequires in resource meta-attributes
Fence device instance attributes
RemovedUse instead
pcmk_arg_mapcomparable pcmk_host_argument

Deprecated syntax that has been removed

  • Support for using Corosync version 1 (whether with CMAN or the Pacemaker plugin) or Heartbeat as the underlying cluster layer. This includes:
  • <primitive> resources with class="heartbeat" (these required building with the cluster-glue library, and should not be confused with resources with class="ocf" provider="heartbeat", which are still supported)
  • automatically looking for the CIB in /var/lib/heartbeat/crm or CIB secrets in /var/lib/heartbeat/lrm/secrets
  • type="normal" in CIB <node> entries (use type="member" instead)
  • Support for pre-Pacemaker-0.7 and pre-Heartbeat-2.0.8 transition keys in <lrm_rsc_op> status entries (only an issue for manipulating saved live CIB files from Pacemaker 0.6, or Pacemaker 1.1.6 or earlier with Heartbeat 2.0.7 or earlier)
  • Support for the <cib> tag's validate-with attribute set to "pacemaker-0.6", "transitional-0.6", "pacemaker-0.7", or "pacemaker-1.1" (if your configuration has this, run cibadmin --upgrade or replace "pacemaker-1.1" with "pacemaker-next" before upgrading to Pacemaker 2.0)
  • Support for <instance_attributes> in the <tickets> status section (only an issue for really old saved CIB files, not live cluster configurations)
  • Support for operation meta-attributes specified in the operation's <instance_attributes> section. (Specify them in the operation's <meta_attributes> instead.)
Last Author
Last Edited
Oct 31 2023, 5:56 PM