CLUSTER部署LVS
LVS-NAT集群:client1:客户端 IP :1.0.0.1
lvs集群:服务器 IP1:1.0.0.254 IP2:192.168.1.254
ser10/ser20:网页应用服务器 ser10IP:192.168.1.10 ser20IP:192.168.1.20
ser10 yum -yinstall httpd
servicehttpdstart;chkconfig httpd on
echoser10> /var/www/html/index.html
ser20 yum -yinstall httpd
servicehttpdstart;chkconfig httpd on
echoser20> /var/www/html/index.html
ser10 +ser20
# routeadd default gw192.168.1.254 #给网页服务器配置路由网关
# route -n #查看路由信息
ser10 #四台电脑都能互相ping通
ping 192.168.1.254
ping 1.0.0.254
ping 1.0.0.1
vip 分发器 与公网通信的接口
dip 分发器 与内网通信的接口
rip 内网服务器的ip地址
cip 公网客户端地址
配置LVS服务(NAT模式)
rpm -q ipvsadm
rpm -ivh /mnt/Packages/ipvsadm-1.26-2.el6.x86_64.rpm
开启内核路由转发功能,使其能够收发不同网段的ip包
# vim /etc/sysctl.conf
net.ipv4.ip_forward = 1
:wq
# sysctl -p #刷新路由转发功能
编写分发策略
ipvsadm-A -t1.0.0.254:80 -srr #创建LVS虚拟集群服务器
ipvsadm-a -t1.0.0.254:80-r 192.168.1.10-m 为集群添加real server(指定IP)
ipvsadm-a -t1.0.0.254:80-r 192.168.1.20-m 为集群添加real server(指定IP)
ipvsadm-Ln--stats #查看LVS状态
/etc/init.d/ipvsadmsave #保存LVS左右规则
cat /etc/sysconfig/ipvsadm #查看规则文件
/etc/init.d/ipvsadm restart #重启LVS服务
ipvsadm -C #清空所有规则
-------------------------------------------------
LVS/DR模式 (分发器 和realserver 都是公网ip地址)
lvs集群部署服务器 IP1:1.0.0.254
ser10/ser20:网页应用服务器 ser10IP:1.0.0.10 ser20IP:1.0.0.20
client1 :客户端 IP :1.0.0.1
1让两个realserver 拥有VIP地址
ifconfiglo:11.0.0.253/32
2让两个realserver 不应答访问分发器的请求
echo 1 > /proc/sys/net/ipv4/conf/lo/arp_ignore
echo 1 > /proc/sys/net/ipv4/conf/all/arp_ignore
echo 2 > /proc/sys/net/ipv4/conf/lo/arp_announce
echo 2 > /proc/sys/net/ipv4/conf/all/arp_announce
lvs的配置
ifconfig eth1:11.0.0.253/32
ipvsadm-A-t1.0.0.253:80-s rr
ipvsadm-a-t1.0.0.253:80 -r 1.0.0.10 -g-w 1 #权重为1(轮流时访问一次)
ipvsadm-a-t1.0.0.253:80 -r 1.0.0.20 -g -w 3 #权重为3(轮流时连续访问三次)
serviceipvsadmsave
ipvsadm -Ln --stats
elinks --dump http://1.0.0.253 //交替出现 2 个 realserver 的 web 页面就 ok 了
LVS 没有对 realserver 做健康性检查的功能,要自己写检查脚本。
*当把某个 realserver 上的 web 服务停止后,分发器仍然会把客户端的请求分发给此 realserver,
并且也不会把其从策略中删除。
# yum -y nmap 先安装检测软件
# vim /root/check_lvs.sh
1 #!/bin/bash
2 RIP1=1.0.0.10
3 RIP2=1.0.0.20
4 VIP=1.0.0.253
5
6 while[ 1 ]
7 do
8 for IP in $RIP1 $RIP2
9 do
10 RSTAT=$(nmap -n -sT -p 80 $IP | grep open)
11 if[ -z "$RSTAT" ];then
12 RLVS=$(ipvsadm -Ln | grep $IP)
13 if [ -n "$RLVS" ];then
14 ipvsadm -d -t ${VIP}:80 -r $IP
15 fi
16 fi
17 done
18
19 for IP in $RIP1 $RIP2
20 do
21 RSTAT=$(nmap -n -sT -p 80 $IP | grep open)
22 if [ -n "$RSTAT" ];then
23 RLVS=$(ipvsadm -Ln | grep $IP)
24 if [ -z "$RLVS" ];then
25 if [ "$IP" = "$RIP1" ];then
26 ipvsadm -a -t ${VIP}:80 -r $IP -m
27 else
28 ipvsadm -a -t ${VIP}:80 -r $IP -m -w 2
29 fi
30 fi
31 fi
32 done
33 sleep 3
34 done
:wq
页:
[1]