您的位置:首页 > 运维架构 > Linux

CentOS下LVS DR模式负载均衡配置详解

2017-04-04 21:08 453 查看
一安装LVS准备:

1、准备4台Centos 6.2 x86_64

注:本实验关闭 SELinux和IPtables防火墙。

管理IP地址角色备注
192.168.1.101LVS主调度器(Master Director)对外提供服务的VIP为192.168.1.180
192.168.1.114LVS从调度器(Backup Director)平时可以作为RS(真实服务器使用)
192.168.1.104RS1(真实服务器)
192.168.1.103RS2(真实服务器)
2、配置好简单的HTTP服务

这里以apache服务为例,通过yum -y install httpd 的方式安装好httpd服务。

分别在192.168.1.103和192.168.1.104上做如下操作:

[root@centos ~]# yum -y install httpd

echo 103 >/var/www/html/index.html #(104上的要把 103字段改成 104)

[root@centos ~]# service httpd start #启动http服务

[root@centos ~]# ps -ef | grep httpd #检查进程如有类似的输出表示启动成功。

root 1535 1 0 23:27 ? 00:00:00 /usr/sbin/httpd

apache 1537 1535 0 23:27 ? 00:00:00 /usr/sbin/httpd

apache 1538 1535 0 23:27 ? 00:00:00 /usr/sbin/httpd

apache 1539 1535 0 23:27 ? 00:00:00 /usr/sbin/httpd

[root@centos ~]# setenforce 0 #关闭SELinux

[root@centos ~]# /etc/rc.d/init.d/iptables stop #关闭防火墙

3、测试http服务配置:



注:用IP地址最后一段数字代表RS自身的内容,容易让大家看到测试的结果,实际业务中,RS的业务内容应该是完全相同的。

4、开始安装LVS

下载相关软件包:

[root@centos1 ~]# mkdir download

[root@centos1 ~]# cd download/

[root@centos1 download]# wget http://www.linuxvirtualserver.org/software/kernel-2.6/ipvsadm-1.24.tar.gz
5、安装命令

注:以下安装需要在192.168.1.101和192.168.1.104上面操作:

[root@centos1 download]# uname -r #查看linux内核版本

2.6.32-220.el6.x86_64

[root@centos1 download]# ln -s /usr/src/kernels/2.6.32-220.el6.x86_64/ /usr/src/linux #不做此步骤,安装会报错

注:此ln命令的路径要和uname -r输出内核版本一致,如果没有 /usr/src/kernels/2.6.32-220.el6.x86_64/ 需要安装 kernel-devel软件包。

[root@centos1 download]# tar zxvf ipvsadm-1.24.tar.gz

[root@centos1 download]# cd ipvsadm-1.24

[root@centos1 ipvsadm-1.24]# make

[root@centos1 ipvsadm-1.24]# make install

[root@centos1 ipvsadm-1.24]# ipvsadm #执行ipvsadm命令,把LVS添加到linux内核中

IP Virtual Server version 1.2.1 (size=4096)

Prot LocalAddress:Port Scheduler Flags

-> RemoteAddress:Port Forward Weight ActiveConn InActConn

[root@centos1 ipvsadm-1.24]# lsmod | grep ip_vs #查看LVS是否已经添加到linux内核了,如果有如下输出表示已经成功。

ip_vs 108133 0

ipv6 322029 154 ip_vs,ip6t_REJECT,nf_conntrack_ipv6,nf_defrag_ipv6

6配置LVS 服务端

在192.168.1.101和192.168.1.114上分别配置LVS DR模式

1)、配置LVS,建立一个脚本配置LVS

注:192.168.1.101和192.168.1.114上配置都是一样的

[root@centos1 bin]# vim lvs_dr.sh

#!/bin/bash

. /etc/init.d/functions

vim lvs_dr.sh

#!/bin/bash

GW=192.168.1.1

# website director vip.

SNS_VIP=192.168.1.181

SNS_RIP1=192.168.1.103

SNS_RIP2=192.168.1.104

logger $0 called with $1

case "$1" in

start)

# set squid vip

/sbin/ipvsadm --set 30 5 60

/sbin/ifconfig eth0:0 $SNS_VIP broadcast $SNS_VIP netmask 255.255.255.255 up

/sbin/route add -host $SNS_VIP dev eth0:0

/sbin/ipvsadm -A -t $SNS_VIP:80 -s wrr -p 3

/sbin/ipvsadm -a -t $SNS_VIP:80 -r $SNS_RIP1:80 -g -w 1

/sbin/ipvsadm -a -t $SNS_VIP:80 -r $SNS_RIP2:80 -g -w 1

touch /var/lock/subsys/ipvsadm >/dev/null 2>&1

;;

stop)

/sbin/ipvsadm -C

/sbin/ipvsadm -Z

ifconfig eth0:0 down

ifconfig eth0:1 down

route del $SNS_VIP

route del $SS_VIP

rm -rf /var/lock/subsys/ipvsadm >/dev/null 2>&1

echo "ipvsadm stoped"

;;

status)

if [ ! -e /var/lock/subsys/ipvsadm ];then

echo "ipvsadm stoped"

exit 1

else

echo "ipvsadm OK"

fi

;;

*)

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

exit 1

esac

exit 0

[root@centos1 bin]# chmod +x lvs_dr.sh #给SHELL脚本加上执行权限

[root@centos1 bin]# cp lvs_dr.sh /etc/rc.d/init.d/ #方便启动

[root@centos1 bin]# service lvs_dr.sh start #启动lvs服务

用ipvsadm -Ln 命令查看是否有如下输出,如有证明LVS配置成功

[root@centos1 bin]# ipvsadm

IP Virtual Server version 1.2.1 (size=4096)

Prot LocalAddress:Port Scheduler Flags

-> RemoteAddress:Port Forward Weight ActiveConn InActConn

TCP 192.168.1.181:http wrr persistent 3

-> 192.168.1.104:http Route 1 0 0

-> 192.168.1.103:http Route 1 0 0

7、配置LVS RS服务器

[root@centos bin]# vim lvs_dr.sh

#!/bin/bash

. /etc/init.d/functions

SNS_VIP=192.168.1.181

case "$1" in

start)

ifconfig lo:0 $SNS_VIP netmask 255.255.255.255 broadcast $SNS_VIP

/sbin/route add -host $SNS_VIP dev lo:0

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

sysctl -p >/dev/null 2>&1

echo "RealServer Start OK"

;;

stop)

ifconfig lo:0 down

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

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

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

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

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

echo "RealServer Stoped"

;;

*)

echo "Usage: $0 {start|stop}"

exit 1

esac

[root@centos bin]# cp lvs_dr.sh /etc/rc.d/init.d/ #方便启动

[root@centos bin]# service lvs_dr.sh start #启动lvs RS服务器

RealServer Start OK

8、验证LVS DR模式是否配置成功

在浏览器中输入 LVS http://192.168.1.181


然后打开另一个浏览器再次输入 http://192.168.1.181 看看内容是否一样



两个浏览器访问的内容不同,证明LVS DR模式配置成功

到此LVS DR模式已经配置完成,下面配置LVS DR + Keepalived 高可用负载均衡。

http://www.centoscn.com/CentosServer/cluster/2014/0729/3380.html
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: