Loading

集群--LVS的DR模型配置

1.查看内核是否有IPVS内核模块

grep -i 'ip_vs' /boot/config-2.6.32-431.el6.x86_64


或者


Centos6.5内核已经自带安装了lvs

 

2.安装ipvsadm
内核中的lvs是通过ipvsadm来进行管理的

yum install -y ipvsadm

3.环境准备

管理IP地址 角色 备注
192.168.1.114 调度器(Director) 对外提供VIP服务的地址为192.168.1.88
192.168.1.115 RS1  
192.168.1.116 RS2  

 

 

 

 

这里的VIP我是用的网卡别名形式配置的:

ifconfig eth1:0 192.168.1.88 netmask 255.255.255.0 up

配置步骤

添加Virtual Server,并查看

添加Real Server

在RS1中绑定VIP

查看路由信息

在RS中抑制ARP响应

echo "1" >/proc/sys/net/ipv4/conf/lo/arp_ignore 
echo "2" >/proc/sys/net/ipv4/conf/lo/arp_announce 
echo "1" >/proc/sys/net/ipv4/conf/all/arp_ignore 
echo "2" >/proc/sys/net/ipv4/conf/all/arp_announce

如果需要取消ARP抑制,都置0

 

在RS2中进行与RS1同样的操作。

[root@RS2 ~]$ifconfig lo:116 192.168.1.88 netmask 255.255.255.255 up
[root@RS2 ~]$route add -host 192.168.1.88 dev lo
[root@RS2 ~]$echo "1" >/proc/sys/net/ipv4/conf/lo/arp_ignore 
[root@RS2 ~]$echo "2" >/proc/sys/net/ipv4/conf/lo/arp_announce 
[root@RS2 ~]$echo "1" >/proc/sys/net/ipv4/conf/all/arp_ignore 
[root@RS2 ~]$echo "2" >/proc/sys/net/ipv4/conf/all/arp_announce

 

在浏览器中进行访问,可以看见LVS已经实现了转发

并且实现了负载均衡

 

我们也可以用Apache自带的ab工具进行检测

ab -n 1000 -c 100 http://192.168.1.88/

其中-n代表每次并发量,-c代表总共发送的数量

结合watch可以查看出每个RS的访问连接数

watch --interval=1 ipvsadm -Ln

结果如下:

 

健康检查脚本

#!/bin/sh

VIP=192.168.1.88
PORT=80
RIP=(
192.168.1.115
192.168.1.116
)
while true
do
  for((i=0;i<${#RIP[*]};i++))
  do 
     PORT_COUNT=`nmap ${RIP[$i]} -p $PORT|grep open|wc -l`
     if [ $PORT_COUNT -ne 1 ];then
        if [ `ipvsadm -Ln|grep ${RIP[$i]}|wc -l` -ne 0 ];then
         ipvsadm -d -t $VIP:$PORT -r ${RIP[$i]}:$PORT >/dev/null 2>&1
        fi
     else
        if [ `ipvsadm -Ln|grep ${RIP[$i]}|wc -l` -eq 0 ];then
         ipvsadm -a -t $VIP:$PORT -r ${RIP[$i]}:$PORT -g -w 1 >/dev/null 2>&1
        fi
     fi
  done
  sleep 10
done

 

posted @ 2016-09-20 01:21  头痛不头痛  阅读(236)  评论(0编辑  收藏  举报