澳门皇冠金沙网站-澳门皇冠844网站

热门关键词: 澳门皇冠金沙网站,澳门皇冠844网站

LVS实现负载均衡详解,负载均衡集群企业级应用

LVS理论基础

1、LVS的优势
高并发能力强  LVS基于内核网络层工作,有着超强的并发处理能力,单台LVS可以承受上万的并发连接。
稳定性高    LVS是基于4层的负载均衡软件,因此LVS在所有负载均衡软件中性能最强,稳定性最高,消耗CPU和内存少。
应用范围广  LVS是工作在4层,所以它可以对应用层的所有协议作负载均衡,包括http、DNS、ftp等。
2、LVS的组件
ipvsadm LVS已经集成于内核中,用户是无法直接操作内核空间的程序的,因此需要一个用户空间的管理工具,ipvsadm就是一个用户空间的命令行工具,用于管理集群。
ipvs   工作于内核netfilter INIPUT钩子上的一个程序,并且根据ipvsadm定义的规则实现请求的转发。
查看Linux内核是否支持ipvs:

`grep -i -C 10 --color=auto ipvs  /boot/config-2.6.32-696.el6.x86_64`

3、LVS的工作流程
皇冠国际娱乐app 1
1、用户请求的数据包到达负载均衡器的内核空间,首先经过的是内核的PREROUTING链,
2、因为请求的数据包的目的地址一定是本机,然后将数据包送到INPUT链,
3、ipvs就工作在INPUT链上,ipvs利用ipvsadm定义的规则工作,ipvs对数据包进行检查,如果目的地址和端口不在规则里边,则将数据包送往用户空间,
4、如果目的地址和端口在规则里边,则将数据包的目的地址和端口修改为后端真实服务器,然后将修改后的数据包送往POSTROUTING链,
5、最后经过POSTROUTING链将数据包转发给后端服务器。
4、LVS的工作模式
NAT ①客户端发送数据包至负载均衡器,数据包的源IP是CIP,目的IP是VIP。数据包首先到达的是内核空间的PREROUTING链,②PREROUTING链判断目的IP是VIP,确定VIP是本地IP,然后将其送往INPUT链。③INPUT链上的ipvs将数据包的目的IP修改为RIP,然后发送给POSTROUTING链。④POSTROUTING链将数据包发送至后端服务器处理。⑤处理完之后,以源IP为RIP,目的IP为CIP的响应数据包返回给负载均衡器,⑥LVS收到之后再次修改数据包的IP地址,将数据包的源IP修改为VIP,目的IP保持不变仍为CIP,然后发往客户端。
皇冠国际娱乐app 2
NAT工作模式中,请求的流量和回应的流量都必须经过前端的调度器,一次调度器成为了整个服务器集群的瓶颈,一旦调度器宕机,则整个集群将出去瘫痪状态,因此就出现了DR工作模式。
DR Direct Routing,①客户端发送数据包至负载均衡器,数据包的源IP是CIP,目的IP是VIP。数据包首先到达的是内核空间的PREROUTING链,②PREROUTING链判断目的IP是VIP,确定VIP是本地IP,然后将其送往INPUT链。③ipvs将数据包通过DIP的网卡发送给POSTROUTING链,其中源MAC自动修改为DIP的MAC(因为从DIP的网卡发送出去的),并且将目的MAC修改为RIP的MAC,源IP和目的IP保持不变,④POSTROUTING链将数据包发送给交换机,交换机根据RIP的MAC地址将数据包送往指定的后端服务器,⑤处理外后将数据包通过lo接口转发至eth0接口,由eth0将数据包发送出去,此时数据包的源IP和MAC是VIP:VIP的MAC,目的IP和MAC是CIP:CIP的MAC,⑥响应数据包最终交付给客户端。
皇冠国际娱乐app 3
DR工作模式的特点:因为DR工作模式是根据MAC进行数据包转发,因此RS跟负载均衡器必须在同一个局域网(广播域)中;所有的请求报文都经过负载均衡器,所有的响应报文不经过负载均衡器;因为DR工作模式的响应报文是RS直接回应的,因此负载均衡器和RS必须都配置同一个VIP地址,RS的lo接口配置VIP,这样一来同一个局域网会有多个相同的IP,在进行ARP广播的时候会出现紊乱,这时需要通过修改RS的内核参数从而阻止RS对ARP广播进行回应,这样只有负载均衡器对VIP的ARP请求进行回应;由于DR工作模式仅需要分析数据包的MAC首部,因此DR的处理能力特别高,拥有和硬件负载均衡设备相媲美的网络吞吐和负载均衡能力。
TUN ①客户端发送请求至负载均衡器,该数据包的源IP是CIP,目的IP是VIP,②LVS收到数据包后,将该数据包的首部再封装一层IP首部,其中源IP为DIP,目的IP为RIP,将重整后的数据包送往后端服务器,③RS两次处理该数据包,将响应数据包通过lo接口送往eth0接口,然后直接发送给客户端。
皇冠国际娱乐app 4
其中NAT和DR调度算法必须保证调度器和RS在同一个局域网中,也就是他们无法跨网段通信,而TUN调度算法则可以使得调度器和RS在不同的局域网中。
另外,通过对NAT工作模式进行改进,可以使得其跨网段通信,改进之后的工作模式为fullnat模式。工作流程和原理如图所示,
皇冠国际娱乐app 5
5、LVS的调度算法
1、轮询(rr)
请求按顺序轮流分配到后端服务器上,后端每台服务器接受请求的概率是一样的。
2、加权轮询(wrr)
LVS根据后端服务器的处理能力给后端每台服务器设置权值。LVS可以自动询问真实服务器的负载情况,然后动态的调整权值,权值大的收到请求的概率大。
3、目标地址散列(dh)
根据请求的目标IP地址,得出hash值,进而找出对应的服务器,这种调度算法适用于缓存服务器的负载均衡。
4、源地址散列(sh)
根据请求的源IP地址,得出hash值,进而找出对应的服务器,这种调度算法适用于session共享的情况。
5、最少连接(lc)
动态地将请求调度到后端连接数最少的服务器上。这种调度算法适用于后端每台服务器性能相近的情况下。
6、加权最少连接(默认)(wlc)
LVS动态调整后端服务器的权值,权值大的将承受较大比例的活动连接负载。
7、最短延迟调度(sed)
8、永不排队/最少队列调度(nq)

