realserver:也称为真实内部服务器,是真正在提供服务的;前端
VIP:对外公布的IP,即客户请求进来的IP地址;linux
DIP:调度器和realserver之间通讯的地址;web
yum -y install ipvsadm
配置内部私网地址,默认网关指向调度服务器算法
二、Directer配置要求 基本配置:服务器
调度服务器须要2块网卡(一块网卡对外,一块网卡对内。1块也能够,配置子接口,对外的VIP和DIP都配置在同一网卡上,不过这样会更加的下降调度器的性能,建议仍是双网卡)网络
关闭selinux和iptables,并打开包转发功能:负载均衡
setenforce 0 service iptables stop
echo "1" > /proc/sys/net/ipv4/ip_forward
(为了不没必要要的麻烦,在每台服务器上都关闭这2个服务)tcp
ipvsadm -A –t $VIP:$Port -s rr
解释:-A表示添加一个集群服务(能够添加多个,好比添加一个web的80和一个https的443);性能
-t表示是tcp协议;优化
-s表示调度算法是轮询(一共有10种调度算法,能够按照本身实际须要选择)
ipvsadm -a –t $VIP:$Port -r $DIP:$Port -m
解释:-a表示添加一个realserver,后面跟上以前定义的集群服务的地址端口,-r表示增长具体realserver的地址,-m表示模式为NAT模式
一、Realserver配置要求 基本配置
首先先配置限制arp,否则等配置好地址后就产生地址冲突了,经过修改内核参数来实现。
在linux中 ,默认在接口上通告全部接口上IP的arp广播,在接口上应答全部接口上IP的arp请求
arp_announce 限制arp通告
限制等级
0:在接口上通告全部接口上IP的arp广播
1:对于其它设备的arp请求,在接口上尽可能限制广播通告应答(不够严格)
2:只通告本接口上IP的arp广播
arp_ignore 限制arp应答
限制等级
0:对于其它设备 的arp请求,应答全部其它接口的上IP的arp应答
1:对于其它设备的arp请求,只应答本接口上IP的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
在realserver上的lo口配置VIP,这样配置就限制了VIP不会在物理交换机上产生MAC地址表,从而避免IP冲突
ifconfig lo:1 $VIP broadcast $VIP netmask 255.255.255.255 ifconfig eth0 $DIP up
注意此VIP的接口的广播地址仍然为VIP,限制其广播,子网掩码是32位,下面调度器上的配置也注意此项
配置特殊路由,使目标为VIP的包的以源地址为VIP的lo口出去
route add –host $VIP dev lo:1
Directer配置要求
配置VIP和DIP,VIP配置在物理网卡的子接口上
ifconfig eth0 $DIP broadcast $VIP netmask 255.255.255.0 up ifconfig eth0:1 $VIP broadcast $VIP netmask 255.255.255.255 up
配置特殊路由,目标是VIP的包从配置了VIP的物理子接口上出去
route add –host $VIP dev eth0:1
集群配置
ipvsadm -A –t $VIP:$Port-s rr
解释:-A表示添加一个集群服务(这里和NAT中的配置同样)
ipvsadm -a –t $VIP:$Port -r $DIP:$Port-g
解释:其它和NAT也差很少,在最后的模式改成-g,即DR模式
-s 指定服务采用的算法,经常使用的算法参数以下:
rr 轮叫(Round Robin)
调度器经过”轮叫”调度算法将外部请求按顺序轮流分配到集群中的真实服务器上,它均等地对待每一台服务 器,而无论服务器上实际的链接数和系统负载。
wrr 加权轮叫(Weighted Round Robin)
调度器经过”加权轮叫”调度算法根据真实服务器的不一样处理能力来调度访问请求。这样能够保证处理能力强的服务器处理更多的访问流量。调度器能够自动问询真实服务器的负载状况,并动态地调整其权值。
lc 最少连接(Least Connections)
调度器经过”最少链接”调度算法动态地将网络请求调度到已创建的连接数最少的服务器上。若是集群系统的真实服务器具备相近的系统性能,采用”最小链接”调度算法能够较好地均衡负载。
wlc 加权最少连接(Weighted Least Connections)
在集群系统中的服务器性能差别较大的状况下,调度器采用”加权最少连接”调度算法优化负载均衡性能,具备较高权值的服务器将承受较大比例的活动链接负载。调度器能够自动问询真实服务器的负载状况,并动态地调整其权值。
lblc 基于局部性的最少连接(Locality-Based Least Connections)
“基于局部性的最少连接”调度算法是针对目标IP地址的负载均衡,目前主要用于Cache集群系统。该算法根据请求的目标IP地址找出该目标IP地址最近使用的服务器,若该服务器是可用的且没有超载,将请求发送到该服务器;若服务器不存在,或者该服务器超载且有服务器处于一半的工做负载,则用”最少连接” 的原则选出一个可用的服务器,将请求发送到该服务器。
lblcr 带复制的基于局部性最少连接(Locality-Based Least Connections with Replication)
”带复制的基于局部性最少连接”调度算法也是针对目标IP地址的负载均衡,目前主要用于Cache集群系统。它与LBLC算法的不一样之处是它要维护从一个目标IP地址到一组服务器的映射,而LBLC算法维护从一个目标IP地址到一台服务器的映射。该算法根据请求的目标IP地址找出该目标IP地址对应的服务器组,按”最小链接”原则从服务器组中选出一台服务器,若服务器没有超载,将请求发送到该服务器,若服务器超载;则按”最小链接”原则从这个集群中选出一台服务器,将该服务器加入到服务器组中,将请求发送到该服务器。同时,当该服务器组有一段时间没有被修改,将最忙的服务器从服务器组中删除,以下降复制的程度。
dh 目标地址散列(Destination Hashing)
“目标地址散列”调度算法根据请求的目标IP地址,做为散列键(Hash Key)从静态分配的散列表找出对应的服务器,若该服务器是可用的且未超载,将请求发送到该服务器,不然返回空。
sh 源地址散列(Source Hashing)“源地址散列”调度算法根据请求的源IP地址,做为散列键(Hash Key)从静态分配的散列表找出对应的服务器,若该服务器是可用的且未超载,将请求发送到该服务器,不然返回空。