当前位置: 首页 > 工具软件 > heartbeat > 使用案例 >

LINUX+Heartbeat 通过心跳实现双机高可用

洪照
2023-12-01

这个实验采用的是Heartbeat2.0版本的,也就是说是老版本的。老版本的HA是一个整体的项目,而新版本(3.0之后)出现了很大的改变,就是把HA的这个项目拆开成几个相对分散的项目,由不同的项目组来开发维护。

Heartbeat2.0集成的模块:

1、  heartbeat:节点间的通信检测模块
2、  ha-logd:集群事件日志服务
3、  CCM(consensus Cluster Membership):集群成员一致性管理模块
4、  LRM(Local Resource Manager):本地资源管理模块
5、  Stomith Daemon:是出现问题的节点从集群中脱离
6、  CRM(Cluster resource management):集群资源管理模块
7、  Cluster policy engine:集群策略模块
8、  Cluster transition engine:集群转移引擎

Heartbeat3.0之后有多个部分组成:

1、  Heartbeat:将原来的消息通信层独立为heartbeat项目,新的heartbeat只负责维护各个节点的通信。
2、  Cluster Glue:相当于一个中间层,他用来将heartbeat和pacemaker关联起来,主要包含两个部分,即、LRM和STONITH。
3、  Resource Agent:用来控制服务启停,监控服务状态 的脚本的集合,这些脚本将被LRM调用从而实现资源的启动、停止、监控等等。
4、  Pacemaker:也就是Cluster Resource Manager(CRM),用来管理整个HA的控制中心,客户端通过pacemaker来配置管理整个集群。

Pacemaker提供了多种用户管理接口

(1)、crm shell,基于字符的管理方式
(2)、一个使用Ajax WEB配置方式的web kensole窗口。
(3)、hb_gui,即heartbeat的gui图形配置工具,这也是原来的2.1.x的默认的GUI的配置工具。
(4)、DRBD-MC 一个基于java的配置管理工具。

实验的平台:VM下两台CentOS5.5的linux服务器(均为双网卡),安装配置好apache和清除防火墙规则(iptables -F),其实也可以不关闭,配置iptabkes规则,由于本实验重点不在这里,所以略写了。

IP规划:

MASTER:eth0:192.168.1.195 eth1:10.0.0.3(eth1心跳用)

BACKUP:eth0:192.168.1.196 eth1:10.0.0.2(eth1心跳用)

VIP:192.168.1.200

第一:在主节点上的安装与配置

1、修改主机名

[root@localhost ~]# vi /etc/sysconfig/network    
NETWORKING=yes
NETWORKING_IPV6=no
HOSTNAME=master
[root@localhost ~]# vi /etc/hosts
127.0.0.1        localhost.localdomain localhost
::1          localhost6.localdomain6 localhost
192.168.1.195 master
192.168.1.196 backup
[root@localhost ~]# reboot
[root@master ~]# uname -n
master

2、下载、安装软件包:

[root@master~]#wget http://zid-luxinst.uibk.ac.at/linux/rpm2html/centos/5/extras/i386/RPMS/heartbeat-2.1.3-3.el5.centos.i386.rpm
[root@master~]#wget http://zid-luxinst.uibk.ac.at/linux/rpm2html/centos/5/extras/i386/RPMS/ heartbeat-pils-2.1.3-3.el5.centos.i386.rpm
 [root@master~]#wget http://zid-luxinst.uibk.ac.at/linux/rpm2html/centos/5/extras/i386/RPMS/ heartbeat-stonith-2.1.3-3.el5.centos.i386.rpm

注意安装顺序不可以颠倒(颠倒了也安装不成功)

[root@master ~]# rpm -ivh heartbeat-pils-2.1.3-3.el5.centos.i386.rpm
[root@master ~]# rpm -ivh heartbeat-stonith-2.1.3-3.el5.centos.i386.rpm
[root@master ~]# rpm -ivh heartbeat-2.1.3-3.el5.centos.i386.rpm

3、配置的部分

[root@master ~]# cp /usr/share/doc/heartbeat-2.1.3/ha.cf /etc/ha.d/    //主配置文件
[root@master ~]# cp /usr/share/doc/heartbeat-2.1.3/authkeys /etc/ha.d/   //认证文件
[root@master ~]# cp /usr/share/doc/heartbeat-2.1.3/haresources /etc/ha.d/  //资源管理的配置
[root@master ~]# chmod 600 /etc/ha.d/authkeys  
[root@master ~]# vi /etc/ha.d/ha.cf  //修改以下几处(这里没考虑优化,只是简单的功能实现)
logfile /var/log/ha-log
keepalive 2
deadtime 30
warntime 10
initdead 120
udpport 694
bcast   eth1            # Linux           //心跳网卡
ucast eth1 10.0.0.2                         //心跳网卡连接对方心跳地址
auto_failback on
node    master
node    backup
ping 192.168.1.1                          //检测全网是否连通
[root@master ~]# vi /etc/ha.d/authkeys     //采用crc认证(对系统资源要求最小)
auth 1
1 crc
[root@master ~]# vi /etc/ha.d/haresources   //这里只设置VIP和开启apache
master 192.168.1.200  httpd

第二:在备用节点上的安装与配置

1、修改主机名

[root@localhost ~]# vi /etc/sysconfig/network    
NETWORKING=yes
NETWORKING_IPV6=no
HOSTNAME=backup
[root@localhost ~]# vi /etc/hosts
127.0.0.1        localhost.localdomain localhost
::1          localhost6.localdomain6 localhost
192.168.1.195 master
192.168.1.196 backup
[root@localhost ~]# reboot
[root@backup ~]# uname -n
backup

2、下载、安装软件包:

[root@backup~]#wget http://zid-luxinst.uibk.ac.at/linux/rpm2html/centos/5/extras/i386/RPMS/heartbeat-2.1.3-3.el5.centos.i386.rpm
[root@backup~]#wget http://zid-luxinst.uibk.ac.at/linux/rpm2html/centos/5/extras/i386/RPMS/ heartbeat-pils-2.1.3-3.el5.centos.i386.rpm
 [root@backup~]#wget http://zid-luxinst.uibk.ac.at/linux/rpm2html/centos/5/extras/i386/RPMS/ heartbeat-stonith-2.1.3-3.el5.centos.i386.rpm

注意安装顺序不可以颠倒(颠倒了也安装不成功)

[root@backup ~]# rpm -ivh heartbeat-pils-2.1.3-3.el5.centos.i386.rpm
[root@backup ~]# rpm -ivh heartbeat-stonith-2.1.3-3.el5.centos.i386.rpm
[root@backup ~]# rpm -ivh heartbeat-2.1.3-3.el5.centos.i386.rpm

3、配置的部分

[root@backup ~]# cp /usr/share/doc/heartbeat-2.1.3/ha.cf /etc/ha.d/    //主配置文件
[root@backup ~]# cp /usr/share/doc/heartbeat-2.1.3/authkeys /etc/ha.d/   //认证文件
[root@backup ~]# cp /usr/share/doc/heartbeat-2.1.3/haresources /etc/ha.d/  //资源管理的配置
[root@backup ~]# chmod 600 /etc/ha.d/authkeys  
[root@backup ~]# vi /etc/ha.d/ha.cf  //修改以下几处(这里没考虑优化,只是简单的功能实现)
logfile /var/log/ha-log
keepalive 2
deadtime 30
warntime 10
initdead 120
udpport 694
bcast   eth1            # Linux           //心跳网卡
ucast eth1 10.0.0.3                         //心跳网卡连接对方心跳地址
auto_failback on
node    master
node    backup
ping 192.168.1.1                          //检测全网是否连通
[root@backup ~]# vi /etc/ha.d/authkeys     //采用crc认证(对系统资源要求最小)
auth 1
1 crc
[root@backup ~]# vi /etc/ha.d/haresources   //这里只设置VIP和开启apache
master 192.168.1.200  httpd

第三:测试的部分

测试前的准备

[root@backup ~]# iptables -F
[root@backup ~]# iptables -F -t nat
[root@master ~]# iptables -F
[root@master ~]# iptables -F -t na
[root@backup ~]# echo "This 192.168.1.196 backup web">/var/www/html/index.html
[root@master ~]# echo "This 192.168.1.195 master web">/var/www/html/index.html
[root@master ~]# /etc/init.d/httpd stop
[root@backup ~]# /etc/init.d/httpd stop

开始测试

1、双节点均开启heartbeta

[root@master ~]# /etc/init.d/heartbeat start
logd is already running
Starting High-Availability services:
2011/10/25_10:21:23 INFO:  Resource is stopped
                                                           [  OK  ]
[root@master ~]# /etc/init.d/httpd status
httpd (pid  5577) is running...
[root@backup ~]# /etc/init.d/heartbeat start
Starting High-Availability services:
2011/11/03_18:12:44 INFO:  Resource is stopped
                                                           [  OK  ]
[root@backup ~]# /etc/init.d/httpd status
httpd is stopped
 [root@master ~]# ifconfig    //VIP仅存在于主节点的eth0上,为eth0:0
eth0:0    Link encap:Ethernet  HWaddr 00:0C:29:90:42:78 
          inet addr:192.168.1.200  Bcast:192.168.1.255  Mask:255.255.255.0
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          Interrupt:169 Base address:0x2000     link/sit 0.0.0.0 brd 0.0.0.0

2、仅关闭主节点的heartbeta

[root@master ~]# /etc/init.d/heartbeat stop
Stopping High-Availability services:
                                                           [  OK  ]
[root@backup ~]# ifconfig
eth0:0    Link encap:Ethernet  HWaddr 00:0C:29:09:22:5D 
          inet addr:192.168.1.200  Bcast:192.168.1.255  Mask:255.255.255.0
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          Interrupt:169 Base address:0x2000

3、再次开启主节点的heartbeat

[root@master ~]# /etc/init.d/heartbeat start
Starting High-Availability services:
2011/10/25_10:29:50 INFO:  Resource is stopped
                                                           [  OK  ]
[root@master ~]# ifconfig    //VIP又回来了
eth0:0    Link encap:Ethernet  HWaddr 00:0C:29:90:42:78 
          inet addr:192.168.1.200  Bcast:192.168.1.255  Mask:255.255.255.0
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          Interrupt:169 Base address:0x2000     link/sit 0.0.0.0 brd 0.0.0.0

总结:曾经两次采用源码安装的方式尝试安装与配置heartbeat,每次都历时两天但是都以失败告终,现在想想主要是源码安装太复杂、太耗时,后来勉强在一台机器上安装成功了,想到还要在令外一台或者几台机器上做同样的步骤,就想到了虚拟机的复制,但是配置的时候有出现很多问题,谷歌了很久没解决问题于是暂时放下。这次才用rpm包的方式安装很快很强大

 类似资料: