Heartbeat v2+heartbeat
一、实验拓扑图:http://blog.运维网.com/attachment/201208/205950627.jpg
二、实验简介
如上实验拓扑图所示:RS1和RS2为web服务器,它们与Director组成LVS-DR模型的负载均衡集群,目的是使Web服务器达到负载均衡;Director1和Director2组成基于heartbeat v2+heartbeat-ldirectord的高可用集群,其目的是使web服务器可以提供可靠长久的服务。
三、实验步骤
(1)配置RS1、RS2和Director1的DR模型的负载均衡集群。
RS1:在RS1上主要是配置4个内核参数,主要防治RS1向应外部对VIP的请求,其次配置VIP,具体步骤如下:
[*]# echo 1 >/proc/sys/net/ipv4/conf/eth0/arp_ignore
[*]# echo 1 >/proc/sys/net/ipv4/conf/all/arp_ignore
[*]# echo 2 >/proc/sys/net/ipv4/conf/eth0/arp_announce
[*]# echo 2 >/proc/sys/net/ipv4/conf/all/arp_announce
[*]
[*]# ifconfig lo:1 172.16.5.1 broadcast 172.16.5.1 netmask 255.255.255.255 up
[*]# route add -host 172.16.5.1 dev lo:1(通过RS1响应的请求IP都为VIP)
[*]#echo "RS1" > /var/www/html/index.html(前提是httpd按装并启动)
RS2:RS2的配置和RS1的配置一样,只需重复上面的操作,注意:为了便于测试将最后一行改为:#echo "RS2" > /var/www/html/index.html
Director1:在其上做如下配置并定义ipvs规则:
[*]# yum -y install ipvsadm(安装ipvsadm)
[*]定义ipvs规则:
[*]# ipvsadm -A -t 172.16.5.1:80 -s rr(定义服务)
[*]# ipvsadm -A -t 172.16.5.1:80 -r 172.16.44.1 -g
[*]# ipvsadm -a -t 172.16.5.1:80 -r 172.16.55.1 -g(定义RS)
测试结果如下:第一次访问172.16.5.1
http://blog.运维网.com/attachment/201208/213203737.jpg
刷新之后的结果:
http://blog.运维网.com/attachment/201208/213203788.jpg
这样一个简单的LVS-DR模型就构建好了。下面配置Director的高可用功能。
(2)Director1和Director2上配置高可用集群。
在Director1上的配置:
(1)设置主机名,配置双机互信。
[*]# hostname node1
[*]# uname -n(验证主机名)
[*]# vim /etc/sysconfig/network(修改主机名,修改如下内容)
[*] HOSTNAME=node1
[*]# vim /etc/hosts(添加如下内容)
[*]172.16.66.1 node1
[*]172.16.77.1 node2
[*]# scp /etc/hosts root@node2:/etc/(将node1的hosts传给node2,前提是172.16.77.1也要配好主机名)
[*]配置双机互信:
[*]# ssh-keygen -t rsa
[*]# ssh-copy-id -i .ssh/id_rsa.pub root@node2
[*]# ssh node2 'ifconfig'(测试是否成功)
在Director2上只需配置主机名为node2和双机互信,和上面的配置相同,在此不再赘述。
(2)安装软件包
[*]需要下载的软件:
[*]heartbeat-2.1.4-9.el5.i386.rpm
[*]heartbeat-stonith-2.1.4-10.el5.i386.rpm
[*]heartbeat-gui-2.1.4-9.el5.i386.rpm
[*]libnet-1.1.4-3.el5.i386.rpm
[*]heartbeat-ldirectord-2.1.4-9.el5.i386.rpm
[*]perl-MailTools-1.77-1.el5.noarch.rpm
[*]heartbeat-pils-2.1.4-10.el5.i386.rpm
[*]安装软件
[*]# yum -y --nogpgcheck localinstall *.rpm
(3)修改配置文件并启用hb_gui功能。
[*]#cd /usr/share/doc/heartbeat-2.1.4/
[*]#cp ha.cf haresources authkeys /etc/ha.d
[*]#cd /etc/ha.d
[*]#vim ha.cf(添加如下内容)
[*]node node1
[*]node node2
[*] crm respawn
[*]#vim authkeys (添加如下内容)
[*]auth 1
1 sha1 1bf276bd2a05e39e018b4690a829ea7f
[*](注意:后面的随机串是:dd if=/dev/urandom count=1 bs=512 | md5sum)
[*] #chmod 600 authkeys (注意一定要修改)
[*] #scp ha.cf authkeys haresources root@node2:/etc/ha.d/
[*] #hd_gui &(进行测试,测试前要添加hacluster用户)
(4)修改ldirectord的配置文件,ldirectord的主要作用就是可以代替ipvsadm来定义规则的,并且可以对RS进行健康状况的监测,具体过程如下:
[*]#chkconfig ipvsadm off
[*]#ipvadm -C(清除上面在LVS-DR模型中定义的规则)
[*]#rpm -ql heartbeat-ldirectord(查看信息)
[*]#cp /usr/share/doc/heartbeat-ldirectord-2.1.4/ldirectord.cf ./
[*]#vim ldirctord.cf(对其做如下修改)
[*]virtual=172.16.5.1:80(VIP)
[*] real=172.16.44.1:80 gate(RS1的IP)
[*] real=172.16.55.1:80 gate(RS2的IP)
[*] fallback=127.0.0.1:80 gate(当RS1和RS2都坏掉时,访问网站出现的页面)
[*] service=http
[*] request=".test.html" (用于验证RS是否正常工作)
[*] receive="OK"
[*] scheduler=rr
[*] netmask=255.255.255.255
[*] protocol=tcp
[*] checktype=negotiate
[*] checkport=80
[*] #scp ldirectord.cf root@node2:/etc/ha.d/(将其复制到另一台主机)
(5)启动heartbeat并定义资源,步骤如下:
启动heartbeat:
[*]#service heartbeat start
[*]#ssh node2 '/etc/init.d/heartbeat start'
(3)启动hb_gui定义资源,在此需要定义的资源只有两中,IP和ldirectord,具体过程如下:
(1)在命令行中输入#hb_gui &,开启资源的图形化界面。
http://blog.运维网.com/attachment/201208/110935356.jpg
右击添加资源:
http://blog.运维网.com/attachment/201208/110935270.jpg
选择组类型:
http://blog.运维网.com/attachment/201208/110935311.jpg
选择IPaddr2,其功能比IPaddr更强大:
http://blog.运维网.com/attachment/201208/205516172.jpg
配置VIP的参数如下所示,主要配置ip,lvs_support,nic等,如下所示
http://blog.运维网.com/attachment/201208/210251153.jpg http://blog.运维网.com/attachment/201208/210251665.jpg http://blog.运维网.com/attachment/201208/210251278.jpg http://blog.运维网.com/attachment/201208/210251873.jpg
添加ldirectord资源,如下所示:
右击group_选择native选项:
http://blog.运维网.com/attachment/201208/210705613.jpg
选择ldrectord选项,配置其configfile如下所示:
http://blog.运维网.com/attachment/201208/210705487.jpg
添加完成后启动服务就可以了,如下所示: http://blog.运维网.com/attachment/201208/111507102.jpg
启动后的结果如下:
http://blog.运维网.com/attachment/201208/211258342.jpg
这样完整的配置过程就是这样了,下面进行测试。
四、实验测试。
在测试之前,需要在RS1,RS2上添加网页.test.html,并在其中添加ok字样,其主要的作用是让ldirectord可以测试RS是否正常工作。然后在在Director1和Director2上分别在其index.html中添加Testing,并启动httpd服务。
(1)模拟Direct1坏掉时,如下,选择standby:
http://blog.运维网.com/attachment/201208/212250317.jpg
出现如下结果,则表示测试正常:
http://blog.运维网.com/attachment/201208/212450321.jpg
(2)当一台RS坏掉时,再访问网站,则director只会选择能正常提供服务的,而不访问坏掉的,在此,模拟RS1坏掉,只需将RS1上的httpd服务停掉,再访问一直是RS2提供的页面,如下所示:
http://blog.运维网.com/attachment/201208/212905932.jpg
(3)若所有的RS都坏掉,则回显示,Testing页面,在此,将RS1和RS2的httpd服务全停掉,在访问如下:
http://blog.运维网.com/attachment/201208/213143887.jpg
实验到此结束,如有什么不足之处还请大家多多指教,谢谢!!!
页:
[1]