准备工作:两台虚拟机
172.24.254.1 server1.example.com
172.25/254.2 server2.example.com
selinux关闭,iptables关闭
在/etc/hosts下写入解析
172.24.254.1 server1.example.com
172.25/254.2 server2.example.com
注意:两个虚拟机的yum源首先得正确
eg:[source]
name=Red Hat Enterprise Linux $releasever - $basearch - Source
baseurl=http://172.25.254.25/yumsource6
gpgcheck=0
[HighAvailability]
name=Red Hat Enterprise Linux $releasever - $basearch - Source
baseurl=http://172.25.254.25/yumsource6/HighAvailability
gpgcheck=0
[LoadBalancer]
name=Red Hat Enterprise Linux $releasever - $basearch - Source
baseurl=http://172.25.254.25/yumsource6/LoadBalancer
gpgcheck=0
[ResilientStorage]
name=Red Hat Enterprise Linux $releasever - $basearch - Source
baseurl=http://172.25.254.25/yumsource6/ResilientStorage
gpgcheck=0
[ScalableFileSystem]
name=Red Hat Enterprise Linux $releasever - $basearch - Source
baseurl=http://172.25.254.25/yumsource6/ScalableFileSystem
gpgcheck=0
1.需要安装几个软件包(这些包可以在http://linux-ha.org上下载最新版本)
heartbeat-3.0.4-2.el6.x86_64.rpm heartbeat-libs-3.0.4-2.el6.x86_64.rpm
heartbeat-devel-3.0.4-2.el6.x86_64.rpm ldirectord-3.9.5-3.1.x86_64.rpm
yum install -y *.rpm
cp /usr/share/doc/heartbeat-3.0.4/{authkeys,ha.cf,haresources} /etc/ha.d/
Vim /etc/ha.d/ha.cf //打开下面这些注释项
keepalive 2 //发送心跳报文的间隔,默认单位为秒,如果以毫秒为单位, 那么需要在后面跟 ms 单位,如 1500ms 即代表 1.5s
deadtime 30 //指定若备用节点在30秒内没有收到主节点的心跳信 号,则立即接管主节点的服务资源。
warntime 10 //指定心跳延迟的时间为10秒。当10秒钟内备份节点不能接收到主节点的心跳信号时,就会往日志中写入一个警告日志,但此时不会切换服务。发出最后的心跳警告信息的间隔。
initdead 60
udpport 694 //两台主机的这个端口号必须相同,设置广播/单播通信使用的端口,694为默认使用的端口号
bcast eth0
node server1.example.com //第212行更改,写在前面的节点为主节点
node server2.example.com //server1.example.com和server2为两台主机的主机名
ping 172.25.254.25 //以真机IP作为中间判断标准,ping节点选择的越好,HA集群就越强壮,最好不要选择集群中的成员作为ping 节点
respawn hacluster /usr/lib64/heartbeat/ipfail //lib64得注意添加,此选项是可选配置,意思是以 hacluster这个用户身份运行/usr/lib/heartbeat/ipfail 这个插件
apiauth ipfail gid=haclient uid=hacluster //指定对客户端 api 的访问控制,缺省为不可访问,这里指定了有权限访问ipfail用户和组。
Vim /etc/ha.d/authkeys //认证文件,打开下面这些注释项
auth 1
1 crc
authkeys文件用于设定Heartbeat的认证方式,共有3种可用的认证方 式,即crc、md5和sha1。3种认证方式的安全性依次提高,但是占用的系统资源也依次增加。如果Heartbeat集群运行在安全的网络上,可以使 用crc方式;如果HA每个节点的硬件配置很高,建议使用sha1,这种认证方式安全级别最高;如果是处于网络安全和系统资源之间,可以使用md5认证方式。
chmod 600 authkeys //需要更改这个文件权限
vim /etc/ha.d/haresources //在最后一行写上
server1.example.com IPaddr::172.25.254.254/24/eth0 httpd //server2里面更改为server2 //254为浮动IP
然后把这3个文件复制到server2上相应的位置
yum install httpd -y //两台主机上都要装,不用打开,heatbeat会打开它
/etc/init.d/heartbeat start //两个都打开
注意:
当打开上面的服务时出现:ERROR: Configuration error
这时需要检查配置文件的正确性
测试:由于调用的是http服务 ,在两台主机的/var/www/html/下写上测试页,访问浮动IP;然后停止正在工作的server1上的heatbeat,看测试页的变化
Heartbeat 项目是 Linux-HA 工程的一个组成部分,它实现了一个高可用集群系统。
原理:
heartbeat (Linux-HA)的工作原理:heartbeat最核心的包括两个部分,心跳监测部分和资源接管部分,心跳监测可以通过网络链路和串口进行,而且支持 冗 余链路,它们之间相互发送报文来告诉对方自己当前的状态,如果在指定的时间内未收到对方发送的报文,那么就认为对方失效,这时需启动资源接管模块来接管运 行在对方主机上的资源或者服务。