LVSロードバランス

LVS是Linux Virtual Server的简写即Linux虚拟服务器是一个虚拟的服务器集群系统使用LVS负载均衡可以实现服务器的高性能和高可用性防止业务以外中断而造成损失
LVS分为NAT,IP TUN,DR三种模式我们会重点介绍最先进的DR模式
NAT模式
以下に示すように:

图中client是发起请求方lvs server是LVS调度器负责分配请求左侧网卡eth0配置VIP,即客户端请求的目的IP, 右侧网卡eth1配置的是内网IPweb01和web02是两台真实的服务器负责将处理结果返回该客户端

过程如下client发起请求访问VIP,这时lvs server的eth0网卡接受请求通过某种均衡算法通过eth1网卡和交换机将请求丢给web01或者web02 , web01或web02将请求通过交换机和eth1网卡发给lvs serverlvs server经NAT地址转换方式通过eth0网卡发出最后结果返回给client . client再次请求重复以上步骤

可以看出NAT方式不管接受请求还是返回结果数据必经lvs server.
若客户请求太多那么lvs server的流量将会很大我们知道服务器上传量远大于下载量lvs server的流量主要是返回的结果, 所以lvs server将会成为瓶颈

DR模式
如果让web01和web02将结果直接返回给client而不经过lvs server ,那么系统性能会大幅提高DR正是运用这种思想可将吞吐量提高10倍!

以下に示すように:

 

 

配置情况
client配置200.168.10.4 ; lvs server eth0上配置200.168.10.1 ,eth0:0上配置200.168.10.10; web01和web02的eth0网卡上分别配置200.168.10.2和200.168.10.3
web01和web02的lo(回环口)上都配置200.168.10.10

过程
假设网站域名是www.abc.com ,经过DNS解析后IP地址是200.168.10.10 ,也就是本架构中配置的VIP客户端访问200.168.10.10先经过lvs server调度(由于web01和web02设置了arp忽略因此不会回应200.168.10.10的MAC)通过一定算法将负载分配给web01和web02 ,实现负载均衡
上の写真では:两台web服务器的eth0网卡配置真实的IP在回环lo网卡上配置VIP.
由于回环口不具有MAC地址因此当客户端访问200.168.10.10发送arp请求时只有lvs server返回自己的MAC . 接着lvs server通过均衡算法将请求分配给web01或web02. 当有arp询问web01或web02的MAC地址时由于在eth0没有做arp忽略因此web01或web02必定返回MACweb01或web02通过设置的网关将处理好的结果经VIP返回给客户端下次客户端访问VIP时重复以上步骤

lvs server安装ipvsadm
执行yum install ipvsadm
接着执行ipvsadm
ipvsadm –C #清除以前的ipvsadm配置
ipvsadm –At 200.168.10.10:80 –s rr #接受访问VIP80端口连接采用轮询算法
ipvsadm –at 200.168.10.10:80 –r 200.168.10.2:80 #将请求转发给web01
ipvsadm –at 200.168.10.10:80 –r 200.168.10.3:80 #将请求转发给web02
ipvsadm –l –n #以数字方式显示虚拟服务器列表

ifconfig eth0 200.168.10.1 ネットマスク 255.255.255.0
ifconfig eth0:0 200.168.10.10 ネットマスク 255.255.255.255
route add –host 200.168.10.10 dev eth0 #添加一条路由到达IP 200.168.10.10
web01上配置
设置IP地址和添加路由
ifconfig eth0 200.168.10.2 ネットマスク 255.255.255.0
ifconfig lo:0 200.168.10.10 ネットマスク 255.255.255.255 アップ
route add –host 200.168.10.10 dev lo:0
设置arp忽略和arp宣告
エコー 1 >/proc/sys/net/ipv4/conf/lo/arp_ignore
エコー 2 >/proc/sys/net/ipv4/conf/lo/arp_announce
エコー 1 >/proc/sys/net/ipv4/conf/all/arp_ignore
エコー 2 >/proc/sys/net/ipv4/conf/all/arp_announce

web02上配置
设置IP地址和添加路由
ifconfig eth0 200.168.10.3 ネットマスク 255.255.255.0
ifconfig lo:0 200.168.10.10 ネットマスク 255.255.255.255
route add default –host 200.168.10.10 dev lo:0
设置arp忽略和arp宣告
エコー 1 >/proc/sys/net/ipv4/conf/lo/arp_ignore
エコー 2 >/proc/sys/net/ipv4/conf/lo/arp_announce
エコー 1 >/proc/sys/net/ipv4/conf/all/arp_ignore
エコー 2 >/proc/sys/net/ipv4/conf/all/arp_announce

接着web01和web02上安装web服务开启80端口
设置web01的主页为200.168.10.2we02的主页为200.168.10.3

最后在客户端浏览器上输入200.168.10.10
第一次访问

刷新以后

不断刷新这两个页面循环出现负载均衡实现
IP TUN模式将DR模式中的eth0:0 ,lo回环口都换成tun网卡形成ip隧道模式然后再在所有tun上配置VIP即可不过不是所有的服务器都支持tun网卡因此这种方法很有局限性

返信を残します