实战一:LVS的NAT模式实现负载均衡

实战架构图:

皇冠国际娱乐app 6

1、环境准备:

机器名称

lvs-server

rs01

rs02

注意:确保rs 在一个网段,且只有一个网段

 

2、在directory 负载均衡器上

yum -y install ipvsadm

① 开启一个基于80端口的虚拟服务vip,调度方式为wrr

ipvsadm -A -t 172.17.1.6:80 -s wrr

② 配置web服务后端real server  为nat工作方式  权重为1

ipvsadm -a -t 172.17.1.6:80 -r 192.168.30.107:80 -m -w 1

ipvsadm -a -t 172.17.1.6:80 -r 192.168.30.7:80 -m -w 1

③ 修改内核配置,开启路由转发

vim /etc/sysctl.conf 该一行

net.ipv4.ip_forward = 1

 

sysctl -p 读一些,使其生效

 

3、在两台real server 上设置

① 开启实现准备好的web网页服务

systemctl start nginx

systemctl start php-mysql

systemctl start mariadb

 

② 把网关指向directory

route add default gw 192.168.30.106

 

4、自己的windows 做客户端,通过vip 172.17.1.6访问web服务,调度成功

皇冠国际娱乐app 7

 

 

负载均衡技术演示图

皇冠国际娱乐app 8

 lvs是实现负载均衡技术的一种,下面来介绍一下lvs

实验

LVS-DR模型
环境拓扑:

主机 IP 功能
LVS 192.168.239.250 调度器
Web1 192.168.239.129 RS
Web2 192.168.239.133 RS

前端负载均衡器的配置:

# 配置VIP至网卡别名
[root@LVS ~]# ifconfig eth0:0 192.168.239.250  netmask 255.255.255.0 up
# 定义LVS规则
[root@LVS ~]# ipvsadm -A -t 192.168.239.250:80 -s wrr
[root@LVS ~]# ipvsadm -a -t 192.168.239.250:80 -r 192.168.239.129:80 -g -w 1
[root@LVS ~]# ipvsadm -a -t 192.168.239.250:80 -r 192.168.239.133:80 -g -w 2
[root@LVS ~]# ipvsadm -ln
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port Scheduler Flags
  -> RemoteAddress:Port          Forward Weight ActiveConn InActConn
TCP  192.168.239.250:80 wrr
  -> 192.168.239.129:80          Route  1      0          0       
  -> 192.168.239.133:80          Route  2      0          0

后端RS的配置(两台RS的配置过程一样,下面仅以Web1为例):

[root@Web1 web]# ifconfig lo:0 192.168.239.250 broadcast 192.168.239.250 netmask 255.255.255.255 up
[root@Web1 web]# route add -host 192.168.239.250 dev lo:0
# 抑制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

上面的配置过程中有几个问题要说明:
① 把VIP绑定至RS的lo回环接口上边,并且广播地址为自身和子网掩码为4个255,这样做是为了防止VIP冲突。
② 关于arp_ignore和arp_announce两个内核参数的意义,请参考ARP抑制
然后在两台RS上边部署Nginx的Web环境,分别往首页写入静态内容
This is Web1
This is Web2
然后在浏览器的地址列中输入VIP--192.168.239.250,刷新页面,页面内容能够实现调转说明负载均衡功能实现。
皇冠国际娱乐app 9
皇冠国际娱乐app 10
LVS-NAT模型
环境拓扑

主机 IP 功能
LVS VIP:192.168.0.105 调度器
LVS DIP:192.168.239.130 调度器
Web1 192.168.239.129 RS
Web2 192.168.239.133 RS

前端负载均衡配置:
皇冠国际娱乐app 11

[root@LVS ~]# ipvsadm -A -t 192.168.0.105:80 -s wrr
[root@LVS ~]# ipvsadm -a -t 192.168.0.105:80 -r 192.168.239.129:80 -m -w 1
[root@LVS ~]# ipvsadm -a -t 192.168.0.105:80 -r 192.168.239.133:80 -m -w 2
# 这样ipvs的规则已经定义完成
# 因为NAT工作模式涉及到地址转换,因此需要修改内核的ip_forward参数
[root@LVS ~]# vim /etc/sysctl.conf
net.ipv4.ip_forward = 1
# 修改完成之后使其生效
[root@LVS ~]# sysctl -p

后端RS的配置:

# 因为NAT的工作模式中,请求数据和回应数据都需要经过调度器,因此需要将后端服务器的默认网关指向调度器的DIP
[root@Web1 ~]# route add default -gw 192.168.239.130
[root@Web2 ~]# route add default -gw 192.168.239.130

测试:
分别配置RS的web服务器,我这里将html文本内容作为后端RS的web内容,

[root@Web1 ~]# curl localhost
This is web1
[root@Web2 ~]# curl localhost
This is web2

然后访问调度的VIP,查看返回的web内容,出现如下图的效果说明负载均衡已经实现。
皇冠国际娱乐app 12

二、lvs 的介绍

1、lvs

(1)LVS是Linux Virtual Server的简称,也就是Linux虚拟服务器, 是一个由章文嵩博士发起的自由软件项目,它的官方站点是www.linuxvirtualserver.org。现在LVS已经是 Linux标准内核的一部分,在Linux2.4内核以前,使用LVS时必须要重新编译内核以支持LVS功能模块,但是从Linux2.4内核以后,已经完全内置了LVS的各个功能模块,无需给内核打任何补丁,可以直接使用LVS提供的各种功能。

(2)LVS自从1998年开始,发展到现在已经是一个比较成熟的技术项目了。可以利用LVS技术实现高可伸缩的、高可用的网络服务,例如WWW服务、Cache服务、DNS服务、FTP服务、MAIL服务、视频/音频点播服务等等,有许多比较著名网站和组织都在使用LVS架设的集群系统,例如:Linux的门户网站(www.linux.com)、向RealPlayer提供音频视频服务而闻名的Real公司(www.real.com)、全球最大的开源网站(sourceforge.net)等。

(3)LVS软件作用:通过LVS提供的负载均衡技术和Linux操作系统实现一个高性能、高可用的服务器群集,它具有良好可靠性、可扩展性和可操作性。从而以低廉的成本实现最优的服务性能。

 

2、优缺点:

高并发连接:LVS基于内核网络层面工作,有超强的承载能力和并发处理能力。单台LVS负载均衡器,可支持上万并发连接。

稳定性强:是工作在网络4层之上仅作分发之用,这个特点也决定了它在负载均衡软件里的性能最强,稳定性最好,对内存和cpu资源消耗极低。

成本低廉:硬件负载均衡器少则十几万,多则几十万上百万,LVS只需一台服务器和就能免费部署使用,性价比极高。

配置简单:LVS配置非常简单,仅需几行命令即可完成配置,也可写成脚本进行管理。

支持多种算法:支持多种论调算法,可根据业务场景灵活调配进行使用

支持多种工作模型:可根据业务场景,使用不同的工作模式来解决生产环境请求处理问题。

应用范围广:因为LVS工作在4层,所以它几乎可以对所有应用做负载均衡,包括http、数据库、DNS、ftp服务等等

缺点:工作在4层,不支持7层规则修改,机制过于庞大,不适合小规模应用。

 

3、LVS 核心组件和专业术语

(1)核心组件

LVS的管理工具和内核模块ipvsadm/ipvs

ipvsadm:用户空间的命令行工具,用于管理集群服务及集群服务上的RS等;

ipvs:工作于内核上的netfilter INPUT钩子之上的程序,可根据用户定义的集群实现请求转发;

(2)专业术语

VS:Virtual Server   #虚拟服务

Director, Balancer    #负载均衡器、分发器

RS:Real Server   #后端请求处理服务器 

CIP: Client IP    #用户端IP

VIP:Director Virtual IP   #负载均衡器虚拟IP

DIP:Director IP   #负载均衡器IP

RIP:Real Server IP #后端请求处理服务器IP

 

(3)图解

皇冠国际娱乐app 13

4、LVS工作内核模型及工作模式

① 当客户端的请求到达负载均衡器的内核空间时,首先会到达PREROUTING链。

② 当内核发现请求数据包的目的地址是本机时,将数据包送往INPUT链。

③ LVS由用户空间的ipvsadm和内核空间的IPVS组成,ipvsadm用来定义规则,IPVS利用ipvsadm定义的规则工作,IPVS工作在INPUT链上,当数据包到达INPUT链时,首先会被IPVS检查,如果数据包里面的目的地址及端口没有在规则里面,那么这条数据包将被放行至用户空间。

④ 如果数据包里面的目的地址及端口在规则里面,那么这条数据报文将被修改目的地址为事先定义好的后端服务器,并送往POSTROUTING链。

⑤ 最后经由POSTROUTING链发往后端服务器。

图解

皇冠国际娱乐app 14

 

一,在DR负载均衡器上

1.yum install ipvsadm -y

2.grep -i -C 10 "ipvs" /boot/config-VERSION-RELEASE.x86_64,#查看内核是否支持ipvs模块

3.iptables -F ;setenf orce 0清空防火墙策略,关闭selinux策略

4.ifconfig ens33:0 172.17.253.100 broadcast 172.17.253.100 netmask 255.255.255.255 up #配置VIP到本地网卡别名ens33:0上(vip地址可以是随意的),并且只广播自己,否则,将来会和后端服务器上回环网卡上配置的vip冲突,所以在后端服务器上配置的vip也只广播自己

5.route add -host 172.17.253.100 dev ens33:0 #配置vip路由

6.ipvsadm -A -t 172.17.253.100:80 -s wrr #开启一个基于80端口的虚拟web服务,调度方式为wrr

7.ipvsadm -a -t 172.17.253.100:80 -r 172.17.253.132:80 -g -w 1 #配置web服务后端real server 为DR工作方式 权重为1

ipvsadm -a -t 172.17.253.100:80 -r 172.17.253.253:80 -g -w 1

8.修改内核配置,开启路由转发

vim /etc/sysctl.conf

net.ipv4.ip_forward=1

sysctl -p 使修改的内核配置参数生效

LVS持久连接

HTTP协议是一种无状态的协议,即每次发送请求之后就会马上断开连接。假如这种无状态的协议运用在LVS负载均衡中,就会出现这样的情况,以购物网站为例子,用户浏览一商品并加入购物车,这时候请求被送往RS1,然后就断开连接,之后用户又浏览一商品并加入购物车,这时候请求又被送往RS2,这样用户再次访问购物车的时候,反馈给用户的信息是购物车里只有一件商品(假如请求被调度到RS1或RS2的其中一台),这样肯定是不行的。
解决这种问题的办法是可以利用源地址hash调度算法,当然还可以利用LVS的持久连接。

# 基于上面例子中的NAT模型试验,为其增加持久连接
[root@LVS ~]# ipvsadm -E -t 192.168.0.105:80  -s wrr -p

皇冠国际娱乐app 15
现在规划这样一个场景,客户通过访问VIP发来http请求,需要将80端口的请求和8080端口的请求在一定时间范围内调度到后端同一台服务器上,就是端口联姻。完成这样的需求需要借助防火墙的标记持久连接。为了看到测试的效果,规划这样的环境拓扑:

主机 IP 备注(或html页面内容)
LVS VIP:192.168.0.105 调度器(NAT)
LVS DIP:192.168.239.130 调度器(NAT)
Web1 192.168.239.129:80 This is web1 with 80
Web1 192.168.239.129:8080 This is web1 with 8080
Web2 192.168.239.133:80 This is web2 with 80
Web2 192.168.239.133:8080 This is web2 with 8080

前端调度器的配置:

# 在防火墙上将VIP的80端口请求和8080端口请求都标记为100
[root@LVS ~]# iptables -F
[root@LVS ~]# iptables -t mangle -A PREROUTING -d 192.168.0.105 -p tcp --dport 80 -j MARK --set-mark 100
[root@LVS ~]# iptables -t mangle -A PREROUTING -d 192.168.0.105 -p tcp --dport 8080 -j MARK --set-mark 100
#365bet体育皇冠, 利用标记添加ipvs规则(借助ipvsadm命令的-f选项)
[root@LVS ~]# ipvsadm -C
[root@LVS ~]# ipvsadm -A -f 100 -s wrr -p
[root@LVS ~]# ipvsadm -a -f 100 -r 192.168.239.129 -m -w 1
[root@LVS ~]# ipvsadm -a -f 100 -r 192.168.239.133 -m -w 2

后端RS的配置:

# 开通后端服务器的80端口和8080端口的服务,然后他们各自的访问内容分别如下
[root@Web1 ~]# curl
This is web1 with 80
[root@Web1 ~]# curl
This is web1 with 8080
[root@Web2 ~]# curl
This is web2 with 80
[root@Web2 ~]# curl
This is web2 with 8080
# 因为是NAT的工作模式,因此需要将后端RS的网关指向DIP
[root@Web1 ~]# route add default gw 192.168.239.130
[root@Web2 ~]# route add default gw 192.168.239.130

最后访问VIP的80端口和8080端口,发现请求都会被调度到同一台RS上。
皇冠国际娱乐app 16

实战二:LVS的DR 模式实现负载均衡

实战架构图:

皇冠国际娱乐app 17

1、环境准备

机器名称

lvs-server

rs01

rs02

注意:lvs-server 和rs 要在一个网段,rs只有一个网段

皇冠国际娱乐app, 

2、在lvs-server 上设置

① 配置VIP到本地网卡别名,广播只自己响应

ifconfig eth0:0 172.17.100.100 broadcast 172.17.100.100 netmask 255.255.255.255 up

route add -host 172.17.100.100 dev eth0:0 给网卡别名指向网关

 

② ipvsadm 策略配置

开启一个基于80端口的虚拟服务,调度方式为wrr

ipvsadm -A -t 172.17.100.100:80 -s wrr

配置web服务后端real server  为DR工作方式  权重为1

ipvsadm -a -t 172.17.100.100:80 -r 172.17.22.22:80 -g -w 1

ipvsadm -a -t 172.17.100.100:80 -r 172.17.1.6:80 -g -w 1

 

3、real server 上配置

配置VIP到本地回环网卡lo上,并只广播自己

ifconfig lo:0 172.17.100.100 broadcast 172.17.100.100 netmask 255.255.255.255 up

配置本地回环网卡路由

route add -host 172.17.100.100 lo:0

 

② 使RS "闭嘴"

echo "1" > /proc/sys/net/ipv4/conf/lo/arp_ignore

echo "2" > /proc/sys/net/ipv4/conf/lo/arp_announce

忽略ARP广播

echo "1" > /proc/sys/net/ipv4/conf/all/arp_ignore

echo "2" > /proc/sys/net/ipv4/conf/all/arp_announce

注意:关闭arp应答

1:仅在请求的目标IP配置在本地主机的接收到请求报文的接口上时,才给予响应

2:必须避免将接口信息向非本网络进行通告

 

③ 想永久生效,可以写到配置文件中

vim /etc/sysctl.conf

net.ipv4.conf.lo.arp_ignore = 1

net.ipv4.conf.lo.arp_announce = 2

net.ipv4.conf.all.arp_ignore = 1

net.ipv4.conf.all.arp_announce = 2

 

sysctl -p 读一下,使其生效

 

4、开启实现准备好的web网页服务

systemctl start nginx

systemctl start php-mysql

systemctl start mariadb

 

5、效果验证

① 可分别在rs1和rs2建立2个不同内容,统一路径的test.html测试文件,测试负载均衡功能

在RS01 上vim ../test.html

real server 1

在RS01 上vim ../test.html

real server 1

② 打开 ,并在director上用ipvsadm -L -n观察访问连接

皇冠国际娱乐app 18

③ 用另外一台测试机,用ab压力测试工具,测试经过负载均衡后的服务器容量

 

 

背景

目录

  • LVS理论基础
  • ipvsadm命令
  • DR和NAT实验
  • LVS持久连接
  • LVS健康监测

一、负载均衡集群介绍

1、集群

① 集群(cluster)技术是一种较新的技术,通过集群技术,可以在付出较低成本的情况下获得在性能、可靠性、灵活性方面的相对较高的收益,其任务调度则是集群系统中的核心技术。

② 集群是一组相互独立的、通过高速网络互联的计算机,它们构成了一个组,并以单一系统的模式加以管理。一个客户与集群相互作用时,集群像是一个独立的服务器。

③ 集群组成后,可以利用多个计算机和组合进行海量请求处理(负载均衡),从而获得很高的处理效率,也可以用多个计算机做备份(高可用),使得任何一个机器坏了整个系统还是能正常运行。集群在目前互联网公司是必备的技术,极大提高互联网业务的可用性和可缩放性。

 

2、负载均衡集群技术

① 负载均衡(Load Balance):负载均衡集群为企业需求提供了可解决容量问题的有效方案。负载均衡集群使负载可以在计算机集群中尽可能平均地分摊处理

② 负载通常包括应用程序处理负载和网络流量负载。这样的系统非常适合向使用同一组应用程序的大量用户提供服务。每个节点都可以承担一定的处理负载,并且可以实现处理负载在节点之间的动态分配,以实现负载均衡。对于网络流量负载,当网络服务程序接受了高入网流量,以致无法迅速处理,这时,网络流量就会发送给在其它节点上运行的网络服务程序。也可根据服务器的承载能力,进行服务请求的分发,从而使用户的请求得到更快速的处理。

 

3、负载均衡集群技术的实现

负载均衡(Load Balance)

负载均衡技术类型:基于4层负载均衡技术和基于7层负载均衡技术

负载均衡实现方式:硬件负载均衡设备或者软件负载均衡

硬件负载均衡产品:F5 BIG-IP 、Citrix Netscaler  、深信服 、Array 、Radware

软件负载均衡产品: LVS(Linux Virtual Server)、 Haproxy、Nginx、Ats(apache traffic server)

 

4、图示

皇冠国际娱乐app 19

 

 

LVS负载均衡DR工作流程

(a) 当用户请求到达Director Server,此时请求的数据报文会先到内核空间的PREROUTING链。 此时报文的源IP为CIP,目标IP为VIP

(b) PREROUTING检查发现数据包的目标IP是本机,将数据包送至INPUT链

(c) IPVS比对数据包请求的服务是否为集群服务,若是,将请求报文中的源MAC地址修改为DIP的MAC地址,将目标MAC地址修改RIP的MAC地址,然后将数据包发至POSTROUTING链。 此时的源IP和目的IP均未修改,仅修改了源MAC地址为DIP的MAC地址,目标MAC地址为RIP的MAC地址

(d) 由于DS和RS在同一个网络中,所以是通过二层来传输。POSTROUTING链检查目标MAC地址为RIP的MAC地址,那么此时数据包将会发至Real Server。

(e) RS发现请求报文的MAC地址是自己的MAC地址,就接收此报文。处理完成之后,将响应报文通过lo接口传送给eth0网卡然后向外发出。 此时的源IP地址为VIP,目标IP为CIP

(f) 响应报文最终送达至客户端

LVS健康监测

LVS本身是无法监测后端服务器的状态的,即使后端某台服务器宕机,LVS还是会把请求调度到这台宕机的服务器上边,这样用户就会无法得到响应,这对用户的体验是极差的。因此为LVS加入了后端服务器健康状态检测机制,只有后端正常的服务器才会接受请求。
这里引入一个新的软件包ldirectord,这个软件包会为系统开启一个名叫ldirectord的守护进程,该进程专门用来管理ipvs的规则。该软件的rpm包下载地址如下:
ldirectord-3.9.6(CentOS6)下载
下载完成之后完成安装即可。安装命令如下:

[root@LVS ~]# yum -y localinstall ldirectord-3.9.6-0rc1.1.1.x86_64.rpm

ldirectord软件包的主配置文件为
  /etc/ha.d/ldirectord.cf
其中软件包中会默认提供一个主配置文件的模板文件供参考,它是
  /usr/share/doc/ldirectord-3.9.6/ldirectord.cf
以实验的LVS-DR模型的环境拓扑为例,这里使用ldirectord定义ipvs的规则,而不再使用ipvsadm命令。ldirectord的主配置文件的主要参数与其意义如下:

checktimeout=5      # 超时时间
checkinterval=1      # 两次检查的时间间隔
autoreload=yes      # 如果ldirectord的配置文件更新,是否主动重读配置文件
logfile="/var/log/ldirectord.log"    # 定义日志文件
quiescent=no        # 当后端某台服务器故障的时候,yes表示将节点的权值降为0,no表示将节点剔除ipvs的规则,当恢复正常后自动恢复值ipvs规则中
virtual=192.168.239.250:80  # 虚拟IP:port
    real=192.168.239.129:80 gate 1  # RS的IP:port <工作模式> [权值]
    real=192.168.239.133:80 gate 2
    service=http
    scheduler=wrr    # 调度算法
    #persistent=600
    protocol=tcp
# ldirectord实际上是根据下面参数来具体地监控RS是否正常
    checktype=negotiate  # ldirectord进程监控RS的方法
    checkport=80            # 监控的Port
    request="check.html" # 监控的文件
    receive="This web is OK" # 监控的文件内容

VIP的设置和后端服务器的ARP抑制的相关操作请参考实验的LVS-DR模型,这里不再重写。
在后端的服务器的web根目录下放入监控的文件

[root@Web1 web]# pwd
/data/web
[root@Web1 web]# cat check.html
This web is OK
[root@Web2 web]# pwd
/data/web
[root@Web2 web]# cat check.html
This web is OK

开启ldirectord进程,ipvsadm查看ipvs规则如下
皇冠国际娱乐app 20
现在将后端Web1的监控的页面内容改成其他内容,再次查看ipvs规则,结果如下图。

[root@Web1 web]# pwd
/data/web
[root@Web1 web]# cat check.html
This web is Down

皇冠国际娱乐app 21

Linux公社的RSS地址:

本文永久更新链接地址

皇冠国际娱乐app 22

负载均衡集群企业级应用实战—LVS,企业级lvs

一.在DR负载均衡器配置

1.yum install ipvsadm -y

2.grep -i -C 10 "ipvs" /boot/config-VERSION-RELEASE.x86_64,#查看内核是否支持ipvs模块

3.iptables -F ;setenf orce 0清空防火墙策略,关闭selinux策略

4.ipvsadm -A -t 172.17.253.132:80 -s wrr #开启一个基于80端口的虚拟web服务,调度算法为wrr

5.ipvsadm -a -t 172.17.253.132:80 -r 192.168.10.188:80 -m -w1 #配置web服务后端服务器为nat工作方式,权重为1

ipvsadm -a -t 172.17.253.132:80 -r 192.168.10.189:80 -m -w1

6.修改内核配置,开启路由转发

vim /etc/sysctl.conf

net.ipv4.ip_forward=1

sysctl -p 使修改的内和配置参数生效

LVS是Linux Virtual Server的简称,即Linux虚拟服务器。从Linux内核2.4版本之后,已经将LVS内置于内核中,提供负载均衡技术。

实战三:实现80、443端口都可访问服务,且LVS实现持久连接

1、环境准备

机器名称

lvs-server

rs01

rs02

 

2、在vs 上设置:

① 在iptables 打上标记,把80端口标记为99

iptables -t mangle -A PREROUTING -d 172.17.100.100 -p tcp --dport 80 -j MARK --set-mark 99

在iptables打上标记,把443端口标记为99

iptables -t mangle -A PREROUTING -d 172.17.100.100-p tcp --dport 443 -j MARK --set-mark 99

 

② 在lvs上建立基于99号标记的虚拟服务

ipvsadm -A -f 99 -s rr -p

设置后端服务地址,用DR模式

ipvsadm -a -f 99 -r 172.17.1.7 -g

ipvsadm -a -f 99 -r 172.17.22.22 -g

解析:-p 就是持久连接

 

3、在rs 准备好了的web服务,开启80、443端口

关于ssl 443 加密的设置

皇冠国际娱乐app 23

 

4、测试,自己windows 做客户端,访问

皇冠国际娱乐app 24

访问

皇冠国际娱乐app 25

 

一、负载均衡集群介绍 1、集群 ①集群(cluster)技术是一种较新的技术,通过集群技术,可...

LVS特性

高并发连接:LVS基于内核网络层面工作,有超强的承载能力和并发处理能力。单台LVS负载均衡器,可支持上万并发连接。稳定性强:是工作在网络4层之上仅作分发之用,这个特点也决定了它在负载均衡软件里的性能最强,稳定性最好,对内存和cpu资源消耗极低。

成本低廉:硬件负载均衡器少则十几万,多则几十万上百万,LVS只需一台服务器和就能免费部署使用,性价比极高。

配置简单:LVS配置非常简单,仅需几行命令即可完成配置,也可写成脚本进行管理。

支持多种算法:支持多种论调算法,可根据业务场景灵活调配进行使用

支持多种工作模型:可根据业务场景,使用不同的工作模式来解决生产环境请求处理问题。

应用范围广:因为LVS工作在4层,所以它几乎可以对所有应用做负载均衡,包括http、数据库、DNS、ftp服务等等

缺点:工作在4层,不支持7层规则修改,机制过于庞大,不适合小规模应用。

ipvsadm命令

ipvs是集成与内核空间的,用户无法直接操作,因此需要借助管理工具ipvsadm,通过定义规则使得ipvs工作,类似于iptables。同样该工具可以借助yum安装和源码安装。
常用选项:
-A --add-server 新加一条虚拟服务器记录
-E --edit-server 编辑虚拟服务器记录
-D --delete-server 删除一条虚拟服务器记录
-C --clear   清空所有的虚拟服务器记录
-S --save   保存虚拟服务器规则
-R --restore  恢复虚拟服务器规则,从-S保存的规则中恢复
-t --tcp-service 表示tcp服务,指虚拟服务器
-u --udp-service 表示udp服务,指虚拟服务器
-s --schedule 使用的调度算法
  rr|wrr|lc|wlc|lblc|lblcr|dh|sh|sed|nq  the default scheduler is wlc
