corosync集群心跳配置及mgmt调用修改方法

2023-10-08 13:50

本文主要是介绍corosync集群心跳配置及mgmt调用修改方法,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

corosync集群心跳配置及mgmt调用修改方法 (2010-09-27 17:13)
分类: 我的文档



corosync集群心跳可在文件/etc/corosync/corosync.conf中的interface字段进行配置,如下配置了两路心跳:

totem {

version: 2

secauth: off

threads: 0

rrp_mode: passive

interface {

ringnumber: 0

bindnetaddr: 172.16.70.0

broadcast: yes

mcastport: 5546

}

interface {

ringnumber: 1

bindnetaddr: 192.168.127.0

broadcast: yes

mcastport: 5547

}

}

interface字段主要有以下几个参数:

  1. ringnumberinterfacering number,用于区分不同的心跳,必须从0开始
  2. bindnetaddr:绑定的网络地址,经常以0结尾,也可以使用IPV6地址。例如,如果本地心跳为192.168.5.92,子网255.255.255.0,则设置bindnetaddr192.168.5.0;如果本地心跳为192.168.5.92,子网255.255.255.192,则设置bindnetaddr192.168.5.64
  3. mcastportUDP端口号
  4. broadcast:该字段可选,设为YES时表示将使用广播地址,如果设为该选项,则可以不设mcastaddr字段
  5. mcastaddr:多播地址,不允许使用224.x.x.x之类的地址。也可以使用IPV6地址。

corosync-cfgtool为显示及配置corosync的工具,与心跳有关的使用如下:

显示该节点的当前心跳状态

[root@server-1 BUILD]# corosync-cfgtool -s

Printing ring status.

Local node ID -1085927252

RING ID 0

id = 172.16.70.191

status = ring 0 active with no faults

RING ID 1

id = 192.168.127.191

status = ring 1 active with no faults

心跳出错后重新配置集群中的心跳状态,即重新启动失败的心跳

[root@server-1 BUILD]# corosync-cfgtool -r

为了在mgmt下可以检查心跳状态,在mgmt/daemon/mgmt_crm.c中添加如下函数:

char*

on_status_of_hblinks(char* argv[], int argc)

{

char* ret = strdup(MSG_OK);

cs_error_t result;

corosync_cfg_handle_t handle;

unsigned int interface_count;

char **interface_names;

char **interface_status;

unsigned int i;

unsigned int nodeid;

//初始化;

result = corosync_cfg_initialize (&handle, NULL);

if (result != CS_OK) {

mgmt_log(LOG_WARNING, "Could not initialize

corosync configuration API error %d\n", result);

exit (1);

}

//取当前node id

result = corosync_cfg_local_get(handle, &nodeid);

if (result != CS_OK) {

mgmt_log(LOG_WARNING, "Could not get the

local node id, the error is: %d\n", result);

}

//取心跳情况,包括名称、状态等;

result = corosync_cfg_ring_status_get (handle,

&interface_names,

&interface_status,

&interface_count);

//返回结果;

if (result != CS_OK) {

mgmt_log(LOG_WARNING, "Could not get the

ring status, the error is: %d\n", result);

} else {

for (i = 0; i < interface_count; i++) {

ret = mgmt_msg_append(ret, interface_names[i]);

ret = mgmt_msg_append(ret, interface_status[i]);

}

}

(void)corosync_cfg_finalize (handle);

return ret;

}

之后即可在mgmt中使用status_hblinks命令即可查询心跳的状态,如下所示:

[root@server-1 heartbeat-gui]# ./mgmtcmd.py status_hblinks

---------------------------

o

172.16.70.191

ring 0 active with no faults

192.168.127.191

ring 1 active with no faults


这篇关于corosync集群心跳配置及mgmt调用修改方法的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/165730

相关文章

SpringQuartz定时任务核心组件JobDetail与Trigger配置

《SpringQuartz定时任务核心组件JobDetail与Trigger配置》Spring框架与Quartz调度器的集成提供了强大而灵活的定时任务解决方案,本文主要介绍了SpringQuartz定... 目录引言一、Spring Quartz基础架构1.1 核心组件概述1.2 Spring集成优势二、J

Android Studio 配置国内镜像源的实现步骤

《AndroidStudio配置国内镜像源的实现步骤》本文主要介绍了AndroidStudio配置国内镜像源的实现步骤,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,... 目录一、修改 hosts,解决 SDK 下载失败的问题二、修改 gradle 地址,解决 gradle

如何配置Spring Boot中的Jackson序列化

《如何配置SpringBoot中的Jackson序列化》在开发基于SpringBoot的应用程序时,Jackson是默认的JSON序列化和反序列化工具,本文将详细介绍如何在SpringBoot中配置... 目录配置Spring Boot中的Jackson序列化1. 为什么需要自定义Jackson配置?2.

Java中使用Hutool进行AES加密解密的方法举例

《Java中使用Hutool进行AES加密解密的方法举例》AES是一种对称加密,所谓对称加密就是加密与解密使用的秘钥是一个,下面:本文主要介绍Java中使用Hutool进行AES加密解密的相关资料... 目录前言一、Hutool简介与引入1.1 Hutool简介1.2 引入Hutool二、AES加密解密基础

Pytest多环境切换的常见方法介绍

《Pytest多环境切换的常见方法介绍》Pytest作为自动化测试的主力框架,如何实现本地、测试、预发、生产环境的灵活切换,本文总结了通过pytest框架实现自由环境切换的几种方法,大家可以根据需要进... 目录1.pytest-base-url2.hooks函数3.yml和fixture结论你是否也遇到过

鸿蒙中Axios数据请求的封装和配置方法

《鸿蒙中Axios数据请求的封装和配置方法》:本文主要介绍鸿蒙中Axios数据请求的封装和配置方法,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧... 目录1.配置权限 应用级权限和系统级权限2.配置网络请求的代码3.下载在Entry中 下载AxIOS4.封装Htt

Spring中配置ContextLoaderListener方式

《Spring中配置ContextLoaderListener方式》:本文主要介绍Spring中配置ContextLoaderListener方式,具有很好的参考价值,希望对大家有所帮助,如有错误... 目录Spring中配置ContextLoaderLishttp://www.chinasem.cntene

Redis实现延迟任务的三种方法详解

《Redis实现延迟任务的三种方法详解》延迟任务(DelayedTask)是指在未来的某个时间点,执行相应的任务,本文为大家整理了三种常见的实现方法,感兴趣的小伙伴可以参考一下... 目录1.前言2.Redis如何实现延迟任务3.代码实现3.1. 过期键通知事件实现3.2. 使用ZSet实现延迟任务3.3

idea maven编译报错Java heap space的解决方法

《ideamaven编译报错Javaheapspace的解决方法》这篇文章主要为大家详细介绍了ideamaven编译报错Javaheapspace的相关解决方法,文中的示例代码讲解详细,感兴趣的... 目录1.增加 Maven 编译的堆内存2. 增加 IntelliJ IDEA 的堆内存3. 优化 Mave

Java String字符串的常用使用方法

《JavaString字符串的常用使用方法》String是JDK提供的一个类,是引用类型,并不是基本的数据类型,String用于字符串操作,在之前学习c语言的时候,对于一些字符串,会初始化字符数组表... 目录一、什么是String二、如何定义一个String1. 用双引号定义2. 通过构造函数定义三、St