在笔者操作系统Redhat 8.8 中,pacemaker默认的token时间为3000毫秒,也可以理解成心跳检测时间
这样根据默认的规则,consensus有时间如果没有特别指定的话,将是token*1.2,即3600毫秒
[root@azdb01 qq-5201351]# corosync-cmapctl | grep 'totem.token\|consensus' runtime.config.totem.consensus (u32) = 3600 runtime.config.totem.token (u32) = 3000 runtime.config.totem.token_retransmit (u32) = 714 runtime.config.totem.token_retransmits_before_loss_const (u32) = 4 runtime.config.totem.token_warning (u32) = 75
最近由于Azure云平台-频繁网络抖动,导致pacemaker去fence了其他节点,于是决定暂时调整token的时间为60秒
先看一下db01的corosync的配置文件,如下,我们只需要在totem段中添加一行 token:60000 即可
[root@azdb01 ~]# cat /etc/corosync/corosync.conf totem { version: 2 cluster_name: DBProdCluster transport: knet token:60000 crypto_cipher: aes256 crypto_hash: sha256 } nodelist { node { ring0_addr: azdb01 name: azdb01 nodeid: 1 } node { ring0_addr: azdb02 name: azdb02 nodeid: 2 } } quorum { provider: corosync_votequorum two_node: 1 } logging { to_logfile: yes logfile: /var/log/cluster/corosync.log to_syslog: yes timestamp: on } [root@azdb01 ~]#
接下来还得让配置同步,生效,可以在db01上执行如下两条命令,执行后,db02机器的配置文件也会自动被更新
pcs cluster sync
pcs cluster reload corosync
最后,我们通过如下命令,可以在两台主机上进行验证,会发现token和consensus都已经更新了
corosync-cmapctl | grep 'totem.token\|consensus'
尊重别人的劳动成果 转载请务必注明出处:https://www.cnblogs.com/5201351/p/18047220
标签:azdb01,totem,consensus,token,检测时间,pacemaker,corosync,u32 From: https://www.cnblogs.com/5201351/p/18047220