为了测试方便,所有机子清空或关闭防火墙

test1:192.168.10.161 【CentOS 6.8】主机名:test1

test2:192.168.10.162 【CentOS 6.9】主机名:test2

test3:192.168.10.163 【CentOS 6.9】主机名:test3

LVS Cluseter

  vip:192.168.10.30

  ipvs:

     rs:192.168.10.161

     …

     back server:director  httpd

  ipvs的HA节点:test2、test3

在test1、test2、test3的/etc/hosts中添加:

192.168.10.161  test1

192.168.10.162  test2

192.168.10.163  test3

rs.sh脚本

vim/root/rs.sh

#!/bin/bash

vip=192.168.10.30

interface=lo:0

case $1 in

start)

        ifconfig $interface $vip netmask 255.255.255.255 broadcast $vip

        /sbin/route add -host $vip dev $interface

       echo 1 > /proc/sys/net/ipv4/conf/all/arp_ignore

       echo 1 > /proc/sys/net/ipv4/conf/lo/arp_ignore

       echo 2 > /proc/sys/net/ipv4/conf/all/arp_announce

       echo 2 > /proc/sys/net/ipv4/conf/lo/arp_announce

;;

stop)

        ifconfig $interface down

        route del $vip >/dev/null 2>&1

       echo 0 > /proc/sys/net/ipv4/conf/all/arp_ignore

       echo 0 > /proc/sys/net/ipv4/conf/lo/arp_ignore

       echo 0 > /proc/sys/net/ipv4/conf/all/arp_announce

       echo 0 > /proc/sys/net/ipv4/conf/lo/arp_announce

;;

status)

   if ifconfig $interface | grep $vip &> /dev/null;then

       echo "ipvs  is running…"

   else

       echo "ipvs is  stopped…"

   fi

;;

*)

   echo "Usage: `basename $0` {start|stop|status}"

   exit 1

esac

一、test1设置(Real Server)

1、安装并启动httpd

#yum install httpd -y && service httpd start

2、web测试页:

[root@test1 ~]# echo "<h1>test1…192.168.10.161</h1>" >/var/www/html/index.html

3、运行rs.sh脚本

[root@test1 ~]# ./rs.sh start

二、test2、test3设置

1、test2、test3安装依赖包

[root@test2 ~]# yum install ipvsadm perl-MailTools perl-TimeDate  -y

2、test2、test3安装heartbeat-ldirectord,按之前先安装heartbeat,安装heartbeat过程略

blob.png

[root@test2 heartbeat]# yum localinstall heartbeat-ldirectord-2.1.4-12.el6.x86_64.rpm -y

heartbeat-ldirectord的相关文件:

blob.png

3、test3设置vip、路由,添加ipvs规则

 [root@test3 ~]# ifconfig eth0:0 192.168.10.30 broadcast 192.168.10.30 netmask 255.255.255.0 up

[root@test3 ~]# route add -host 192.168.10.30 dev eth0:0

[root@test3 ~]# ipvsadm -A -t 192.168.10.30:80 -s  rr

[root@test3 ~]# ipvsadm -a -t 192.168.10.30:80 -r 192.168.10.161 -g -w 1

blob.png

浏览器打开192.168.10.30:

blob.png

三、高可用集群配置:

(1)test2设置

1、还原上面第3步的设置:

#route del -host 192.168.10.30

#ifconfig  eth0:0  down

#ipvsadm -C

2、test2节点ldrectord配置

复制ldirectord.cf文件到/etc/ha.d/

# cp /usr/share/doc/heartbeat-ldirectord-2.1.4/ldirectord.cf /etc/ha.d/

3、配置ldirectord.cf

#cd /etc/ha.d/

[root@test2 ha.d]# vim ldirectord.cf

checktimeout=3

checkinterval=1

autoreload=yes

logfile="/var/log/ldirectord.log"

quiescent=yes

virtual=192.168.10.30:80

   real=192.168.10.161:80 gate

   fallback=127.0.0.1:80 gate

   service=http

   request=".health.html"

   receive="OK"

   scheduler=rr

   protocol=tcp

   checktype=negotiate

   checkport=80

blob.png

4、test2测试页

[root@test2 ha.d]# echo "<h1>Sorry Server</h1>" >/var/www/html/index.html

5、启动httpd

[root@test2 ha.d]# service httpd start

6、启动heartbeat

service heartbeat start

(2)test3节点设置

1、设置web测试页,启动httpd

[root@test3 ~]# echo "<h1>Sorry Server(test3)</h1>" >/var/www/html/index.html

[root@test3 ~]# service httpd start

2、启动heartbeat

service heartbeat start

(3)资源配置

[root@test2 ha.d]# hb_gui &

blob.png

设置ip:192.168.10.30:

blob.png 

设置ipvs规则:

blob.png 

启动资源:

blob.png 

浏览器打开192.168.10.30:

blob.png

分类: Linux服务架构