一、实验环境初始化
三台服务器,办公电脑作为客户端
1、abao61web主 (建议双网卡)
2、abao62web备 (建议双网卡)
3、abao63存储池
1:配置hosts文件,服务器之间互相解析
# vim /etc/hosts
192.168.1.117abao61.cnabao61
192.168.1.118abao62.cnabao62
192.168.1.119abao63.cnabao63
2:清空防火墙
getenforce
3:关闭SELinux
iptables -F && /etc/init.d/iptables save
二、共享存储配置
使用abao63作为存储池,配置NFS共享资源
[root@abao63 ~]# yum -y install nfs-utils#安装NFS网络文件系统
[root@abao63 ~]# mkdir /wwwdir#创建NFS目录
[root@abao63 ~]# echo "HeartBeat HTTP Server Test" > /wwwdir/index.html
[root@abao63 ~]# vim /etc/exports#配置NFS文件系统
/wwwdir 192.168.1.0/24(rw)
[root@abao63 ~]# chmod -R 777 /wwwdir/
#重启并设置开机启动
[root@abao63 ~]# service nfs restart
[root@abao63 ~]# chkconfig nfs on
[root@abao63 ~]# showmount -e#配置成功
Export list for abao63:
/wwwdir 192.168.1.0/24
三、主、备web服务器
[root@abao61 ~]# yum -y install httpd
[root@abao61 ~]# showmount -e abao63
Export list for abao63:
/wwwdir 192.168.1.0/24
#挂载NFS文件系统
[root@abao61 ~]# mount -t nfs 192.168.1.119:/wwwdir /var/www/html/
[root@abao61 ~]# service httpd restart
[root@abao61 ~]# curl 127.1
HeartBeat HTTP Server Test
[root@abao61 ~]# umount /var/www/html/#卸载资源,后期通过hearbeat加载
[root@abao61 ~]# service httpd stop#停止httpd
[root@abao61 ~]# chkconfig httpd on
从web服务器,配置与主web服务器一致
主、备web服务器安装heartbeat包
[root@abao61 ~]# yum -y install heartbeat
四、配置Heartbeat
#修改heartbeat主配置文件
[root@abao61 ~]# cp /usr/share/doc/heartbeat-3.0.4/ha.cf /etc/ha.d/
#主备节点间通信时所使用的验证文件,保证安全性
[root@abao61 ~]# cp /usr/share/doc/heartbeat-3.0.4/authkeys /etc/ha.d/
#定义浮动资源的配置文件
#浮动资源:1: 公网IP地址;2: HTTP服务;3:存储,NFS挂载
[root@abao61 ~]# cp /usr/share/doc/heartbeat-3.0.4/haresources /etc/ha.d/
#设置主备节点间通信时所使用的验证文件,保证安全性。
[root@abao61 ~]# vim /etc/ha.d/authkeys
auth 3#去掉注释
#1 crc
#2 sha1 HI!
3 md5 abao~.123#去掉注释,修改MD5加密值
#此文件权限必须是600,否则启动不成功
[root@abao61 ~]# chmod 600 /etc/ha.d/authkeys
注:/etc/ha.d/authkeys文件决定了认证密钥。共有三种认证方式:CRC、MD5、sha1.
如果Heartbeat运行于安全网络之上,如本例中的交叉线,可以使用CRC,从资源的角度来看,这是代价最低的方式。如果网络并不安全,但也希望降低CPU使用,则使用MD5。最后,如果想得到最好的认证,而不考虑CPU使用情况,则使用sha1,它在三者之中最难破解。
五、定义浮动资源(VIP:192.168.1.11)
[root@abao61 ~]# vim /etc/ha.d/haresources
#node-name resource1 resource2 ... resourceN
abao61 IPaddr::192.168.1.11/24/eth0 Filesystem::192.168.1.119:/wwwdir::/var/www/html::nfs httpd
#注:node-name填的是主服务器的主机名。
#IPaddr::192.168.1.11/24/eth0指定VIP及绑定到哪个网卡上
#Filesystem::192.168.1.119:/wwwdir::/var/www/html::nfs指定要挂载的存储
#httpd指定要启动的服务。注,这个服务必须是在/etc/init.d下,可以通过service去开启或关闭
#测试是否正常
[root@abao61 ~]# /etc/ha.d/resource.d/IPaddr 192.168.1.11/24/eth0 start
[root@abao61 ~]# ip addr#查看IP,ifconfig看不到11的IP
#手动加载NFS存储资源到/var/www/html
[root@abao61 ~]# /etc/ha.d/resource.d/Filesystem 192.168.1.119:/wwwdir /var/www/html/ nfs start (重启电脑之后需要重做这一步)
#查看挂载的资源
[root@abao61 ~]# mount | grep wwwdir
192.168.1.119:/wwwdir on /var/www/html type nfs (rw,vers=4,addr=192.168.1.119,clientaddr=192.168.1.117)
[root@abao61 ~]# service httpd start
六、配置主配置文件
[root@abao61 ~]# grep ^[^#] /etc/ha.d/ha.cf
logfacilitylocal0
auto_failback on
#auto_failback on为on时,主节点恢复正常后,资源自动转给主节点。建议设为auto_failback off,等主节点恢复正常后,在业务不繁忙时,切换回来。防止主节点恢复正常时,回切时,再次引起网络中断。
[root@abao61 ~]# vim /etc/ha.d/ha.cf
24 debugfile /var/log/ha-debug#这些行除开auto_failback on默认启用,其他手动启用
29 logfile /var/log/ha-log
48 keepalive 2#设定 heartbeat 之间的时间间隔为 2 秒。
56 deadtime 30#在 30 秒后宣布节点死亡。
61 warntime 10#在日志中发出“late heartbeat“警告乀前等待的时间,单位为秒。
71 initdead 120#在某些系统上,系统启动或重启之后需要经过一段时间网络才能正常工作,该选项用于解决这种情况产生的时间间隔。取值至少为 deadtime 的两倍。
76 udpport 694#使用端口 694 进行 bcast 和 ucast 通信。这是默认的,并且在 IANA 官方注册的端口号。
121 ucast eth0 192.168.1.118#需要修改,表示从本机的 eth0 接口发心跳消息给对方节点,写另一端的 IP 地址 。 这是单播地址。 abao62上改为 192.168.1.117 。心跳网卡 ,如果你有两个网卡,可以写成 eth1 注:配置文件中 91行 #bcast eth0 #表示在 eth0 接口上使用广播 heartbeat(将 eth1 替换为 eth0, eth2,或者您使用的任何接口)。
157 auto_failback on#默认启用,当 auto_failback 设置为 on 时,一旦主节点重新恢复联机,将从从节点取回所有资源。若该选项设置为 off,主节点便不能重新获得资源。
211 node abao61#需要修改,该选项是必须配置的。集群中机器的主机名,必须与“uname –n”的输出相同。
212 node abao62#需要修改
220 ping 192.186.1.254#需要修改,通过ping命令实现仲裁
253 respawn hacluster /usr/lib64/heartbeat/ipfail #需要修改
259 apiauth ipfail gid=haclient uid=hacluster
七、配置web备
从主web文件传过去
[root@abao61 ~]# cd /etc/ha.d/
[root@abao61 ha.d]# scp ha.cf haresources authkeys abao62:/etc/ha.d/
[root@abao62 ~]# chmod 600 /etc/ha.d/authkeys
#修改单播IP
[root@abao62 ~]# vim /etc/ha.d/ha.cf
ucast eth0 192.168.1.117
启动Heartbeat
[root@abao61 ~]# /etc/init.d/heartbeat restart
[root@abao61 ~]# chkconfig heartbeat on
[root@abao62 ~]# /etc/init.d/heartbeat restart
[root@abao62 ~]# chkconfig heartbeat on
Stopping High-Availability services: Done.
Waiting to allow resource takeover to complete:Done.
#等待资源接管完成。takeover接管。当启动停留在这个界面是,abao62会接管所有浮动资源。等待下面启动成功时,abao62会释放资源,浮动资源,再次加重
Starting High-Availability services: INFO: Resource is stopped
Done.
[root@abao61 ~]# netstat -antup | grep 694
udp 0 0 0.0.0.0:694 0.0.0.0:* 4333/heartbeat: wri
[root@abao62 ~]# netstat -antup | grep 694
udp 0 0 0.0.0.0:694 0.0.0.0:* 4333/heartbeat: wri
八、查看集群资源
web主
[root@abao61 ~]# ip addr#VIP1.11有
[root@abao61 ~]# service httpd status#服务是启动的
httpd (pid 4153) is running...
#NFS已挂载
web备
[root@abao61 ~]# ip addr#VIP没有虚拟IP
#NFS未挂载
测试
#关闭abao61的网卡,等待30s,在config上查看IP,NFS等状态
[root@abao61 ~]# ifdown eth0#虚拟机效果
#虚拟IP已经转移过来
[root@abao62 ~]# ip addr
访问测试,测试成功
abao61恢复连接
[root@abao61 ~]# service network restart#启动网络
九、配置主备
#vim /etc/ha.d/vim haresources
abao61 IPaddr::192.168.1.11/24/eth0 Filesystem::192.168.1.119:/wwwdir::/var/www/html::nfs httpd
abao62 IPaddr::192.168.1.12/24/eth0 Filesystem::192.168.1.119:/wwwdir::/var/www/html::nfs httpd
本文 暂无 评论