Pacemaker 2.0 Configuration Changes

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).

Deprecated Use 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 bundles promoted-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
Deprecated Use instead
crmd-integration-timeout join-integration-timeout
crmd-finalization-timeout join-finalization-timeout
crmd-transition-delay transition-delay

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
Removed Use instead
cluster_recheck_interval cluster-recheck-interval
dc_deadtime dc-deadtime
default-action-timeout timeout in op_defaults
default_action_timeout timeout in op_defaults
default-resource-failure-stickiness comparable migration-threshold in rsc_defaults
default_resource_failure_stickiness comparable migration-threshold in rsc_defaults
default-resource-stickiness resource-stickiness in rsc_defaults
default_resource_stickiness resource-stickiness in rsc_defaults
election_timeout election-timeout
expected-quorum-votes n/a
is-managed-default is-managed in rsc_defaults
is_managed_default is-managed in rsc_defaults
no_quorum_policy no-quorum-policy
remove_after_stop remove-after-stop
shutdown_escalation shutdown-escalation
startup_fencing startup-fencing
stonith_action stonith-action
stonith_enabled stonith-enabled
stop_orphan_actions stop-orphan-actions
stop_orphan_resources stop-orphan-resources
symmetric_cluster symmetric-cluster
transition_idle_timeout cluster-delay
Resource meta-attributes
Removed Use instead
isolation, isolation-host, isolation-instance, isolation-wrapper bundle resources
resource-failure-stickiness comparable migration-threshold
resource_failure_stickiness comparable migration-threshold
Operation meta-attributes
Removed Use instead
requires requires in resource meta-attributes
Fence device instance attributes
Removed Use instead
pcmk_arg_map comparable pcmk_host_argument
pcmk_list_cmd pcmk_list_action
pcmk_monitor_cmd pcmk_monitor_action
pcmk_off_cmd pcmk_off_action
pcmk_on_cmd pcmk_on_action
pcmk_poweroff_action pcmk_off_action
pcmk_reboot_cmd pcmk_reboot_action
pcmk_status_cmd pcmk_status_action

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 "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.)