红联Linux门户
Linux帮助

Linux负载均衡

发布时间:2015-04-20 10:36:06来源:linux网站作者:janephp

一、负载均衡的主要技术

1、Cisco以太网通道(网络均衡)

2、WindowsNLB技术

3、LinuxLVS技术

4、F5等负载均衡器(服务均衡)


二、冗余技术

1、CsicoHSRP热备份路由

2、Windows集群技术

3、LinuxHA集群技术

4、IBMAIX集群

下面主要解释一下负载均衡、集群、主从的区别

1、负载均衡:把客户端的请求通过负载均衡算法分发到不同的正常运行的服务器来处理,从而减少单个服务器的压力。

2、集群:集群主要是为了解决单点故障,防止当一个服务器宕机无法提供服务的时候,可以迅速启动另一个服务器来代替工作,正常情况下一个集群里只有一个服务器是正常工作的。

3、主从:主从主要是实现数据同步的,正常情况下主从服务器都是正常工作的。

4、接下来的几天,会主要围绕这个话题来展开记录。


Lvs技术主要3种方式

1、nat(地址转换技术)

通过网络地址转换,lvs调度器重写请求报文的目标地址,根据设定的调度算法,将请求分派给后端的真实web服务器。真实服务器的相应报文通过调度器时源地址再次被重写,返回给客户端,完成负载调度过程。
 

client18.8.8.1 8.8.8.8-lvs-192.168.10.10 web1-192.168.10.1
client28.8.8.2 web2-192.168.10.2

这种方式,lvs需要2个网卡,左边为公网端口地址,右边为内网段,请求和相应都必须经过lvs的地址转换,所以有可能lvs会产生瓶颈。
#lvs nat服务配置
#开启路由管道
echo 1>/proc/sys/net/ipv4/ip_forward
#清除以前调度策略
ipvsadm -C
#增加一个算法为rr的调度算法
ipvasdm -At 8.8.8.8:80 -s rr
#轮询规则 -m为nat技术
ipvsadm -at 8.8.8.8:80 -r 192.168.10.2:80 -m
ipvsadm -at 8.8.8.8:80 -r 192.168.10.3:80 -m


2、ip-tun(ip隧道技术)
为了解决nat技术中lvs产生瓶颈的问题,lvs把请求报文通过IP隧道转发给真实web服务器,而真实服务器将响应直接返回给客户端,所以lvs只处理请求报文。而恰恰网络中的响应比请求报文大很多,所以隧道模式可以大大提高集群系统吞吐量。
client18.8.8.1 8.8.8.8-lvs-200.168.10.10 web1-200.168.10.1
client18.8.8.2 web2-200.168.10.2
这个要求web真是服务器的IP地址不能在是内网地址,而是公网IP。同时这个要求lvs服务器和web服务器都有一个支持隧道协议的网卡,才能工作,但不是多有服务器都有这个网卡的,这是一个很大的局限性。
#配置lvs隧道网卡
ifconfig tunl0 200.168.10.10 netmask 255.255.255.255 up
#添加路由
route add -host 200.168.10.10
ipvsadm -C
ipvsadm -A -t 200.168.10.10:80 -s rr
ipvsadm -a -t 200.168.10.10:80 -r 200.168.10.2 -i
ipvsadm -a -t 200.168.10.10:80 -r 200.168.10.3 -i

#配置web服务器
ifconfig tunl0 200.168.10.10 netmask 255.255.255.255 up
#添加路由
route add -host 200.168.10.10 dev tunl0
#添加广播忽略
echo 1>/proc/sys/net/ipv4/conf/tunl0/arp_ignore
echo 2>/proc/sys/net/ipv4/conf/tunl0/arp_announce
echo 1>/proc/sys/net/ipv4/conf/all/arp_ignore
echo 2>/proc/sys/net/ipv4/conf/all/arp_announce


3、dr技术(直接路由技术)
直接路由技术和隧道模式很像,但是他不用服务器必须有支持隧道协议的网卡,而是通过LOOPBACK接口即回环接口设置,来实现的。
client18.8.8.1 8.8.8.8-lvs-200.168.10.10 web1-200.168.10.1
client18.8.8.2 web2-200.168.10.2

#配置lvs
ifconfig eth0:0 200.168.10.10 netmask 255.255.255.255 up
#添加路由
route add -host 200.168.10.10 eth0:0
ipvsadm -C
ipvsadm -A -t 200.168.10.10:80 -s rr
ipvsadm -a -t 200.168.10.10:80 -r 200.168.10.2 -g
ipvsadm -a -t 200.168.10.10:80 -r 200.168.10.3 -g

#配置web服务器
ifconfig lo:0 200.168.10.10 netmask 255.255.255.255 up
#添加路由
route add -host 200.168.10.10 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