博客园  :: 首页  :: 管理

关于pacemaker-集群-token-网络心跳检测时间的修改

Posted on 2024-03-01 15:38  520_1351  阅读(141)  评论(0编辑  收藏  举报

在笔者操作系统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秒

其他说明:即使设置了维护模式,但是Stonith设备还是会生效,出现了心跳异常时,还是会去fence其他节点

先看一下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