lvs架构的单分发器DR模式
http://blog.运维网.com/attachment/201304/205952108.png
DR模式简单的说就是客户端请求数据进来结果ld,而出去的时候不经过ld了,直接去找路由器了,这样就可以减少分发器的压力了,这样使得可以调度更多的访问。
特点:server pool中的主机ip为公有ip
ld,real server 都要绑定一个虚ip
real server绑定的虚拟ip,只需要主机知道就好,路由器不需要知道。
配置过程如下:
1.client配置
#ifconfig eth0 192.168.18.106
#route add default gw 192.168.18.254
2.router 配置
#ifconfig eth0 192.168.18.254
#ifconfig eth0:0 192.168.19.100
打开转发:
echo 1 > /proc/sys/net/ipv4/ip_forward
3.分发器的配置:
安装lvs到分发器上面
配置好yum源,保证能够读取到介质中的Cluster目录!
cat /etc/yum.repos.d/aa.repo
name=aa
baseurl=file:///media/Server
enabled=1
gpgcheck=0
name=cluster
baseurl=file:///media/Cluster
enabled=1
gpgcheck=0
#yum -y install ipvsadm
#ifconfig eth0 192.168.19.200
绑定vip
#ifconfig eth0:0 192.168.19.250 netmask 255.255.255.255 broadcast 192.168.19.250 up
设定正确的路由
route add -host 192.168.19.250 dev eth0:0
设定分发规则
19.200#ipvsadm -A -t 192.168.19.250:80 -s rr
19.200#ipvsadm -a -t 192.168.19.250:80 -r 192.168.19.101 -g
19.200#ipvsadm -a -t 192.168.19.250:80 -r 192.168.19.102 -g
19.200#ipvsadm -a -t 192.168.19.250:80 -r 192.168.19.103 -g
-A 添加服务 -t 服务所使用的虚拟ip地址:端口(虚拟地址工业环境应该是公网ip) -s 算法(rr 算法就是你一个,我一个)
注意是 -g 【(-a 添加real server -r real server的ip -g (DR模式)】
算法介绍:
1.rr轮叫调度(Round Robin)
调度器通过“轮叫”调度算法将外部的请求按顺序轮流分配至集群中的真是服务器中,均等的对待每一台服务器,而不管服务器上面的实际连接数和系统负载。
2.wrr加权轮叫(Weighted Round Robin)
调度器通过“加权轮叫”调度算法根据真是服务器的不同处理能力来调度访问请求。这样可以保证处理能力强的服务器处理更多的访问请求。调度器可以自动询问真是服务器的负载情况,并动态地调整其权值。
3.lc最少连接(Least Connections)
调度器通过”最少连接“调度算法动态的将网络请求调度到已建立的连接数最少的服务器上。如果集群系统的真实服务器具有相近的系统性能,采用”最少连接“调度算法可以较好的均衡负载情况。
4.wlc加权最少连接(Weighted Least Connections)
在集群系统中的服务器性能差异较大的情况下,调度器采用”加权最少连接:调度算法优化负载均衡性能,具有较高的权值的服务器将承受较大比例的活动连接负载。调度器可以自动询问真是服务器的负载情况,并动态的调度其权值。
5.lblc基于局部性的最少连接
6.LBLCR带复制的基于局部性的最少连接
7.DH目标地址散列
8.SH源地址散列
我这里就不在清楚的介绍其他的算法了,现在一共支持12中算法,希望你们去了解吧。
real server的配置:
绑定vip
#ifconfig lo:0 192.168.19.250 netmask 255.255.255.255 broadcast 192.168.19.250 up
设置到主机的路由
#route add -host 192.168.19.250 dev lo:0
设置默认路由
#route add default gw 192.168.19.100
保证arp协议在连接过程中,路由器上,只知道网络中192.168.19.250对应的是分发器
19.101#echo 1 > /proc/sys/net/ipv4/conf/lo/arp_ignore
19.101#echo 1 > /proc/sys/net/ipv4/conf/all/arp_ignore
19.101#echo 2 > /proc/sys/net/ipv4/conf/lo/arp_announce
19.101#echo 2 > /proc/sys/net/ipv4/conf/all/arp_announce
其他的real server配置同上
绑定VTP:还可以利用脚本来实现:
#!/bin/bash
VIP=192.168.19.250
ROUTE=192.168.19.100
start() {
ifconfig lo:0 $VIP/32 broadcast $VIP up
route add -host $VIP dev lo:0
route add default gw $ROUTE
echo 1 > /proc/sys/net/ipv4/conf/all/arp_ignore
echo 2 > /proc/sys/net/ipv4/conf/all/arp_announce
echo start;
}
stop() {
route del default gw $ROUTE
route del -host $VIP dev lo:0
ifconfig lo:0 down
echo 0 > /proc/sys/net/ipv4/conf/all/arp_ignore
echo 0 > /proc/sys/net/ipv4/conf/all/arp_announce
echo stop;
}
case $1 in
start)
start
;;
stop)
stop
;;
restart)
stop
start
;;
*)
echo 'start | stop'
esac
重启服务
/etc/init.d/httpd restart
开始测试:
18.106#elinks http://192.168.19.250 --dump
102
18.106#elinks http://192.168.19.250 --dump
101
页:
[1]