文章目录
前言
负载均衡
IP负载均衡技术
主要三种转发方式:NAT,DR,TUN;
可伸缩网络架构
特点:前端调度器,拥有前端调度器就可以实现网络架构的横向,纵向伸缩功能,无限扩容集群的量级.
LVS均衡转发方式
转发方式:NAT, DR, TUN模式
LVS负载均衡算法
均衡算法:
RR (round-robin), LC(least_connection), W(weight)RR, WLC模式等,
(RR为轮询模式, LC为最少连接模式)
LVS配置实战
实现是基于Linux内核模块IP_VS,与iptables一样是直接工作在内核中,互联网主流的Linux发行版默认都已经集成了ipvs模块
#(1)编译安装
wget -c
http://www.linuxvirtualserver.org/software/kernel-2.6/ipvsadm-1.24.tar.gz
ln -s /usr/src/kernels/2.6.* /usr/src/linux
tar xzvf ipvsadm-1.24.tar.gz
cd ipvsadm-1.24
make
make install
#(2)添加虚拟服务器IP,添加realserver后端服务及启动LVS服务器VIP地址
ipvsadm -A -t 192.168.1.188:80 -s rr
ipvsadm -a -t 192.168.1.188:80 -r 192.168.33.12 -g -w 2
ipvsadm -a -t 192.168.1.188:80 -r 192.168.33.13 -g -w 2
(3) 可以使用Shell脚本自动部署LVS相关软件及配置:
#!/bin/bash
SNS_RIP2=$4
if [ "$1" == "stop" -a -z "$2" ];then
echo "----------------------------"
echo -e "\033[32mPlease Enter $0 stop LVS_VIP\n\nExample:$0 stop 192.168.1.111\033[0m"
exit
else
if [ -z "$2" -a -z "$3" -a -z "$4" ];then
echo "--------------------"
exit 0
fi
fi
./etc/rc.d/init.d/functions
logger $0 called with $1
function IPVSADM(){
/sbin/ipvsadm --set 30 5 60
/sbin/ifconfig eth0:0 $SNS_VIP broadcast $SNS_VIP netmask 255.255.255.255
broadcast $SNS_VIP up
/sbin/rote add -host $SNS_VIP dev eth0:0
/sbin/ipvsadm -A -t $SNS_VIP:80 -s wlc -p 120
/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
}
case "$1" in
start)
IPVSADM
echo "------------------"
/sbin/ipvsadm -Ln
touch /var/lock/subsys/ipvsadm > /dev/null 2>&1
;;
stop)
/sbin/ipvsadm -C
/sbin/ipvsadm -Z
ifconfig eth0:0 down >> /dev/null 2>&1
route del $SNS_VIP >> /dev/null 2>&1
rm -rf /var/lock/subsys/ipvsadm > /dev/null 2>&1
echo "ipvsadm stopped!"
;;
status)
if [ ! -e /var/lock/subsys/ipvsadm ]
then
echo "ipvsadm stopped!"
exit 1
else
echo "ipvsadm started!"
fi
;;
*)
echo "Usage: $0 {start|stop|status}"
exit 1
esac
exit 0
(4) LVS服务器绑定VIP地址
VIP=192.168.111.190
ifconfig eth0:0 $VIP netmask 255.255.255.255 broadcast $VIP
/sbin/route add -host $VIP dev eth0:0
(5) LVS ipvsadm配置参数说明:
-A 增加一台虚拟服务器VIP地址;
-t 虚拟服务器提供的是tcp服务;
-s 使用的调度算法;
-a 在虚拟服务器中增加一台后端真实服务器;
-r 指定真实服务器地址;
-w 后端真实服务器的权重;
-m 设置当前转发方式为NAT模式;-g为直接路由模式;-i 模式为隧道模式。
(6) 查看LVS转发列表命令为:ipvsadm -Ln
(7) Nginx客户端realserver配置VIP脚本:
auto_nginx_LVS_VIP.sh
#!/bin/bash
#LVS Client Server
VIP=192.168.1.188
case $1 in
start)
ifconfig lo:0 $VIP netmask 255.255.255.255 broadcast $VIP
/sbin/route add -host $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_ignre
echo "2" >/proc/sys/net/ipv4/conf/all/arp_announce
sysctl -p >/dev/null 2>&1
echo "RealServer Start OK"
exit 0
;;
stop)
ifconfig lo:0 down
route del $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 Stopped OK"
exit 1
;;
*)
echo "Usage: $0 {start|stop}"
;;
esac