加入收藏 | 设为首页 | 会员中心 | 我要投稿 佛山站长网 (https://www.0757zz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 服务器 > 搭建环境 > Linux > 正文

Linux负载均衡:Lvs技术

发布时间:2016-11-01 03:14:58 所属栏目:Linux 来源:网络整理
导读:一、Lvs技术主要3种方式 1、nat(地址转换技术) 通过网络地址转换,lvs调度器重写请求报文的目标地址,根据设定的调度算法,将请求分派给后端的真实web服务器

一、Lvs技术主要3种方式

1、nat(地址转换技术)

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

Linux负载均衡:Lvs技术

这种方式,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只处理请求报文。而恰恰网络中的响应比请求报文大很多,所以隧道模式可以大大提高集群系统吞吐量。

Linux负载均衡:Lvs技术

这个要求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接口即回环接口设置,来实现的。

Linux负载均衡:Lvs技术

#配置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

查看本栏目更多精彩内容:http://www.bianceng.cn/OS/Linux/

(编辑:佛山站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    热点阅读