-p  代表持久连接
-f  代表防火墙的标记
例子:
  ipvsadm -A -t 192.168.239.129:80 -s wlc
  ipvsadm -E -t 192.168.239.129:80 -s rr
  ipvsadm -S > /etc/sysconfig/ipvsadm
  ipvsadm -R < /etc/sysconfig/ipvsadm
-a 添加一条新的真实主机记录
-r 添加真实主机的地址
-m 指定LVS的工作模式为NAT
-w 指定真实服务器的权值
-g 指定LVS的工作模式为DR(默认)
-i 指定LVS的工作模式为TUN
例子:
  ipvsadm -a -t 192.168.239.129:80 -r 192.168.239.130 -m -w 1
-e 编辑一条虚拟服务器记录中的某条真实服务器
-d 删除一条虚拟服务器记录中的某条真实服务器
-L|-l 列出所有的虚拟服务器记录
-Z 清空当前的连接数(-l会显示虚拟服务器中连接数量)
例子:
  ipvsadm -e -t 192.168.239.129:80 -r 192.168.239.130 -g -w 3
  ipvsadm -d -t 192.168.239.129:80 -r 192.168.239.230

六、负载均衡集群企业级应用实战-LVS

实验:负载均衡集群企业级应用实战-LVS-DR模式:

实验环境:一台DR负载均衡器,一块网卡172.17.253.132,桥接,两台台后端服务器172.17.251.236和172.17.253.253,各一块网卡,桥接

四、LVS ipvsadm 命令的使用

1、yum install ipvsadm -y #在LVS-server安装lvs管理软件

程序包:ipvsadm(LVS管理工具)

  Unit File: ipvsadm.service

  主程序:/usr/sbin/ipvsadm

  规则保存工具:/usr/sbin/ipvsadm-save

  规则重载工具:/usr/sbin/ipvsadm-restore

  配置文件:/etc/sysconfig/ipvsadm-config

 

2、选项

① -A --add-service 在服务器列表中新添加一条新的虚拟服务器记录

-t 表示为tcp服务

-u 表示为udp服务

-s --scheduler 使用的调度算法, rr | wrr | lc | wlc | lblb | lblcr | dh | sh | sed | nq 默认调度算法是 wlc

例:ipvsadm -A -t 192.168.1.2:80 -s wrr

 

② -a --add-server 在服务器表中添加一条新的真实主机记录

-t --tcp-service 说明虚拟服务器提供tcp服务

-u --udp-service 说明虚拟服务器提供udp服务

-r --real-server 真实服务器地址

-m --masquerading 指定LVS工作模式为NAT模式

-w --weight 真实服务器的权值

-g --gatewaying 指定LVS工作模式为直接路由器模式(也是LVS默认的模式)

-i --ip 指定LVS的工作模式为隧道模式

-p 会话保持时间,定义流量呗转到同一个realserver的会话存留时间

例:ipvsadm -a -t 192.168.1.2:80 -r 192.168.2.10:80 -m -w 1

 

③ -E -edit-service 编辑内核虚拟服务器表中的一条虚拟服务器记录。

-D -delete-service 删除内核虚拟服务器表中的一条虚拟服务器记录。

-C -clear 清除内核虚拟服务器表中的所有记录。

-R -restore 恢复虚拟服务器规则

-S -save 保存虚拟服务器规则,输出为-R 选项可读的格式

-e -edit-server 编辑一条虚拟服务器记录中的某条真实服务器记录

-d -delete-server 删除一条虚拟服务器记录中的某条真实服务器记录

-L|-l –list 显示内核虚拟服务器表

  --numeric, -n:以数字形式输出地址和端口号

--exact:扩展信息,精确值 

--connection,-c:当前IPVS连接输出

--stats:统计信息

--rate :输出速率信息

参数也可以从/proc/net/ip_vs*映射文件中查看

-Z –zero 虚拟服务表计数器清零(清空当前的连接数量等)

 

实验:负载均衡集群企业级应用实战-LVS-nat模式

实验环境:

一台DR负载均衡器,两块网卡,一块桥接172.17.253.132,一块仅主机192.168.10.200

两台后端服务器,一块网卡仅主机192.168.10.188和192.168.10.189,实现过基于lnmp的电子商务网站的服务器

本文由澳门皇冠金沙网站发布于网络操作,转载请注明出处:LVS实现负载均衡详解,负载均衡集群企业级应用

相关阅读