这个实验采用的是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包的方式安装很快很强大