lvs介绍、DR模型

发布 : 2016-02-12 分类 : 大数据 浏览 :

高并发初期解决方案

系统或服务器级别的解决方案

1
2
3
4
5
6
7
8
9
1)增大服务器的CPU。
2)增加内存条。
3)增加硬盘个数,对硬盘做Raid5。
4)换掉免费的Tomcat,使用商用weblogic(美国Oracle公司出品的)
5)增加到二块网卡。
6)聘请系统架构师优化Linux内核
7)甚至花高价直接购买高性能服务器

随着业务的不断增加,服务器性能很快又到达瓶颈

应用级别的解决方案

1
2
3
4
5
6
1)网页HTML 静态化(需要CMS项目支持)
2)图片服务器分离(常用解决方案)
3)缓存(常用解决方案) 上上策为分布式缓存
4)镜像(下载较多)

随着业务的不断增加,服务器性能很快又到达瓶颈

什么是LVS?

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
lpvs:核心(嵌入到linux内核中)

IPVsadm:管理应用程序

LVS的英文全称是Linux Virtual Server,即Linux虚拟服务器。它是我们国家的章文嵩博士的一个开源项目。

在linux内核2.6中,它已经成为内核的一部分,在此之前的内核版本则需要重新编译内核。

为什么选择LVS? 有什么优势?

1、抗负载能力强,因为lvs工作方式的逻辑是非常之简单,而且工作在网络4层仅做请求分发之用,没有流量,所以在效率上基本不需要太过考虑。

在我手里的 lvs,仅仅出过一次问题:在并发最高的一小段时间内均衡器出现丢包现象,据分析为网络问题,

即网卡或linux2.4内核的承载能力已到上限,内存和 cpu方面基本无消耗。
 
2、配置性低,这通常是一大劣势,但同时也是一大优势,因为没有太多可配置的选项,所以除了增减服务器,并不需要经常去触碰它,大大减少了人为出错的几率。
 
3、工作稳定,因为其本身抗负载能力很强,所以稳定性高也是顺理成章,另外各种lvs都有完整的双机热备方案,

所以一点不用担心均衡器本身会出什么问题,节点出现故障的话,lvs会自动判别,所以系统整体是非常稳定的。
 
4、无流量,上面已经有所提及了。lvs仅仅分发请求,而流量并不从它本身出去,所以可以利用它这点来做一些线路分流之用。

没有流量同时也保住了均衡器的IO性能不会受到大流量的影响。
 
5、基本上能支持所有应用,因为lvs工作在4层,所以它可以对几乎所有应用做负载均衡,包括http、数据库、聊天室等等。

LVS可以为Web服务器、数据库服务器、邮件服务器做负载均衡

LVS 对比 Nginx

1
2
3
4
5
6
7
8
9
10
11
1:负载度  LVS KO Nginx

2:功能多少 Nginx KO LVS

3:稳定度LVS KO Nginx

4:服务器性能要求 LVS KO Nginx

效率最高的负载均衡技术

调度器的实现技术中,IP负载均衡技术是效率最高的,IP虚拟服务器软件(IPVS)是在linux内核中实现的。

IPVS软件实现了三种IP负载均衡技术

1
2
3
1:VS/NAT(地址转换)
2:VS/TUN(隧道)
3:VS/DR(直接路由)

LVS中提供了八种不同的调度算法

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
1:轮叫调度(Round-Robin Scheduling)
2:加权轮叫调度(Weighted Round-Robin Scheduling)
3:最小连接调度(Least-Connection Scheduling)
4:加权最小连接调度(Weighted Least-Connection Scheduling)
5:基于局部性的最少链接(Locality-Based Least Connections Scheduling)
6:带复制的基于局部性最少链接(Locality-Based Least Connections with Replication Scheduling)
7:目标地址散列调度(Destination Hashing Scheduling)
8:源地址散列调度(Source Hashing Scheduling)
9:最短预期延时调度(Shortest Expected Delay Scheduling)
10:不排队调度(Never Queue Scheduling)
对应: rr|wrr|lc|wlc|lblc|lblcr|dh|sh|sed|nq

静态调度方法:
rr:轮循
wrr:
dh:
sh:

动态调度方法:
lc:最少连接
wlc:加权最少连接
sed:最短期望延迟
LBLC:基于本地的最少连接
LBLCR:基于本地的带复制功能的最少连接

NAT:地址转换模式

1
2
3
4
5
6
7
8
9
10
11
12
13
14
集群跟director(前端调度服务器)必须在同一个ip网络中
RIP通常是私有地址,仅用于各集群节点间的通信
director(前端调度服务器)位于client(客户端)和real server(后端服务器)之间,并负责处理进出的所有通信

realserver必须将网关指向DIP
支持端口映射

realserver可以使用任意OS
较大规模应该场景中,director易成为系统瓶颈

VIP:虚拟服务器地址
DIP:转发的网络地址
RIP:后端真实主机(后端服务器)
CIP:客户端IP地址

DR:直接路由模式

1
2
3
4
5
6
7
集群节点跟director必须在同一物理网络中

后端服务器(真实服务器/realserver)可以使用公网地址,实现便捷的远程管理和监控

director仅负责处理入站请求,响应报文则由realserver直接发送客户端

不支持端口映射

TUN:

1
2
3
4
5
6
7
8
9
10
11
集群节点可以跨越Internet

RIP必须是公网地址

director仅负责处理入站请求,响应报文则由realserver直接发往客户端

realserver网关不能指向director

只有支持隧道功能的OS才能用于realserver

不支持端口映射

负载均衡器

1
2
3
4
5
6
7
8
9
10
11
12
1、硬件:
F5(一台F5最便宜的是20万一台) BIG-IP、A10、Citrix NetScaler

2、软件

四层:tcp之上的第四层协议

LVS:只能操作ip端口,在操作系统内核中

七层:http、ajp、https(应用层)

nginx、haproxy、httpd
本文作者 : Matrix
原文链接 : https://matrixsparse.github.io/2016/02/12/lvs介绍、DR模型/
版权声明 : 本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明出处!

知识 & 情怀 | 二者兼得

微信扫一扫, 向我投食

微信扫一扫, 向我投食

支付宝扫一扫, 向我投食

支付宝扫一扫, 向我投食

留下足迹