欢迎大家来到IT世界,在知识的湖畔探索吧!
Linux virtual server,是一个基于集群技术和Linux操作系统,目的是实现一个高性能、高可用的服务器,主要工作在网络层。
他采取IP负载均衡,也叫三层负载均衡(因为工作在OSI模型的第三层–网络层),简单来讲就是通过修改请求的目标的IP地址来进行分配任务,将收录进来的信息分配到真正的server上去进行技术实现。当然这不是唯一的打开方式~
所以下面我们来一起看一下LVS实现负载均衡的几种方式:
LVS实现负载均衡的技术一般来讲有这三种,即VS/NAT、VS/TUN和VS/DR。
一. NAT
NAT就是Network Address Translation的缩写,就是最基础的通过进行网络地址转换,将一些server转化成一个可以有高性能的服务器。
具体的细节流程是这样走的:
用户使用一个虚拟的IP地址使用网络服务的时候,这是load balancer会收到报文,同时负责在下线中选择一台合适的下端来处理这个报文,这一步是通过选择的算法实现的。
然后,真正的转化在这里:这个负载均衡器就会把报文的目标地址的虚拟服务IP地址改成选中的这个服务器的IP地址。
注意一下, 这时候选定的服务器的端口数目,还有报文的端口数目也要相对应上。
修改好了报文,这时候负载均衡器就会把报文发送给这个百里挑一的服务器进行任务的加工处理。
二. TUN
TUN 是 Tunneling的缩写,其实就是通过隧道的方式来进行虚拟服务器的构建。
简单来说,这里的负载均衡器的作用就是通过IP隧道的封装方式连接每一个下端的服务器,进行任务分配。而且这种分装不是一对一,而是一组对一个,高吞吐量和高效快捷,所以适合用于移动主机和私有虚拟网络。
而IP隧道封装就是把一个报文和他的IP地址封装转发到另一个报文去。
听起来有点抽象,我们不妨这样想:NAT在通过负载均衡器发给服务器的时候,需要加一个新的IP头, 但是这里就不需要。这里的负载均衡器只需要将包裹好的封装打开,然后发给服务器就好了。
而且在这里,数据反馈给user的时候不需要传输回去给负载均衡器,而是通过外网的IP直接发给客户了。
对比一下NAT, 这时候的负载均衡器和服务器都有唯一且不同的IP地址。
三. DR
终于到了最后,是我们的DR, Direct Routing,即直接路径的方式进行虚拟服务器的实现。
这个方法和前两种略显不同,是由于他需要物理性质的构造连负载均衡器和每一个下端的服务器。这个物理属性的构造可以是交换机,或者HUB。
正如他的名字一般,这时候的负载均衡器所做的工作还是首先选一个服务器,然后直接将报文发给服务器,不改虚拟IP地址也不封装!
除此之外还需要将数据帧的MAC地址改为服务器的MAC地址。
有人会问,什么是数据帧:数据帧就是在每一个虚拟IP的包里面。服务器处理的时候看到每一个数据帧的MAC地址来确保一定会处理和收到这个数据帧,然后在检查他们的虚拟IP,最终返回一个X虚拟IP包。
而报文因为VIP地址前后一致,所以不需要再进行任何其他的处理和修改,就可以直接不经过负载均衡器返还给客户。
这三种方式,各有千秋,详情可以见下面的图标汇总:
_ |
VS/NAT |
VS/TUN |
VS/DR |
Server |
any |
Tunneling |
Non-arp device |
server network |
private |
LAN/WAN |
LAN |
server number |
low (10~20) |
High (100) |
High (100) |
server gateway |
load balancer |
own router |
Own router |
免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://itzsg.com/89231.html