Linux Cluster 基础之LVS调度算法与集群类型

                                        作者:尹正杰 

版权声明:原创作品,谢绝转载!否则将追究法律责任。

 

 

 

一.LB Cluster

1>.什么是LB

  LB 集群是 load balance 集群的简写,翻译成中文就是负载均衡集群。常用的负载均衡开源软件有 nginx,lvs,keepalived,HAProxy,ATS,Envoy,Traefik,Kong等;商业的硬件负载设备 F5,Netscale,Big IP,Citrix,A10等。

  LB 集群的架构如下图,原理也很简单,就是当用户的请求过来时,会直接发到分发器(Director Server)上,然后它把用户的请求根据预先设置好的算法,智能均衡地分发到后端的真正服务器(real server)上。如果不同的机器,可能用户请求到的数据不一样,为了避免这样的情况发生,所以用到了共享存储,这样保证所有用户请求的数据是一样的。

Linux Cluster 基础之LVS调度算法与集群类型

  如果觉得上图比较复杂,我画了一个简单的图形,如下图所示:

Linux Cluster 基础之LVS调度算法与集群类型

 

2>.七层LB和四层LB的区别(以OSI模型来区分,OSI是Open System Interconnection的缩写。)

七层调度器:

  如果协议是通过应用层报文的格式来识别客户端身份并根据算法获取其中数据完成后端服务器挑选的我们将其成为七层调度器(或者应用层调度器)。比如配置负载均衡设备服务类型为http/ftp/https等,负载均衡设备将解析报文到7层,在负载均衡设备与client三次握手之后,只有收到对应七层报文,才会跟RS建立连接。 七层调度器的血线就是同事处理的连接数会小于4W个的!这是受限制与单台主机可以使用随机端口有限!那为什么七层调度器到2019年了还被人津津乐道呢?原因是大多数企业的并发量都在4万以内。只有少数一线互联网公司会超过这个数字,而且这些公司可以用CDN挡住70%以上的静态资源。

四层调度器:

  如果协议是通过套接字(ip地址:端口号)来识别客户端身份的我们称之为四层调度器。比如配置负载均衡设备上服务类型为tcp/udp,负载均衡设备将只解析到4层,负载均衡设备与client三次握手之后就会和RS建立连接。四层调度器只是将报文丢出去即可,因此他不会受限制单台主机的可以使用的随机端口有限!具有关测试称,四层调度器可以很轻松的实现400W的并发连接数。

3>.IPVS

   LVS全称为Linux Virtual Server,工作在ISO模型中的第四层,由于其工作在第四层,因此与iptables类似,必须工作在内核空间上。ipvs称之为IP虚拟服务器(IP Virtual Server,简写为IPVS)。是运行在LVS下的提供负载平衡功能的一种技术。因此lvs与iptables一样,是直接工作在内核中的,叫ipvs,主流的linux发行版默认都已经集成了ipvs,因此用户只需安装一个管理工具ipvsadm即可。

  由于IPVS和iptables有很多相似之处,因此我们不建议大家在同一台服务器同时启用iptable和ipvs服务!这样可能iptable是正常工作的,但是会导致ipvs服务不正常提供的情况!

[root@node101.yinzhengjie.org.cn ~]# 
[root@node101.yinzhengjie.org.cn ~]# modinfo ip_vs
filename:       /lib/modules/3.10.0-327.el7.x86_64/kernel/net/netfilter/ipvs/ip_vs.ko
license:        GPL
rhelversion:    7.2
srcversion:     E06AC544DA352A4EDFBC73D
depends:        nf_conntrack,libcrc32c
intree:         Y
vermagic:       3.10.0-327.el7.x86_64 SMP mod_unload modversions 
signer:         CentOS Linux kernel signing key
sig_key:        79:AD:88:6A:11:3C:A0:22:35:26:33:6C:0F:82:5B:8A:94:29:6A:B3
sig_hashalgo:   sha256
parm:           conn_tab_bits:Set connections' hash size (int)
[root@node101.yinzhengjie.org.cn ~]# 
[root@node101.yinzhengjie.org.cn ~]# modinfo ip_vs            #查看ipvs的模块信息

相关文章:

  • 2021-09-22
  • 2021-06-03
  • 2021-09-01
  • 2021-09-18
  • 2021-05-25
  • 2022-01-04
  • 2021-12-08
  • 2021-10-09
猜你喜欢
  • 2021-10-24
  • 2021-11-06
  • 2021-12-21
  • 2022-12-23
  • 2022-12-23
  • 2021-08-10
  • 2021-06-09
相关资源
相似解决方案