什么是负载平衡
负载或负载平衡是一种计算机技术,用于在多台计算机(计算机集群)、网络连接、CPU、磁盘驱动器或其他资源之间分配负载,以优化资源使用率、最大化吞吐量、最小化响应时间并避免过载。
为什么需要负载平衡?
简单来说就是当前用户流量太大,单台机器上对计算机资源的请求太多,导致负载过大,所以需要负载均衡技术。
简单的负载平衡模型
最简单的负载均衡模型是客户端访问负载均衡服务器,负载均衡服务器将请求转发给真实服务器。如下图所示:
负载均衡服务器也是一种理想的服务器,它与OSI七层网络模型的对应关系如下图所示:
这里的负载均衡服务器默认就是指LVS,所以它是一个四层的负载均衡服务器。这里简单解释一下为什么是四层(个人理解)。首先,负载均衡服务器并没有实现TCP握手功能但是具备路由转发功能,所以它至少要工作在网络层,也就是前三层。对于负载均衡服务器来说,它的主要作用就是均衡负载,那么如何判断客户端的请求过载呢?这里设计了第四层传输层,它需要知道客户端与服务器之间的连接数,才能判断是否需要进行负载均衡。所以,负载均衡服务器需要具备“窥视”传输层端口的功能,也就是要能够看到客户端与服务器之间的连接情况,所以它是一个四层的服务器。
LVS模型中常用的术语:
1、DS:指的是前端负载均衡器节点,也就是四层负载均衡服务器(LVS)。
2. RS:Real。后端真正工作的服务器。
3、VIP:IP,直接面向外界用户请求,是用户请求目标的IP地址。
4、DIP:IP,主要用于与内部主机通讯。
5.RIP:Real IP,后端服务器的IP地址。
6.CIP:IP,接入客户端的IP地址
NAT模型推导(网络地址转换)
假设现在有一个客户来访,回车之后域名会解析到对应的IP地址,但是百度有很多服务器,解析出来的IP地址并不是真实服务器的地址,而是这里的负载均衡服务器的IP,这个IP是固定的,不管真实服务器怎么变,对于客户来说,发送的数据包只是一个CIP的源地址,目的地址是域名解析后的虚拟地址VIP,如下图所示:
现在真实服务器暴露的IP是RIP,如果直接转发数据包给服务器,服务器会丢弃,所以这里用到了NAT,把发送的数据包的目的IP地址改为RIP,这样就可以发给真实服务器了。这里假设是发给,那么数据包会转换为CIP->RIP2,如下图所示:
收到请求后会进行相应的处理,首先内部会记录下TCP连接——一个从RIP2到CIP的映射。
我们知道,当我们在浏览器中输入 时,浏览器会返回一个页面给我们,也就是在接收到客户端的请求时,会返回一个数据包(这里我们假设只有一个)给客户端,也就是源地址为RIP2,目的地址为CIP的数据包。但是我们知道客户端和服务端一般不在一个网段,所以数据包会根据路由表中的默认路由,发送到有默认网关地址的地方,也就是负载均衡服务器的DIP。
如果这个数据包直接发送给客户端的话,客户端是不会接受的,会丢弃,所以这里发送给客户端的数据包也会被转换成源地址为VIP,目的地址为CIP的数据包,这样客户端就会收到服务端返回的数据。
LVS NAT模型总结:
LVS NAT模型的缺点:
当我们进入一个网站的时候,浏览器也就是服务端会给我们返回一个比客户端发送的消息大很多的数据。简单来说,同一条路上,跑到服务端的是卡丁车,而返回到客户端的却是擎天柱这样的重型卡车。这样客户端的数据流是不对称的。在高并发的情况下,对负载均衡服务器的计算能力和带宽是一个极大的考验,很容易成为瓶颈。所以在负载均衡服务器中不采用这种模式。
DR 模型(直接路由模式)
我们回顾一下NAT模式的缺点,就是服务器返回的数据比客户端发送的数据要大很多,这给负载均衡服务器带来了很大的压力。我们注意到RIP2->CIP的连接是记录在服务器上的,那么为什么不直接把返回的数据发送给客户端呢?这样就不需要经过负载均衡服务器了。现在我们假设这个想法可以实现,将模型修改如下图所示:
但是我们知道客户端只接受从VIP发来的数据,所以如果直接发送给客户端,客户端会丢弃。往前看,服务器之所以会从RIP2向CIP发送数据包,是因为收到的数据包是CIP发往VIP的,所以就省了一个RIP2->CIP的连接。如果我们发送给服务器的数据是源地址为CIP,目的地址为VIP的数据包,那么服务器也会省一个VIP->CIP的连接,自然也会向CIP发送源地址为VIP的数据包,如果客户端能收到,那自然就会接受。此时,模型就演变成下图所示的样子:
那么问题又来了,如果负载均衡服务器发送的是CIP->VIP的数据包,服务器是不会接受的。这里我们假设负载均衡服务器和服务器在同一个局域网内,那么负载均衡服务器知道服务器的MAC地址,同一个局域网内的主机都是通过MAC来交换数据包的。同时服务器内部肯定有一个隐藏地址VIP,这样数据包根据MAC发往对端,然后因为内部有VIP地址,所以数据包才会被接受。如下图所示:
这样我们就得到了LVS的直接路由模式(DR)
LVS DR模式的内容概括如下:
LVS DR 模式的局限性:
负载均衡服务器和服务器必须在同一个局域网内。
LVS TUN 模式()
在LVS的DR模式中,我们需要负载均衡服务器与服务器在同一个局域网内,这样才能实现MAC地址欺骗。现在我们考虑负载均衡服务器与服务器不在同一局域网的场景(这种场景很常见),我们也采用DR的思想,修改客户端发送的数据包的地址,但是DR模式只是修改了数据链路层,不能实现网络跳转。所以我们只要实现网络层的地址修改(欺骗),就不需要让负载均衡服务器与服务器在同一个局域网了。也就是说,我们在CIP->VIP外面包一层数据包(DIP->RIP2),这样服务器就可以接受数据包,实现负载均衡服务器与服务器不在同一局域网的场景。
LVS TUN模式内容总结:
LVS TUN模式的缺点:
此方法需要所有服务器支持“IP”(互联网协议)协议
扫一扫在手机端查看
我们凭借多年的网站建设经验,坚持以“帮助中小企业实现网络营销化”为宗旨,累计为4000多家客户提供品质建站服务,得到了客户的一致好评。如果您有网站建设、网站改版、域名注册、主机空间、手机网站建设、网站备案等方面的需求,请立即点击咨询我们或拨打咨询热线: 13761152229,我们会详细为你一一解答你心中的疑难。