共计 3144 个字符,预计需要花费 8 分钟才能阅读完成。
1、通过 Heartbeat 来实现 HA 群集,已达到实时监控主 Director 的运行状态,一旦主状态死掉,处于备份状态的 Director 立即激活为主状态,实现高可用性。
2、通过了 ldirectord 实时监控 Director 后方的 real server 的运行状态,一旦 real server 的相关服务死掉,或者网卡坏掉的话,Director将不会再将客户的请求定向到该 real server 上。
3、LVS—DR
拓扑如下:
Server1的 ip 为192.168.2.100 接口 lo:0 的vip为192.168.2.1
Server2的 ip 为192.168.2.200 接口 lo:0 的vip为192.168.2.1
主 Director 的eth0的 ip 为192.168.2.10
Eth1的 ip 为192.168.3.1
备 Director 的eth0的 ip 为192.168.2.20
Eth1的 ip 为192.168.3.2
Vip 为192.168.2.1
Director1的配置
1、分别配置 ip 地址及主机名
Lo:0接口 ip 地址的配置
修改 Director 的主机名
Hostname director1 及编辑/etc/sysconfig/network
hosts文件如下:
其他的略
2、安装 heartbeat 所需的软件以实现 HA 如下:
heartbeat-2.1.4-9.el5.i386.rpm
heartbeat-ldirectord-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 –nogpgcheck
yum localinstall -y heartbeat-2.1.4-9.el5.i386.rpm heartbeat-ldirectord-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 –nogpgcheck
3、将 authkeys haresources ha.cf 这三个文件拷贝到 /etc/ha.d/ 目录下,并依次编辑如下:
cd /usr/share/doc/heartbeat-2.1.4/
cp authkeys haresources ha.cf /etc/ha.d/
cd /etc/ha.d/
vim ha.cf
bcast eth1 —指明心跳探测接口
node Director1
node Director2
vim authkeys
auth 3
3 md5 0b8e3683637d469bd73abc7e19e2156c –md5验证(后边的 md5 密文随意只要两个 Director 的一样)
chmod 600 authkeys
vim haresources
Director1 192.168.2.1/24/eth0 ldirectord::ldirectord.cf –Director1 是指明处于主状态的 director,192.168.2.1 即vip ,ldirectord是 heartbeat 控制的服务,ldirectord.cf 是 ldirectord 要调用的参数。
4、将 ldirectord.cf 拷贝到 /etc/ha.d/ 目录下
cd /usr/share/doc/heartbeat-ldirectord-2.1.4/
cp ldirectord.cf /etc/ha.d/
cd /etc/ha.d/
vim ldirectord.cf 修改如下:
Fallback=127.0.0.1:80 —当 real server 都死掉的话,vip指向本机
persistent=600 —这个是持久连接
checktype=negotiate —检测类型 negotiate,表示 DR 发送请求,realserver恢复特定字符串才表示服务正常;connect,表示 DR 能够连线 realserver 即正常。
Ldirectord通过访问含有 ”OK” 内容的 .web.html 这个 web 页面来达到监测后方的 real server 的,当后方的 server 死掉或这是 web 服务停止,自然就就访问不到 .web.html 这个页面了。
5、确保 ipvsadm 没有规则,并处于 stop 状态和开机不启动
ipvsadm -C
service ipvsadm save
service ipvsadm stop
chkconfig ipvsadm off
如果是才按装 ipvsadm 执行一下 service ipvsadm save 就可以了
Director2的配置(2–5步)完全相同,(略)
Real server1的配置
1、安装 httpd, 配置好 web 服务
2、在 /var/www/html/ 目录下新建上述的 .web.html 文件
cd /var/www/html/
touch .web.html
echo “OK” >.web.html
3、配置 arp_ignore、arp_announce 参数禁用 arp 广播响应
echo “net.ipv4.conf.eth0.arp_ignore = 1” >>/etc/sysctl.conf
echo “net.ipv4.conf.eth0.arp_announce = 2” >>/etc/sysctl.conf
sysctl -p
4、配置路由
route add -host 192.168.2.1 dev eth0
5、开启 httpd 服务
Real server2的配置与 Real server1 的配置一样
在 director 上依次启动heartbeat,
在 Director1 上增加了 eth0:0 接口如下:
规则也已启用
Director2上并没有这些,因为它是处于备份状态的
假如后方的一个 server 的httpd服务停了,主 Director 就访问不到 .web.html 这个页面了,就会将删除到该 server 的定向规则。
只是权重变为了“0”,并没有将这条规则删除,需要将静默模式改为 no 如下:
vim ldirectord.cf
quiescent=no
重启 heartbeat 定向到停止 httpd 服务的规则被删除了如下:
!!!
推荐阅读:
Linux 高可用(HA)集群之 heartbeat 基于 crm 进行资源管理详解 http://www.linuxidc.com/Linux/2013-08/89167.htm
Heartbeat+httpd+NFS 实现高可用的 Web 服务器 http://www.linuxidc.com/Linux/2013-08/88520.htm
Linux 高可用(HA)集群之 Heartbeat 详解 http://www.linuxidc.com/Linux/2013-08/88521.htm
Linux 高可用性方案之 Heartbeat 的 CRM 配置 http://www.linuxidc.com/Linux/2012-05/60838.htm
高可用集群 Heartbeat v1 实例 http://www.linuxidc.com/Linux/2013-09/90757.htm
LVS+heartbeat+ldirectord 高可用负载均衡集群解决方案 http://www.linuxidc.com/Linux/2011-09/42911.htm