Phriction Welcome to the ClusterLabs Wiki Projects Pacemaker Pacemaker 3.0 Changes Pacemaker 3.0 Configuration Changes History Version 22 vs 23
Version 22 vs 23
Version 22 vs 23
Content Changes
Content Changes
**This describes proposed configuration changes for a possible Pacemaker 3.0.0 release. Discussion should be directed to the [[ /w/clusterlabs/clusterlabs_mailing_lists/ | users mailing list]].**
These changes are only proposed and may not make it into the final release.
== The build process ==
=== Dependencies ===
In general, Pacemaker 3 will support dependency versions that are available in supported releases of major Linux distributions (usually but not always including long-term support releases). The following are specifically targeted for support:
* Debian 10 "buster" and later
* RHEL 8.0 and later
* SUSE 15.0 and later
* Ubuntu 18 "bionic" and later
The only changes are these new minimum dependency versions:
* libdbus 1.5.12
* libgnutls 3.1.7 (also now required rather than optional)
* libqb 1.0.1
* libxml2 2.9.2
* pkg-config 0.28 (or pkgconf)
* Python 3.6
=== configure script ===
The following configure script options are no longer supported:
* `--enable-legacy-links` //(deprecated in Pacemaker 2.1.0)//
* `--enable-compat-2.0` //(introduced in 2.1.0 explicitly for the 2.1 series only)//
* `--enable-upstart` //(deprecated in Pacemaker 2.1.0)//
* `--with-gnutls` //(GnuTLS is now required and cannot be disabled)//
* `--with-nagios` //(deprecated in Pacemaker 2.1.6)//
=== RPMs ===
* The `RPMDEST` Makefile variable may no longer be set to `toplevel`. The default of `subtree`, and explicit paths, are still supported.
* The spec file now longer supports the `--with-doc` and `--without-doc` options. Documentation will always be built.
* Pacemaker's logrotate script is now part of the pacemaker package instead of the pacemaker-cli package.
* The `--with stonithd`/`--without stonithd` spec file option, which controls support for Linux-HA fencing agents, has been renamed to `--with linuxha/--without linuxha`
---
== Resource agents ==
* The obsolete and deprecated **ocf:pacemaker:o2cb** resource agent (which manages the no-longer-used ocf_controld.pcmk daemon for OCFS2 file systems) has been dropped.
---
== Start-up environment variables ==
These are typically set under /etc/sysconfig or /etc/default.
Pacemaker will no longer use the `HA_cib_timeout`, `HA_shutdown_delay`, `PCMK_cib_timeout`, `PCMK_dh_min_bits`, or `PCMK_shutdown_delay` variables.
---
== Configuration Information Base (CIB) XML changes ==
**XML syntax in the CIB must now be correctly formed.** Previously, some simple XML syntax errors would be ignored. Upgrades will not succeed if the XML syntax is invalid, so ensure it is valid before upgrading any node in the cluster.
**Deprecated schemas have been dropped.** The `validate-with` attribute of the `cib` XML element may no longer be set to the deprecated values `pacemaker-0.6`, `transitional-0.6`, `pacemaker-0.7`, `pacemaker-1.1`, or `pacemaker-next`. Upgrades will not succeed unless the CIB has a supported value for `validate-with` //before// the upgrade, so ensure one is set before upgrading any node in the cluster. (Disabling validation by omitting `validate-with` or setting it to `none` remains allowed and deprecated.)
The following will be automatically and silently dropped or converted to current syntax when used in existing configurations, but disallowed in new ones (as well as existing ones after running `cibadmin --upgrade`).
* The schema will have stricter error checking.
** Clones using non-OCF resource agents and the `globally-unique` meta-attribute set to `true` will be considered an error and ignored (currently, a warning is logged but the resource is allowed)
** Invalid topology levels will be disallowed in the CIB rather than wait until they are rejected by the fencer (valid levels are 1 through 9)
** The value of an `acl_target` element's `id` attribute must be of the XML ID type (noncompliant names will be given an auto-generated ID and moved to the `name` attribute)
** Empty groups will be ignored (currently they can have some effect in constraints)
* Support for these deprecated (and mostly undocumented) features will be dropped.
** `nagios` class resources
** `upstart` class resources
** bundles using `rkt` to launch containers
** `master` resources (they will be converted to `clone` elements with the `promotable` meta-attribute set to `true`)
** `remove-after-stop` cluster option
** `moon` in `date_spec` elements in rules
** Nodes with `type` set to `ping`
** `ordering` attribute of resource sets in colocation constraints
** `can-fail` (or `can_fail`) resource meta-attribute (if possible, it will converted to `on-fail` operation meta-attributes set to `ignore`)
** `restart-type` resource meta-attribute
** `role-after-failure` resource meta-attribute
** `score` in an ordering constraint (if possible, a value of 0 will be transformed to a `kind` of `optional`)
** `stonith-action` cluster option set to `poweroff` (it will be transformed to `off`)
** `collocated` and `ordered` group options (if possible, a value of `false` will be transformed to resource sets in a colocation or ordering constraint instead)
** `lifetime` elements inside a constraint (any rules they contain will be left inside the constraint directly)
* Rules will now be more strictly interpreted, with the following options causing an error rather than being silently ignored where they aren't relevant.
** `op_expression` in a rule anywhere other than `op_defaults`
** `rsc_expression` in a rule anywhere other than `rsc_defaults` or `op_defaults`
** `score` or `score-attribute` in a rule anywhere other than a location constraint
** `value-source` in a rule `expression` anywhere other than a location constraint
** `monthdays`, `weekdays`, `weekyears`, or `moon` in a `duration`
** `yearsdays` anywhere (`yeardays` is allowed only in a `time_spec`)
** An invalid `role` name in any `rule`
**This describes proposed configuration changes for a possible Pacemaker 3.0.0 release. Discussion should be directed to the [[ /w/clusterlabs/clusterlabs_mailing_lists/ | users mailing list]].**
These changes are only proposed and may not make it into the final release.
== The build process ==
=== Dependencies ===
In general, Pacemaker 3 will support dependency versions that are available in supported releases of major Linux distributions (usually but not always including long-term support releases). The following are specifically targeted for support:
* Debian 10 "buster" and later
* RHEL 8.0 and later
* SUSE 15.0 and later
* Ubuntu 18 "bionic" and later
The only changes are these new minimum dependency versions:
* libdbus 1.5.12
* libgnutls 3.1.7 (also now required rather than optional)
* libqb 1.0.1
* libxml2 2.9.2
* pkg-config 0.28 (or pkgconf)
* Python 3.6
=== configure script ===
The following configure script options are no longer supported:
* `--enable-legacy-links` //(deprecated in Pacemaker 2.1.0)//
* `--enable-compat-2.0` //(introduced in 2.1.0 explicitly for the 2.1 series only)//
* `--enable-upstart` //(deprecated in Pacemaker 2.1.0)//
* `--with-gnutls` //(GnuTLS is now required and cannot be disabled)//
* `--with-nagios` //(deprecated in Pacemaker 2.1.6)//
=== RPMs ===
* The `RPMDEST` Makefile variable may no longer be set to `toplevel`. The default of `subtree`, and explicit paths, are still supported.
* The spec file now longer supports the `--with-doc` and `--without-doc` options. Documentation will always be built.
* Pacemaker's logrotate script is now part of the pacemaker package instead of the pacemaker-cli package.
* The `--with stonithd`/`--without stonithd` spec file option, which controls support for Linux-HA fencing agents, has been renamed to `--with linuxha/--without linuxha`
---
== Resource agents ==
* The obsolete and deprecated **ocf:pacemaker:o2cb** resource agent (which manages the no-longer-used ocf_controld.pcmk daemon for OCFS2 file systems) has been dropped.
---
== Start-up environment variables ==
These are typically set under /etc/sysconfig or /etc/default.
Pacemaker will no longer use the `HA_cib_timeout`, `HA_shutdown_delay`, `PCMK_cib_timeout`, `PCMK_dh_min_bits`, or `PCMK_shutdown_delay` variables.
---
== Configuration Information Base (CIB) XML changes ==
* **XML syntax in the CIB must now be correctly formed.** Previously, some simple XML syntax errors would be ignored. Upgrades will not succeed if the XML syntax is invalid, so ensure it is valid //before// upgrading any node in the cluster.
* **Deprecated schemas have been dropped.** The `validate-with` attribute of the `cib` XML element may no longer be omitted or set to the deprecated values `pacemaker-0.6`, `transitional-0.6`, `pacemaker-0.7`, `pacemaker-1.1`, `pacemaker-next`, or any unknown value. Upgrades will not succeed unless the CIB has a supported value for `validate-with` //before// the upgrade, so ensure one is set before upgrading any node in the cluster. (Disabling validation by setting `validate-with` to `none` remains allowed and deprecated.)
* Support for the following deprecated (and mostly undocumented) features has been dropped. Any uses in existing configurations will be automatically and silently converted to current syntax when possible. They will not be allowed in new configurations, or in existing ones after running `cibadmin --upgrade`.
** cluster options: `remove-after-stop`, and the `stonith-action` cluster option set to `poweroff`
** nodes: `type` set to `ping`
** `primitive` resources: `nagios` or `upstart` class
** `group` resources: `collocated` and `ordered` group options; groups with no members will be ignored (previously, they could have some effect if used in constraints)
** `master` resources
** `bundle` resources: using `rkt` to launch containers
** resource meta-attributes: `can-fail`, `can_fail`, `restart-type`, and `role-after-failure`
** rules: `moon` in `date_spec` elements
** constraints: `lifetime` elements in any constraint, `ordering` attribute of resource sets in colocation constraints, and `score` in ordering constraints
* Error checking is stricter (many of these are possible only with schema validation disabled)
** Clones using non-OCF resource agents and the `globally-unique` clone option set to `true` will be considered an error and ignored (currently, a warning is logged but the resource is allowed)
** Invalid fencing topology levels are now disallowed by the schema (rather than waiting until they are rejected by the fencer; valid levels are 1 through 9)
** The value of an `acl_target` element's `id` attribute must be of the XML ID type (noncompliant names will be given an auto-generated ID and moved to the `name` attribute)
* Rule syntax will now be more strictly interpreted
** A date expression is now treated as not passing if it is missing an `id`; contains an invalid `operation`; contains a `date_spec` or `duration` with a missing `id` or an attribute with an invalid range; has an `operation` of `in_range`, `gt`, or `lt` with an invalid or missing `start` or `end`; or uses `date_spec` without a `date_spec` element
** An attribute expression is now treated as not passing if it is missing an `id`; has an invalid `value-source` or `type`; or has `value` missing when it is required or present when it is unused
** A resource expression is now treated as not passing if it is missing an `id`
** An operation expression is now treated as not passing if it is missing an `id` or `interval` or has an invalid `interval`
** A rule is now treated as not passing if it is missing an `id` or has an invalid `boolean-op`
** An rule with a `boolean-op` of `or` with no conditions is now properly treated as passing.
** The schema will no longer allow rule syntax where it is unused, including: `op_expression` in a rule anywhere other than `op_defaults`; `rsc_expression` in a rule anywhere other than `rsc_defaults` or `op_defaults`; `score` or `score-attribute` in a rule anywhere other than a location constraint; `value-source` in a rule `expression` anywhere other than a location constraint; `monthdays`, `weekdays`, `weekyears`, or `moon` in a `duration`; `yearsdays` anywhere (the correct spelling `yeardays` is allowed only in a `time_spec`); an invalid `role` name in any `rule`
* Changes in defaults
** The documentation states that the default for `action` in a `resource_set` is the enclosing constraint's action. However until now `start` has actually been used as the default. The behavior has changed to match the documentation.
** `action` configured as a fence device parameter is now ignored rather than treated as a default fencing action.
** The `concurrent-fencing` cluster option now defaults to true and is deprecated
** The `globally-unique` clone option now defaults to `true` when `clone-node-max` is greater than 1
* A negative `migration-threshold`, which is invalid and was previously treated as 1, is now treated as 0 (no limit).
**This describes proposed configuration changes for a possible Pacemaker 3.0.0 release. Discussion should be directed to the [[ /w/clusterlabs/clusterlabs_mailing_lists/ | users mailing list]].**
These changes are only proposed and may not make it into the final release.
== The build process ==
=== Dependencies ===
In general, Pacemaker 3 will support dependency versions that are available in supported releases of major Linux distributions (usually but not always including long-term support releases). The following are specifically targeted for support:
* Debian 10 "buster" and later
* RHEL 8.0 and later
* SUSE 15.0 and later
* Ubuntu 18 "bionic" and later
The only changes are these new minimum dependency versions:
* libdbus 1.5.12
* libgnutls 3.1.7 (also now required rather than optional)
* libqb 1.0.1
* libxml2 2.9.2
* pkg-config 0.28 (or pkgconf)
* Python 3.6
=== configure script ===
The following configure script options are no longer supported:
* `--enable-legacy-links` //(deprecated in Pacemaker 2.1.0)//
* `--enable-compat-2.0` //(introduced in 2.1.0 explicitly for the 2.1 series only)//
* `--enable-upstart` //(deprecated in Pacemaker 2.1.0)//
* `--with-gnutls` //(GnuTLS is now required and cannot be disabled)//
* `--with-nagios` //(deprecated in Pacemaker 2.1.6)//
=== RPMs ===
* The `RPMDEST` Makefile variable may no longer be set to `toplevel`. The default of `subtree`, and explicit paths, are still supported.
* The spec file now longer supports the `--with-doc` and `--without-doc` options. Documentation will always be built.
* Pacemaker's logrotate script is now part of the pacemaker package instead of the pacemaker-cli package.
* The `--with stonithd`/`--without stonithd` spec file option, which controls support for Linux-HA fencing agents, has been renamed to `--with linuxha/--without linuxha`
---
== Resource agents ==
* The obsolete and deprecated **ocf:pacemaker:o2cb** resource agent (which manages the no-longer-used ocf_controld.pcmk daemon for OCFS2 file systems) has been dropped.
---
== Start-up environment variables ==
These are typically set under /etc/sysconfig or /etc/default.
Pacemaker will no longer use the `HA_cib_timeout`, `HA_shutdown_delay`, `PCMK_cib_timeout`, `PCMK_dh_min_bits`, or `PCMK_shutdown_delay` variables.
---
== Configuration Information Base (CIB) XML changes ==
* **XML syntax in the CIB must now be correctly formed.** Previously, some simple XML syntax errors would be ignored. Upgrades will not succeed if the XML syntax is invalid, so ensure it is valid //before// upgrading any node in the cluster.
* **Deprecated schemas have been dropped.** The `validate-with` attribute of the `cib` XML element may no longer be omitted or set to the deprecated values `pacemaker-0.6`, `transitional-0.6`, `pacemaker-0.7`, `pacemaker-1.1`, `pacemaker-next`, or `pacemaker-next`or any unknown value. Upgrades will not succeed unless the CIB has a supported value for `validate-with` //before// the upgrade, so ensure one is set before upgrading any node in the cluster. (Disabling validation by omisetting `validate-with` or setting it to `none` remains allowed and deprecated.)
T* Support for the followinging deprecated (and mostly undocumented) features has been dropped. Any uses in existing configurations will be automatically and silently dropped or converted to current syntax when used in existing configurations,possible. but disThey will not be allowed in new ones (as well asconfigurations, or in existing ones after running `cibadmin --upgrade`).
* The schema will have stricter error checking.
** Clones using non-OCF resource agents and the `globally-unique` meta-attribute set to `true` will be considered an error and ignored (currentlycluster options: `remove-after-stop`, a warning is logged but the resource is allowed)and the `stonith-action` cluster option set to `poweroff`
** Invalid topology levels will be disallowed in the CIB rather than wait until they are rejected by the fencer (valid levels are 1 through 9)nodes: `type` set to `ping`
** The value of an `acl_target` element's `id` attribute must be of the XML ID type (noncompliant names will be given an auto-generated ID and moved to the `name` attribute)`primitive` resources: `nagios` or `upstart` class
** Empty groups will be ignored (currently they can have some effect in constraints)
* Support for these deprecated (and mostly undocumented) features will be dropped.`group` resources: `collocated` and `ordered` group options; groups with no members will be ignored (previously, they could have some effect if used in constraints)
** `nagios` classmaster` resources
** `upstart` class resourcesbundle` resources: using `rkt` to launch containers
** bundles using `rkt` to launch containers** resource meta-attributes: `can-fail`, `can_fail`, `restart-type`, and `role-after-failure`
** `master` resources (they will be converted to `clone` elements with the `promotable` meta-attribute set to `true`)** rules: `moon` in `date_spec` elements
** `remove-after-stop` cluster optionconstraints: `lifetime` elements in any constraint, `ordering` attribute of resource sets in colocation constraints, and `score` in ordering constraints
* Error checking is stricter (many of these are possible only with schema validation disabled)
** `moon` in `date_spec` elements in rulesClones using non-OCF resource agents and the `globally-unique` clone option set to `true` will be considered an error and ignored (currently, a warning is logged but the resource is allowed)
** Nodes with `type` set to `ping`Invalid fencing topology levels are now disallowed by the schema (rather than waiting until they are rejected by the fencer; valid levels are 1 through 9)
** `ordering` attribute of resource sets in colocation constraintsThe value of an `acl_target` element's `id` attribute must be of the XML ID type (noncompliant names will be given an auto-generated ID and moved to the `name` attribute)
* Rule syntax will now be more strictly interpreted
** `can-fail` (or `can_fail`) resource meta-attribute (if possible,A date expression is now treated as not passing if it is missing an `id`; contains an invalid `operation`; contains a `date_spec` or `duration` with a missing `id` or an attribute with an invalid range; has an `operation` of `in_range`, `gt`, or `lt` with an invalid or missing `start` or `end`; it will converted to `on-fail` operation meta-attributes set to `ignore`)or uses `date_spec` without a `date_spec` element
** `restart-type` resource meta-attributeAn attribute expression is now treated as not passing if it is missing an `id`; has an invalid `value-source` or `type`; or has `value` missing when it is required or present when it is unused
** `role-after-failure` resource meta-attribute** A resource expression is now treated as not passing if it is missing an `id`
** `score` in an ordering constraint (if possible, a value of 0 will be transformed to a `kind` of `optional`)** An operation expression is now treated as not passing if it is missing an `id` or `interval` or has an invalid `interval`
** `stonith-action` cluster option set to `poweroff` (it will be transformed to `off`)** A rule is now treated as not passing if it is missing an `id` or has an invalid `boolean-op`
** `collocated` and `ordered` group options (if possible, a value of `false` will be transformed to resource sets in a colocation or ordering constraint instead)An rule with a `boolean-op` of `or` with no conditions is now properly treated as passing.
** `lifetime` elements inside a constraint (any rules they contain will be left inside the constraint directly)The schema will no longer allow rule syntax where it is unused, including: `op_expression` in a rule anywhere other than `op_defaults`; `rsc_expression` in a rule anywhere other than `rsc_defaults` or `op_defaults`; `score` or `score-attribute` in a rule anywhere other than a location constraint; `value-source` in a rule `expression` anywhere other than a location constraint; `monthdays`, `weekdays`, `weekyears`, or `moon` in a `duration`; `yearsdays` anywhere (the correct spelling `yeardays` is allowed only in a `time_spec`); an invalid `role` name in any `rule`
* Rules will now be more strictly interpreted, with the following options causing an error rather than being silently ignored where they aren't relevant.
** `op_expression` in a rule anywhere other than `op_defaults`
** `rsc_expression` in a rule anywhere other than `rsc_defaults` or `op_defaults`Changes in defaults
** `score` or `score-attribute` in a rule anywhere other than a location constraintThe documentation states that the default for `action` in a `resource_set` is the enclosing constraint's action. However until now `start` has actually been used as the default. The behavior has changed to match the documentation.
** `value-source` in a rule `expression` anywhere oaction` configured as a fence device parameter is now ignored rather than a location constrainttreated as a default fencing action.
** `monthdays`, `weekdays`, `weekyears`, or `moon` in a `duration`** The `concurrent-fencing` cluster option now defaults to true and is deprecated
** `yearsdays` anywhere (`yeardays` is allowed only in a `time_spec`)
** An invalid `role` name in any `rule`The `globally-unique` clone option now defaults to `true` when `clone-node-max` is greater than 1
* A negative `migration-threshold`, which is invalid and was previously treated as 1, is now treated as 0 (no limit).