浅析 Heartbeat
标签:Heartbeat原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 、作者信息和本声明。否则将追究法律责任。http://weipengfei.blog.iyunv.com/1511707/1058341 1、简介Heartbeat是一个守护进程,为client的集群基础设施之间的成员及通信服务。它允许clients 掌握在其他server上的对等进程是否正在运行并可以和其他server进行通讯。为方便使用,Heartbeat 守护进程被合并到集群资源管理器中(cluster resource manager CRM),CRM可以进行启动停止相应服务来提供高高的可用性。这个CRM就是Pacemaker,一个高扩展性,具有丰富管理功能,并且支持Heartbeat和Corosync 集群的通讯层。 2、组件 2.1通讯模块 提供强认证,本地有序的广播 支持以下类型的网络链路: 1、在ipv4中的UDP单播 2、ipv4中的中的udp广播 3、ipv4中的UDP多播 4、串行链接(相比网络来说,直接的串口链接是最安全的) Heartbeat 可以在半秒内检测node的故障。
heartbeat layer的API可以提供以下级别的服务:
1、向集群内的节点,发送和接受数据包 2、可配置的查询 3、可以得知正在接受packet的Node的查询和通知的连接信息 4、基本组的成员服务 2.2Cluster Consensus Membership
CCM 维护集群成员的一致性 2.3 Cluster Plumbing Library 2.4 ipc 进程间通讯
2.5 logging 守护进程
将日志信息记录的系统日志中或者其他文件,或者两者都有。这个守护进程是不间断的,它只会摒弃那些落后太多的信息。 安装: 3.1从源码安装: 需要的软件包:heartbeat ,cluster-glue(包含Heartbeat的本地资源.LRM和 STONITH 插件,这个属于附属软件,必须先安装 3.1.1从源码安装cluster-glue 先决条件: C编译器(GCC),C的开发包
flex scanner generator ,the bison parser compiler;
net-snmp development headers(启用snmp相关功能)
OpenIPMI development headers(启用IPMI相关功能)
Python(只是一个语言接口,不需要头文件) # wget http://hg.linux-ha.org/glue/archive/glue-1.0.1.tar.bz2
# tar -vxjf glue-1.0.1.tar.bz2 安装: ./autogen.sh ./configure make make install
安装 heartbeat,(前期都准备好的话,基本不需要其他依赖包) # wget http://hg.linux-ha.org/dev/archive/STABLE-3.0.4.tar.bz2
# tar -vxjf STABLE-3.0.4.tar.bz2 安装: $ ./bootstrap $ ./configure
$ make
$ sudo make install初始化配置:以下文件必须存在:/etc/ha.d/ha.cf — 全局配置文件/etc/ha.d/authkeys – 节点之间进行验证ha.cf 简单的配置:autojoin none禁止cluster Node 自动发现其他Node,直接使用配置文件中已经列出的node list。加快cluster启动过程。 配置文件详解:ha.cflogfile /var/log/ha-log 日志存储位置crm yes (是否开启crm 集群资源管理功能)bcast eth1 指明心跳检测在eth1上以广播的形式进行。Keepalive 2 心跳检测间隔时间S。Warntime 10 心跳延迟的时间,超过后在日志中进行记录。Deadtime 30 超过此时间,则认为对方 node 已经dead,如果是master的话,则进行角色切换initdead 120 系统重启过程中,等待时间(至少为deadtime的两倍)udpport 694 广播通信使用的端口 baud 19200 设置串行通信的波特率
serial /dev/ttyS0 选择串行通信设备,
ucast eth0 ip 使用 eth0 udp 单播的形式进行心跳检测, mcast eth0 ip 使用 eth0 多播的形式进行心跳检测
auto_failback on当master恢复后,是否将服务自动切回。stonith baytech /etc/ha.d/conf/stonith.baytechstonith的主 要作用是使出现问题的节点从集群环境中脱离,进而释放集群资源,避免两个节点争 用一个资源的情形发生。保证共享数据的安全性和完整性。
watchdog /dev/watchdog #该选项是可选配置,是通过Heartbeat来监控系统的运 行状态。使用该特性,需要在内核中载入"softdog"内核模块,用来生成实际的设备文件, 如果系统中没有这个内核模块,就需要指定此模块,重新编译内核。编译完成输入 "insmod softdog"加载该模块。然后输入"grep misc /proc/devices"(应为10), 输入"cat /proc/misc |grep watchdog"(应为130)。最后,生成设备文件: "mknod /dev/watchdog c 10 130" 。即可使用此功能。(在半秒内,能检测到系统故障)
node node1 #主节点主机名,"uname -n"查看。node node2 #备用节点主机名。 pingip ping节点仅仅用来测试网络连接。ping节点选择的越好,HA集群就越强壮, 可以选择固定的路由器作为ping节点,但最好不要选择集群中的成员作为ping节点
资源文件: /etc/ha.d/haresources文件格式: node-name network <resource-group>Haresources 文件用于指定系统中的主节点、集群ip、子网掩码、广播地址以及启动的服务等集群资源。文件每一行可以包含一个或多个资源脚本名,资源之间空格隔开。参数之间使用::隔开,在两个ha节点上该文件必须完全一致。 Node-name 表示主节点的主机名,network 为 设定集群的ip地址、netmask 、device resource-group 用来指定需要Heartbeat 托管的服务,这样heartbeat会根据脚本的名称自动去/etc/init.d 或者 /etc/ha.d/resource.d目录下找到相应的脚本。
举例: Node 1 IPaddr::192.168.60.200/24/eth0/ Filesystem::/dev/sdb5::/web/data:ext3 httpd tomcat
Node 1 是HA集群的主节点,IPaddr 为heartbeat自带的一个执行脚本,它首先执行/etc/ha.d/resource.d/IPaddr 192.168.60.200/24 start 操作,虚拟出一虚拟ip(集群的ip地址)并指定使用的网络接口是eth0,接着 heartbeat将共享磁盘分区的挂接操作,即:mount –text3 /dev/sdb5 /webdata 最后依次启动httpd 和tomcat 服务。注意点: master和slave中资源文件haresources 完全一样。 认证文件 /etc/ha.d/authkeys 设定heartbeat的认证方式,三种认证,crc md5 sha1 不推荐 crc
Auth 11 md5 (必须保证主节点和备份节点的时间同步,相差10秒内是正常的) 本文出自 “技术成就梦想” 博客,请务必保留此出处http://weipengfei.blog.iyunv.com/1511707/1058341
页:
[1]