您的位置:首页 > 运维架构 > Linux

IP Balance with LVS (Linux Virtual Server)

2010-12-14 23:51 281 查看
作者:徐建祥(netpirate@gmail.com)

时间:2006-08-14 14:46

来自:http://www.anymobile.org

在网络服务中,一端是客户程序,另一端是服务程序,在中间可能有代理程序,可以在不同的层次上实现多台服务器的负载均衡。

1、 解决网络服务性能问题的四种集群方法

1.1 基于 RR-DNS ( Round-Robin Domain Name System )

服务器组拥有相同的域名, RR-DNS 服务器会把域名轮流解析到这组服务器的不同 IP 地址,从而将访问负载分到各台服务器上。

1.2 基于客户端

每个客户程序都具有一定的服务器集群的知识,进而把以负载均衡的方式将请求发到不同的服务器。

1.3 基于应用层的负载均衡调度

多台服务器通过高速的互联网络连接成一个集群系统,在前端有一个基于应用层的负载调度器。当用户访问请求到达调度器时,请求会提交给作负载均衡调度的应用程序,分析请求,根据各个服务器的负载情况,选出一台服务器,重写请求并向选出的服务器访问,取得结果后,再返回给用户。

1.4 基于 IP 层的负载均衡调度

用户通过虚拟 IP 地址( Virtual IP Address )访问服务时,访问请求的报文会到达负载调度器,由它进行负载均衡调度,从一组真实服务器选出一个,将报文的目标地址 Virtual IP Address 改写成选定服务器的地址,报文的目标端口改写成选定服务器的相应端口,最后将报文发送给选定的服务器。真实服务器的回应报文经过负载调度器时,将报文的源地址和源端口改为 Virtual IP Address 和相应的端口,再把报文发给用户。

2、 LVS 集群中实现的三种 IP 负载均衡技术

2.1 VS/NAT ( Virtual Server via Network Address Translation ):通过网络地址转换( Network Address Translation )将内部地址转化为 Internets上可用的外部地址。



2.2 VS/TUN ( Virtual Server via IP Tunneling ):通过 IP 隧道实现虚拟服务器,将请求报文封装动态地转发给后端服务器,响应报文能从后端服务器直接返回给客户。

因请求报文较短而响应报文往往包含大量的数据,可以大大降低负载均衡器的压力。 所有的服务器必须支持“IP Tunneling”或者“IP Encapsulation”协议。



IP 隧道( IP tunneling )是将一个 IP 报文封装在另一个 IP 报文的技术,这可以使得目标为一个 IP 地址的数据报文能被封装和转发到另一个 IP 地址。 IP 隧道技术亦称为 IP 封装技术( IP encapsulation )。 IP 隧道主要用于移动主机和虚拟私有网络( Virtual Private Network ),在其中隧道都是静态建立的,隧道一端有一个 IP 地址,另一端也有唯一的 IP 地址。

2.3 VS/DR ( Virtual Server via Direct Routing ):通过直接路由实现虚拟服务器。

与 VS/TUN 方法相同, VS/DR 利用大多数 Internet 服务的非对称特点,负载调度器中只负责调度请求,而服务器直接将响应返回给客户,可以极大地提高整个集群系统的吞吐量。



调度器和服务器组都必须在物理上有一个网卡通过不分断的局域网相连,如通过高速的交换机或者 HUB 相连, 服务器网络设备(或者设备别名)不作ARP响应,或者能将报文重定向(Redirect)到本地的Socket端口上。

2.4 数据比较

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
资源:

Linux Virtual Server http://www.linuxvirtualserver.org/
LVS中文站点 http://zh.linuxvirtualserver.org/
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: