lvs集群

一、lvs简介

LVS(Linux Virtual Server)是Linux虚拟服务器的简称,是一个由章文嵩博士发起的自由软件项目,现在已经成为Linux内核标准的一部分。LVS主要用于构建高可用性、高性能的服务器集群系统,通过负载均衡技术将客户端请求分发到后端的多台服务器上,从而提高系统的整体性能和可靠性。LVS支持多种负载均衡算法,包括轮询(RR)、加权轮询(WRR)、最少连接(LC)、加权最少连接(WLC)等,以及基于源IP地址的会话绑定(SH)和基于目标地址的哈希(DH)等算法。

LVS具有多种工作模式,主要包括NAT(网络地址转换)模式、DR(直接路由)模式和TUN(隧道)模式。每种模式都有其特定的应用场景和优缺点:
NAT模式:所有请求和响应都需要经过LVS调度器,可能导致调度器成为性能瓶颈。
DR模式:要求LVS调度器和后端服务器在同一物理网络内,响应不经过调度器直接返回给用户,性能较高。
TUN模式:通过IP隧道技术封装请求,允许调度器和后端服务器不在同一物理网络内,但配置和管理较为复杂

1. NAT(Network Address Translation)模式:修改请求报文的目标IP地址和端口,将请求转发给后端服务器。后端服务器的响应报文通过调度器返回给客户端,因此调度器容易成为瓶颈。

2. **DR(Direct Routing)模式**:通过请求报文重新封装一个MAC报文首部进行转发,源MAC是DIP(Director IP)所在的接口MAC地址,目标MAC是挑选出来的RIP(Real Server IP)所在接口的MAC,源IP/PORT及目标IP/PORT均保持不变。响应报文由后端服务器直接返回给客户端,不经过调度器,减轻了调度器的压力。

3. **TUN(Tunneling)模式**:在请求报文之外再封装一个新的IP报文首部,将报文通过隧道转发给后端服务器。支持跨网络部署集群节点,但响应报文仍然由后端服务器直接返回给客户端。

二、lvs负载均衡调度算法

LVS(Linux Virtual Server)是基于Linux内核的虚拟服务器软件,它实现了高性能的四层负载均衡。LVS负载均衡调度算法是LVS工作的核心,它们决定了如何将客户端的请求分发到后端的多台服务器上。以下是一些常见的LVS负载均衡调度算法:

 一、静态调度算法

静态调度算法不考虑后端服务器的实际连接情况和负载情况,仅根据预设的算法进行调度。

1. *轮询(RR, Round Robin)
   - 调度器通过轮询调度算法将外部请求按顺序轮流分配到集群中的真实服务器上,它均等地对待每一台服务器,而不管服务器上实际的连接数和系统负载。
   - 优点:简洁性,无需记录当前所有连接的状态,是一种无状态调度。

2. 加权轮询(WRR, Weighted Round Robin)
   - 调度器通过加权轮询调度算法根据真实服务器的不同处理能力来调度访问请求。这样可以保证处理能力强的服务器处理更多的访问流量。
   - 优点:考虑了服务器间性能的差异,能够更合理地分配请求。

3. 目标地址散列(DH, Destination Hash)
   - 根据请求的目标IP地址,作为散列键从静态分配的散列表找出对应的服务器,若该服务器是可用的且未超载,将请求发送到该服务器。
   - 优点:对于相同的目标IP地址,请求总是被发送到同一台服务器,适用于基于IP的会话保持场景。

4. 源地址散列(SH, Source Hash)
   - 根据请求的源IP地址,作为散列键从静态分配的散列表找出对应的服务器,若该服务器是可用的且未超载,将请求发送到该服务器。
   - 优点:对于相同的源IP地址,请求总是被发送到同一台服务器,适用于基于源IP的会话保持场景。

二、动态调度算法

动态调度算法会根据后端真实服务器的实际连接情况来分配请求。

1. 最少连接(LC, Least Connections)
   - 动态地将网络请求调度到已建立的连接数最少的服务器上。
   - 优点:如果集群系统的真实服务器具有相近的系统性能,采用最少连接调度算法可以较好地均衡负载。

2. 加权最少连接(WLC, Weighted Least Connections)
   - 在集群系统中的服务器性能差异较大的情况下,调度器采用加权最少连接调度算法优化负载均衡性能,具有较高权值的服务器将承受较大比例的活动连接负载。
   - 优点:既考虑了服务器的性能差异,又考虑了服务器的当前连接数,能够更精细地调整负载分配。

3. 基于局部性的最少连接(LBLC, Locality-Based Least Connections)
   - 针对目标IP地址的负载均衡,主要用于Cache集群系统。该算法根据请求的目标IP地址找出该目标IP地址最近使用的服务器,若该服务器是可用的且没有超载,将请求发送到该服务器。
   - 优点:能够减少跨服务器的数据传输,提高缓存命中率。

4. 带复制的基于局部性最少连接
   - 与LBLC算法类似,但它维护从一个目标IP地址到一组服务器的映射,按“最小连接”原则从服务器组中选出一台服务器。
   - 优点:在服务器超载时,能够动态地调整服务器组,保证请求的及时处理。

5. 最短延迟调度(SED, Shortest Expected Delay)
   - 在WLC基础上改进,考虑了服务器的处理速度和响应时间,将请求分配给具有最短期望延迟的服务器。
   - 优点:能够更精确地预测服务器的响应时间,从而优化负载均衡效果。

6. 永不排队/最少队列调度(NQ, Never Queue Scheduling
   - 无需队列,如果有台服务器的连接数等于0,就直接分配请求给该服务器,不需要再进行复杂的运算。
   - 优点:能够确保不会有服务器处于完全空闲状态,提高资源的利用率。

三、环境配置

1.lvs 双网卡 (nat模式和仅主机)

ip 172.25.254.100

vip 192.198.5.100

2.server1(仅主机)

ip 172.25.254.10

vip null

3.server2(仅主机)

ip 172.25.254.20

vip null

lvs配置

07e750387766400a9bae7f486a2dfc7b.png

 s1

d4ec031fa2eb4e7b8b9147f6774a9197.png

s2 

c9b785148cd342efa5a8c846b18b8e4c.png

启用内核路由功能

36ed1c6958394bd78b38c5f85972d423.png

 添加并查看调度策略

1d60eaca338b433e946508aaaf319bb0.png

 保存启动服务d7031061c3764b67adae7fe583890a90.png

web服务设置

59c9936c77e146e08e8ba8e7a19776ea.png

1ef126783e344b8d8bec6b8341bc49c6.png 

 2.

client(nat)

ip 192.168.5.200

vip null

router 双网卡(仅主机nat)

ip 192.168.5.100 172.25.254.100

vip null

lvs (仅主机)

ip 172.25.254.50

vip 172.25.254.200/32

s1(仅主机)

ip 172.25.254.10

vip 172.25.254.200/32

s2(仅主机)

ip 172.25.254.20

vip 172.25.200/32

ivs配置

a4fcb91f93b0430b93d311e899439c2b.png

 router配置

d2df1ff528ab4ddfa747ad00f69d643f.png

dd2e989386154d2cbaa6b947f81b0706.png 

server配置

6b3b9c5cc7a04f1f80881f9319d0e152.png 

添加vip

 ip a a 172.25.254.200/32 dev lo

ivs配置

46757f14d4274a92b0b5c66d5083bcc5.png

测试

98b275c845dc464f81d9e63d71000717.png 

 

 

 

 

 

 

 

 

 

 

  • 5
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值