* [PATCH docs v2] pvecm: elaborate when and how to change the token coefficient
@ 2026-05-19 17:38 Friedrich Weber
2026-05-19 18:10 ` applied: " Thomas Lamprecht
0 siblings, 1 reply; 2+ messages in thread
From: Friedrich Weber @ 2026-05-19 17:38 UTC (permalink / raw)
To: pve-devel
Since pve-cluster 9.1.0, more specifically commit a7b1c76 ("corosync
config: allow to override token coefficient and lower default"), new
corosync clusters are created with a token_coefficient of 125ms (the
default being 650ms), primarily to avoid issues with larger clusters
in combination with HA.
Already existing clusters may need manual adjustment of the
token_coefficient. Hence, expand the "Changing the Token Coefficient"
section and provide instructions when and how to change the token
coefficient.
Signed-off-by: Friedrich Weber <f.weber@proxmox.com>
---
Notes:
v1 depended on Michael's patch series [1], this v2 does not anymore,
the motivation being that this v2 could be applied even if Michael's
patch series is not applied.
Changes since v2:
- rebase on current master, squash in the explicit anchor added by
Michael's patch [2]
- drop sentence about pvecm showing warnings, as these would only
be added by Michael's patch series
- mention Proxmox VE 9.2 as the first version with the lower default
token_coefficient. Although the change was rolled out before Proxmox
VE 9.2 in pve-cluster 9.1.0, mentioning an explicit minor release
seems more informative in the long run than mentioning the explicit
pve-cluster package version.
- reorder the suggested optimization / recommendation / strong
recommendation
- minor rewordings
[1] https://lore.proxmox.com/pve-devel/20260427170548.307698-1-m.koeppl@proxmox.com/
[2] https://lore.proxmox.com/pve-devel/20260427170548.307698-3-m.koeppl@proxmox.com/
v1: https://lore.proxmox.com/all/20260505144946.234522-1-f.weber@proxmox.com/
pvecm.adoc | 92 +++++++++++++++++++++++++++++++++++++++++++++++-------
1 file changed, 80 insertions(+), 12 deletions(-)
diff --git a/pvecm.adoc b/pvecm.adoc
index 250a154..f4dbd85 100644
--- a/pvecm.adoc
+++ b/pvecm.adoc
@@ -1393,22 +1393,90 @@ systemctl restart corosync
On errors, check the troubleshooting section below.
+[[pvecm_changing_token_coefficient]]
Changing the Token Coefficient
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
The token coefficient can be configured in the `totem` section in
-`/etc/pve/corosync.conf`. corosync uses the token coefficient to calculate
-several timeouts in relation to the cluster size.footnote:[
-`token_coefficient` in the corosync manual page
-https://manpages.debian.org/stable/corosync/corosync.conf.5.en.html#token_coefficient]
-
-If the token coefficient is not explicitly set, it defaults to 650 milliseconds.
-New clusters are created with a lower token coefficient of 125 milliseconds that
-is explicitly set in `/etc/pve/corosync.conf`.
-
-You can change the token coefficient of an existing cluster by
-xref:pvecm_edit_corosync_conf[editing corosync.conf]. Corosync will then
-automatically adopt the new value for the cluster.
+`/etc/pve/corosync.conf`. If the token coefficient is not explicitly set, it
+defaults to 650 milliseconds. Since Proxmox VE 9.2, new clusters are created
+with a lower token coefficient of 125 milliseconds explicitly set in
+`/etc/pve/corosync.conf`. This reduces the time needed for reestablishing a
+new cluster membership after a node failure.
+
+corosync uses the token coefficient to calculate
+several timeouts in relation to the cluster size
+footnote:[ `token_coefficient` in the corosync manual
+page
+https://manpages.debian.org/stable/corosync/corosync.conf.5.en.html#token_coefficient],
+most importantly the token timeout and consensus timeout.
+Corosync implements a token-passing protocol. The token timeout specifies how
+long a node waits for the token until it declares the token to be lost
+footnote:[ `token` in the corosync manual page
+https://manpages.debian.org/stable/corosync/corosync.conf.5.en.html#token]. The
+consensus timeout footnote:[ `consensus` in the corosync manual page
+https://manpages.debian.org/stable/corosync/corosync.conf.5.en.html#consensus]
+specifies the time nodes wait for a consensus on a new cluster membership. The
+sum of token and consensus timeouts defines the minimum time needed to
+reestablish a new cluster membership after a node goes offline.
+
+Keeping the sum of token and consensus timeouts below 30 seconds reduces the
+time needed for restablishing a new cluster membership after a node failure.
+When HA is enabled, it is especially important that this time stays below 45
+seconds to ensure that a new cluster membership is formed before the
+xref:ha_manager_crm[watchdog timeout] of 60 seconds expires, which would
+trigger a node fence. The recommended mechanism for lowering the token and
+consensus timeouts is lowering the token coefficient as explained below.
+
+You can check the current token and consensus timeouts (in milliseconds) with
+the following command:
+
+[source,bash]
+----
+corosync-cmapctl | grep -Ew 'runtime.config.totem.token|runtime.config.totem.consensus'
+----
+For example:
+[source,bash]
+----
+runtime.config.totem.consensus (u32) = 5940
+runtime.config.totem.token (u32) = 4950
+----
+
+The sum of these two values (10.89 seconds in the example) defines the minimum
+time needed to reestablish a new cluster membership after a node goes offline.
+Lowering the token coefficient is
+
+* a suggested optimization if this value exceeds 30 seconds,
+* recommended if it exceeds 40 seconds,
+* strongly recommended if it exceeds 45 seconds.
+
+To lower the token coefficient, first make sure your setup adheres
+xref:pvecm_cluster_network_requirements[to the network requirements],
+especially with regards to latency. Then:
+
+* If the `token_coefficient` is not yet set explicitly to 125 milliseconds in
+ corosync.conf, xref:pvecm_edit_corosync_conf[edit corosync.conf] and add
+ `token_coefficient: 125` to the `totem` section. Do not forget to
+ xref:pvecm_edit_corosync_conf[increase the `config_version`].
+* If the `token_coefficient` is already set explicitly to 125 milliseconds,
+ select a `token_coefficient` with which the token and consensus timeouts sum
+ up to at most 45 seconds. By default, corosync computes the token and
+ consensus timeouts (in milliseconds) according to the following formula:
++
+----
+token = 3000 + (number_of_nodes - 2) * token_coefficient
+consensus = 1.2 * token
+----
++
+xref:pvecm_edit_corosync_conf[Edit corosync.conf] and set an appropriate
+`token_coefficient` option in the `totem` section. Do not forget to
+xref:pvecm_edit_corosync_conf[increase the `config_version`]. Test your setup
+thoroughly for stability!
+
+After adjusting the `token_coefficient` in `corosync.conf`, recent corosync
+versions will automatically adopt the new value for the cluster. For corosync
+versions below `3.1.10-pve1`, corosync needs to be restarted on all nodes for
+the change to take effect.
Troubleshooting
~~~~~~~~~~~~~~~
--
2.47.3
^ permalink raw reply related [flat|nested] 2+ messages in thread* applied: [PATCH docs v2] pvecm: elaborate when and how to change the token coefficient
2026-05-19 17:38 [PATCH docs v2] pvecm: elaborate when and how to change the token coefficient Friedrich Weber
@ 2026-05-19 18:10 ` Thomas Lamprecht
0 siblings, 0 replies; 2+ messages in thread
From: Thomas Lamprecht @ 2026-05-19 18:10 UTC (permalink / raw)
To: pve-devel, Friedrich Weber
On Tue, 19 May 2026 19:38:58 +0200, Friedrich Weber wrote:
> Since pve-cluster 9.1.0, more specifically commit a7b1c76 ("corosync
> config: allow to override token coefficient and lower default"), new
> corosync clusters are created with a token_coefficient of 125ms (the
> default being 650ms), primarily to avoid issues with larger clusters
> in combination with HA.
>
> Already existing clusters may need manual adjustment of the
> token_coefficient. Hence, expand the "Changing the Token Coefficient"
> section and provide instructions when and how to change the token
> coefficient.
>
> [...]
Applied, thanks!
[1/1] pvecm: elaborate when and how to change the token coefficient
commit: a5a6434316d615c9d7bfce8c25f10825915afb11
^ permalink raw reply [flat|nested] 2+ messages in thread
end of thread, other threads:[~2026-05-19 18:10 UTC | newest]
Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-05-19 17:38 [PATCH docs v2] pvecm: elaborate when and how to change the token coefficient Friedrich Weber
2026-05-19 18:10 ` applied: " Thomas Lamprecht
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox