高可用集群是指一组通过硬件和软件连接起来的独立计算机,它们在用户面前表现为一个单一系统,在这样的一组计算机系统内部的一个或者多个节点停止工作,服务会从故障节点切换到正常工作的节点上运行,不会引起服务中断,是保证业务连续性的有效解决方案
一个很关键的组件叫做heartbeat,heartbeat的工作原理:heartbeat最核心的包括两个。部分,心跳监测部分和资源接管部分,心跳监测可以通过网络链路和串口进行,而且支持冗余链路,它们之间相互发送报文来告诉对方自己当前的状态,如果在指定的时间内未收到对方发送的报文,那么就认为对方失效,这时需启动资源接管模块来接管运行在对方主机上的资源或者服务
案例拓扑:
实验原理:
两个director实现HA(高可用性)群集
两个web服务器实现LB(负载均衡)群集
后方NFS服务器实现给web服务器提供共享资源
对外呈现虚拟ip地址:192.168.20.100/24
实验步骤:
Director配置:
配置yum源:
[root@node1 ~]# vim /etc/yum.repos.d/rhel-debuginfo.repo
安装所需软件包:
[root@node1 ~]# yum install -y ipvsadm
[root@node1 ~]# yum localinstall -y heartbeat-2.1.4-9.el5.i386.rpmheartbeat-devel-2.1.4-9.el5.i386.rpm heartbeat-pils-2.1.4-10.el5.i386.rpm heartbeat-stonith-2.1.4-10.el5.i386.rpm libnet-1.1.4-3.el5.i386.rpm perl-MailTools-1.77-1.el5.noarch.rpm heartbeat-ldirectord-2.1.4-9.el5.i386.rpm --nogpgcheck
拷贝ldirector的配置文件,用于和heartbeat结合,内含ipvsadm规则:
[root@node1 ~]# cp /usr/share/doc/heartbeat-ldirectord-2.1.4/ldirectord.cf /etc/ha.d/
[root@node1 ~]# vim /etc/ha.d/ldirectord.cf
虚拟ip:192.168.20.100
Realserver:192.168.20.12和192.168.20.13
后方用于反馈信息的隐藏文件.test.html,用于director对后方服务器的监测
不是静默模式(一旦停止就删除掉规则条目)
生成heartbeat的配置文件,密码文件以及资源文件
[root@ node1~]# cd /usr/share/doc/heartbeat-2.1.4/
[root@ node1 heartbeat-2.1.4]# cp ha.cf /etc/ha.d/
[root@ node1 heartbeat-2.1.4]# cp authkeys /etc/ha.d/
更改密码文件权限
[root@ node1~]# chmod 600 /etc/ha.d/authkeys
[root@ node1 heartbeat-2.1.4]# cp haresources /etc/ha.d/
Heartbeat消息从eth1口广播出去
[root@node1 ~]# vim /etc/ha.d/ha.cf
两个director主机的主机名
生成随机MD5加密数
[root@node1 ~]# dd -f=/dev/randombs=512 count=1 |md5sum
[root@node1 ~]# vim /etc/ha.d/authkeys
Node1.a.com这台主机作为主director
[root@node1 ~]# vim /etc/ha.d/haresources
[root@node1 ~]# service heartbeat start
更改hosts文件为下面拷贝文件做准备
[root@node1 ~]# vim /etc/hosts
192.168.20.200node1.a.com
192.168.20.201node2.a.com
Director2相关配置和director1相同这里直接拷贝
[root@node1 ~]# scp /etc/hosts node2.a.com:/etc/hosts
[root@node1 ~]# scp /etc/ha.d/ha.cf node2.a.com:/etc/ha.d/ha.cf
[root@node1 ~]# scp /etc/ha.d/authkeys node2.a.com:/etc/ha.d/authkeys
[root@node1 ~]# scp /etc/ha.d/haresources node2.a.com:/etc/ha.d/haresources
[root@node1 ~]# scp /etc/ha.d/ldirectord.cf node2.a.com:/etc/ha.d/ldirectord.cf
[root@node1 ~]# scp /etc/yum.repos.d/rhel-debuginfo.repo node2.a.com:/etc/yum.repos.d/
[root@node1 ~]# chmod 600 /etc/ha.d/authkeys
[root@node2 ~]# yum install -y ipvsadm