LVS 所提供的 IP 负载均衡的三种技术
副标题[/!--empirenews.page--]
1.LVS和负载均衡简介: LVS是Linux Virtual Server的简写,意即Linux虚拟服务器,是一个虚拟的服务器集群系统。 负载均衡就是有两台或者以上的服务器或者站点为我们提供服务,我们将来自客户端的请求靠某种算法尽量平均分摊到这些集群中,从而避免一台服务器因为负载太高而出现故障。简而言之便是将所有的负载均分到多台服务器中,即使其中某个出现故障,用户也能正常访问,得到服务。 广泛使用的是用软件的方式来实现负载均衡,实现效果不错,并且不需要成本是很多企业选择的方式。 以软件实现的负载均衡有两种方式:
文章主要就是介绍基于IP层负载均衡; 2.基于 IP 层负载均衡: 基于 IP 层负载均衡:用户通过虚拟 IP 地址(Virtual IP Address)访问服务时,访问请求的报文会到达负载调度器,由它进行负载均衡调度,从一组真实服务器选出一个,将报文处理并转发给选定服务器的地址。实服务器的回应报文经过负载调度器时,将报文的源地址和源端口改为 Virtual IP Address 和相应的端口,再把报文发给用户。 而 IP 的负载技术有以下三种模式:
3.VS/NAT 实现虚拟服务器 由于 IPv4 中 IP 地址空间的日益紧张和安全方面的原因,很多网络使用保留 IP 地址(10.0.0.0/255.0.0.0、 172.16.0.0/255.128.0.0和192.168.0.0/255.255.0.0)。这些地址不在 Internet 上使用,而是专门为内部网络预留的。 当内部网络中的主机要访问 Internet 或被 Internet 访问时,就需要采用网络地址转换(Network Address Translation, 以下简称NAT),将内部地址转化为 Internet 上可用的外部地址。 NAT 的工作原理是报文头(目标地址、源地址和端口等)被正确改写后,客户相信 它们连接一个 IP 地址,而不同 IP 地址的服务器组也认为它们是与客户直接相连的。由此,可以用 NAT 方法将不同 IP 地址的并行网络服务变成在一个IP地址上的一个虚拟服务。 VS/NAT(Virtual Server via Network Address Translation)实现的虚拟服务器是这样的一个结构,主要经过这样的一些步骤: LVS-NAT
这样,客户所看到的只是在 Virtual IP Address 上提供的服务,而服务器集群的结构对用户是透明的。 下面,举个例子来进一步说明VS/NAT,如图所示: NAT-eg VS/NAT 的配置如下表所示,所有到IP地址为205.100.106.2和端口为80的流量都被负载均衡地调度的真实服务器172.16.1.3:80和 172.16.1.4:8080上。目标地址为205.100.106.2:21的报文被转移到172.16.1.3:21上。而到其他端口的报文将被拒绝。 当客户端访问Web服务的时候,报文中可能有以下的源地址和目标地址: 报文到达调度器之后,调度器从调度列表中选出一台服务器,例如是172.16.1.4:8080。该报文会被改写为如下地址,并将它发送给选出的服务器。 Real Server 收到修改后的报文之后,做出响应,然后将响应报文返回到调度器,报文如下: 响应报文的源地址会被 Load Balacer 改写为虚拟服务的地址,再将报文发送给客户: 这样,客户认为是从202.103.106.5:80服务得到正确的响应,而不会知道该请求是 Real Server1 还是 Real Server2 处理的。 这便是 VS/NAT 的处理数据包的整个过程,它有这样的一些特点:
VS/NAT 的优势在于可以做到端口映射,但是 Load Balancer 将可能成为集群的瓶颈。因为所有的出入报文都需要 Load Balancer 处理,请求报文较小不是问题,但是响应报文往往较大,都需要 NAT 转换的话,大流量的时候,Load Balancer 将会处理不过来。一般使用 VS/NAT 的话,处理 Real Server 数量达到 10~20 台左右将是极限,并且效率往往不高。 4.VS/DR 实现虚拟服务器 (编辑:晋中站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |