【web负载均衡集群之LVS-02】

一、LVSlinux虚拟服务器

1.LVS相关原理

官方站点http://www.linuxvirtualserver.org
虚拟服务器是在真实服务器集群上构建的高度可扩展且高度可用的服务器。
真实服务器和负载平衡器可以通过高速LAN或地理上分散的WAN互连。负载平衡器可以将请求分派到不同的服务器,并使群集的并行服务显示为单个IP地址上的虚拟服务,并且请求分派可以使用IP 负载平衡 技术或应用程序级负载平衡 技术。通过透明地添加或删除集群中的节点,可以实现系统的可伸缩性。通过检测节点或守护程序故障并适当地重新配置系统,可以提供高可用性。
在这里插入图片描述
使用LVS技术要达到的目标是:通过LVS提供的负载均衡技术和Linux操作系统实现一个高性能、高可用的服务器群集,它具有良好可靠性、可扩展性和可操作性,从而以低廉的成本实现最优的服务性能

1)LVS集群的体系结构

使用LVS架设的服务器集群系统有三个部分组成:最前端的负载均衡层,用Load Balancer表示,中间的服务器群组层,用Server Array表示,最底端的数据共享存储层,用Shared Storage表示
在这里插入图片描述
Load Balancer 层位于整个集群系统的最前端,由一台或者多台负载调度器(Director Server:请求分发)组成,LVS模块就安装在Director Server上,而Director的主要作用类似于一个路由器,它含有完成LVS功能所设定的路由表,通过这些路由表把用户的请求分发给Server Array层的应用服务器(RealServer)上。同时,在Director Server上还要安装对Real Server服务的监控模块Ldirectord,此模块用于监测各个Real Server服务的健康状况。在Real Server不可用时把它从LVS路由表中剔除,恢复时重新
加入。
Server Array层由一组实际运行应用服务的机器组成,Real Server可以是WEB服务器、MAIL服务器、FTP服务器、DNS服务器、视频服务器中的一个或者多个,每个Real Server之间通过高速的LAN或分布在各地的WAN相连接。在实际的应用中,Director Server也可以同时兼任Real Server的角色。
Shared Storage层是为所有Real Server提供共享存储空间和内容一致性的存储区域,在物理上,一般有磁盘阵列设备组成,为了提供内容的一致性,一般可以通过NFS网络文件系统共享数据,但是NFS在繁忙的业务系统中,性能并不是很好,此时可以采用集群文件系统,例如Red hat的GFS文件系统,oracle提供的OCFS2文件系统等。

2)lvs相关术语:

在这里插入图片描述
LVS集群内部的节点称为真实服务器(Real Serve),也叫做集群节点。请求集群服务的计算机称为客户计算机。与计算机通常在网上交换数据包的方式相同,客户计算机、Director和真实服务器使用IP地
址彼此进行通信。

3)lvs工作模式:根据调度器如何将请求发送到提供服务的Real Server节点,而RealServer节点如何将数据返回给用户,提出了三种模式:NAT、DR、TUN

LVS的IP负载均衡技术是通过IPVS模块来实现的,IPVS是LVS集群系统的核心软件,它的主要作用是:安装在Director Server上,同时在Director Server上虚拟出一个IP地址,用户必须通过这个虚拟的IP地址访问服务。这个虚拟IP一般称为LVS的VIP,即Virtual IP。访问的请求首先经过VIP到达负载调度器,然后由负载调度器从Real Server列表中选取一个服务节点响应用户的请求当用户的请求到达负载调度器后,调度器如何将请求发送到提供服务的Real Server节点,而RealServer节点如何返回数据给用户,是IPVS实现的重点技术,IPVS实现负载均衡机制有三种,分别是NAT、TUN和DR。
在这里插入图片描述
VS/NAT即(Virtual Server via Network Address Translation)网络地址翻译技术实现虚拟服务器:
当用户请求到达调度器时,调度器将请求报文的目标地址(即虚拟IP地址)改写成选定的Real Server地址,同时报文的目标端口也改成选定的Real Server的相应端口,最后将报文请求发送到选定的Real Server。在服务器端得到数据后,Real Server返回数据给用户时,需要再次经过负载调度器将报文的源地址和源端口改成虚拟IP地址和相应端口,然后把数据发送给用户,完成整个负载调度过程。
VS/TUN 即(Virtual Server via IP Tunneling)IP隧道技术实现虚拟服务器:
它的连接调度和管理与VS/NAT方式一样,只是它的报文转发方法不同,VS/TUN方式中,调度器采用IP隧道技术将用户请求转发到某个Real Server,而这个Real Server将直接响应用户的请求,不再经过前端调度器,此外,对Real Server的地域位置没有要求,可以和Director Server位于同一个网段,也可以是独立的一个网络。因此,在TUN方式中,调度器将只处理用户的报文请求,集群系统的吞吐量大大提高。
VS/DR 即(Virtual Server via Direct Routing)直接路由技术实现虚拟服务器:
它的连接调度和管理与VS/NAT和VS/TUN中的一样,但它的报文转发方法又有不同,VS/DR通过改写请求报文的MAC地址,将请求发送到Real Server,而RealServer将响应直接返回给客户,免去了VS/TUN中的IP隧道开销。这种方式是三种负载调度机制中性能最高最好的,但是必须要求Director Server与Real Server都有一块网卡连在同一物理网段上

特别提示:( VS/DR)模式是互联网使用的最多多的一种模式,在LVS-DR配置中,Director将所有入站请求转发给集群内部节点,但集群内部的节点直接将他们的回复发送给客户端计算机(没有通过Director回来)。如下图所示
在这里插入图片描述

4)lvs调度算法:决定了在这些集群节点之间如何分布工作负荷。

当Director收到来自客户端计算机访问她的VIP上的集群服务的入站请求时,Director必须决定那个集群节点应该获得请求。
Director可用于做出该决定的调度方法分成两个基本类别:
固定调度算法:rr(轮询),wrr(加权轮询调度),dh(目的哈希调度),sh(源地址哈希调度)
动态调度算法:lc(最小连接调度) wlc(加权最小连接数调度),lblc(基于局部的最小连接调度),lblcr(带复制的基于局部性的最少连接调度),SED(最短的期望的延迟调度),NQ(最少队列调度)(后两种官方站点没提到)
最常用的调度算法:
在这里插入图片描述
轮询调度(Round Robin):
“轮询”调度也叫1:1调度,调度器通过“轮询”调度算法将外部用户请求按顺序1:1的分配到集群中的每个Real Server上,这种算法平等地对待每一台Real Server,而不管服务器上实际的负载状况和连接状态。
加权轮询调度( Weighted Round Robin)
“加权轮询”调度算法是根据Real Server的不同处理能力来调度访问请求。可以对每台Real Server设置不同的调度权值,对于性能相对较好的Real Server可以设置较高的权值,而对于处理能力较弱的RealServer,可以设置较低的权值,这样保证了处理能力强的服务器处理更多的访问流量。充分合理的利用了服务器资源。同时,调度器还可以自动查询Real Server的负载情况,并动态地调整其权值。
最少链接调度(Least Connections)
最少连接”调度算法动态地将网络请求调度到已建立的链接数最少的服务器上。如果集群系统的真实服务器具有相近的系统性能,采用“最小连接”调度算法可以较好地均衡负载。
加权最少链接调度(Weighted Least Connections)
“加权最少链接调度”是“最少连接调度”的超集,每个服务节点可以用相应的权值表示其处理能力,而系统管理员可以动态的设置相应的权值,缺省权值为1,加权最小连接调度在分配新连接请求时尽可能使服务节点的已建立连接数和其权值成正比。

2.LVS-DR模式集群

1)LVS-DR模式工作原理

首先,来自客户端计算机CIP的请求被发送到Director的VIP。然后Director使用相同的VIP目的IP地址将请求发送到集群节点或真实服务器。然后,集群某个节点将回复该数据包,并将该数据包直接发送到客户端计算机(不经过director)``,并且以此回复数据包使用的目的VIP 地址作为源IP地址。因此,实际上是客户计算机被“欺骗”了,客户计算机始终认为它正与同一台计算机对话,而实际上它正在发送请求数据包给一台计算机(LB),并从另一台计算机(RS)接收回复的数据包。
在这里插入图片描述

2)LVS-DR模式特点

1)所有集群节点RS必须和Director在相同的物理网段(即同一个局域网中);
2) 所有客户端入站(而不是出站)请求由Director首先接收,并转发给集群节点RS
3)集群节点RS通常来说最好带外部IP,而不使用Director及某固定机器作为默认网关,以便将数据包直接回复给客户端计算机,且不会产生回包的瓶颈;
4)所有集群节点RS上必须在lo网卡上绑定VIP地址,以便验证通过目的IP非RS的数据包
5)由于所有集群节点RS上必须在lo网卡上绑定VIP地址,因此,带来arp问题,即集群节点RS默认会相应发往Director VIP的数据包。因此要对所有集群节点RS做ARP抑制处理,把响应VIP的请求交给LVS Director;
6)很多操作系统都可以用在集群内部的RS真实服务器上只要该操作系统能够实现ARP隐藏,如:Windows,linux,unix;
7)LVS/DR模式不需要开启调度器转发功能,这点和LVS/NAT模式是不同的
8)LVS/DR Director(服务器数量100台)可以比LVS-NAT Director(服务器数量10-20台)承受更多的并发请求和转发更多的服务器数量。

3)LVS-DR模式ARP抑制

抑制RS端arp响应:
在这里插入图片描述
在这里插入图片描述
LVS-DR模式ARP抑制方法:
(1) 静态地址绑定;
Director调用时静态地址绑定将难以适用;
(2) arptables
Disable ARP for VIP
Basically, we have the following commands to disable ARP for VIP at real servers.
arptables -F
arptables -A INPUT -d $VIP -j DROP
arptables -A OUT -s $VIP -j mangle --mangle-ip-s $RIP
(3) 修改Linux内核参数:将RS(集群节点)上的VIP配置为lo接口(环回接口)的别名,限制Linux仅对对应接口的ARP请求做响应

4)LVS-DR模式集群搭建

3.LVS-NAT模式集群

工作逻辑图:
在这里插入图片描述

1)LVS-NAT模式特点

集群节点,必须在一个网络中
真实服务器必须将网关指向负载调度器
RIP 通常都是私有 IP,仅用于各个集群节点通信负载调度器必须位于客户端和真实服务器之间,充当网关
支持端口映射
负载调度器操作系统必须是 Linux ,真实服务器可以使用任意系统

2)LVS-NAT模式集群搭建

注1:RS网关必须指到负载调度器的内网卡
注2:负载调度器必须开启路由转发功能
戳一戳得集群搭建步骤

4.LVS – TUN模式集群

工作逻辑图:
在这里插入图片描述

1)LVS-TUN模式特点

集群节点不必位于同一个物理网络但必须都拥有公网 IP(或都可以被路由)
真实服务器不能将网关指向负载调度器
RIP 必须是公网地址
负载调度器只负责入站请求
不支持端口映射功能
发送方和接收方必须支持隧道功能

2)LVS-TUN模式集群搭建这里不做讲解

5.LVS持久连接

加-p参数

ipvsadm -A -t 172.16.0.8:0 -s wlc -p 120
 # 添加一个 tcp 负载集群,集群地址为 172.16.0.8 ,算法为 wlc,持久化时间为 120s
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

骑着蜗牛追汤圆

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值