中软Linux负载均衡集群系统方案

来源: LUPA开源社区
发布时间: 2008-01-18 16:29 作者: 中软 来源: 硅谷动力 版权申明

字体: | 上一篇 下一篇 | 打印


关键词: 中软 Linux 负载均衡集群系统

文章来源于http://www.lupaworld.com
  Linux虚拟服务器简介

  基于中软Linux的虚拟服务器(Linux Virtual Server,即LVS)是一个具有高可用性特点的负载均衡集群系统。该系统可以提供与服务器节点的数量、性能成正比的负载能力,有效提高服务的吞吐量、可靠性、冗余度、适应性,性能价格比高。同时,LVS也是利用低端设备实现高端服务器性能的有效途径。

  中软Linux虚拟服务器(Linux Virtual Server,即LVS)是建立在一个主控服务器(director)及若干真实服务器(real-server)所组成的集群之上。real- server负责实际提供服务,主控服务器根据指定的调度算法对real-server进行控制。而集群的结构对于用户来说是透明的,客户端只与单个的 IP(集群系统的虚拟IP)进行通信,也就是说从客户端的视角来看,这里只存在单个服务器。

  Real-server可以提供众多服务,如ftp, http, dns, telnet, nntp, smtp 等。主控服务器负责对Real-Server进行控制。客户端在向LVS发出服务请求时,Director会通过特定的调度算法来指定由某个Real- Server来应答请求,而客户端只与Load Balancer的IP(即虚拟IP,VIP)进行通信。

  二、优点

  *提高吞吐量:为获得更高的吞吐量,在LVS中增加real-servers,其开销只是线性增长;而如果我们选择更换一台更高性能的服务器来获得相当的吞吐量,其开销要大得多,而且被替换掉的旧服务器会造成资源的浪费。

  *冗余:如果LVS中某real-server由于需要升级或其它原因而停止服务,其退出以及恢复工作,并不会造成整个LVS对客户端服务的中断。

  *适应性:不管是需要吞吐量逐渐地变化(因日常事务量变化),还是快速地变化(因突发事务量变化),服务器数量的增减对于客户端都是透明的。

  三、结构图

  


  一个LVS的基础设置

  传统的“客户端/服务器”的关系在LVS中仍旧适用,原因在于:

  *所有服务器的IP地址都映射为一个IP(即VIP),客户端只能看见此IP地址

  *所有服务器都认为它与客户端是直接联系的。

  四、基本原理及功能

  上图一个LVS的基础设置事实上,director的主要作用类似于一个路由器,但它含有为完成LVS功能所设定的路由表。这些路由表允许 director把属于LVS设定服务的包转发到real-servers。如果http(端口80)是LVS设定服务,那么这些包都会被 director转发,而director并不监听 VIP:80。

  director使用三种不同的转发方法

  1、VS-NAT:基于网络地址转换(network address translation ,NAT)

  2、VS-DR :直接路由(direct routing,DR),包上的MAC地址被更改,然后被转发到real-server

  3、VS-Tun :隧道(tunnelling) ,包被IPIP封装,然后被转发到real-server。

  VS-NAT方式实现较为容易,只需要一个功能tcpip栈,缺点在于吞吐量不够大,而且支持的real-server数有限。而VS-DR 方式则吞吐量较大,并支持大量的real-server。VS-TUN方式的特点和VS-DR相似,不过主要用于real-server分布在因特网之上的情况,real-servers对于director可以是远程的,real-servers之间可以处于不同网段。不过,VS-DR和VS-TUN转发方式需要对real-server的ifconfig和路由表进行修改。

  LVS可以提供几乎所有的服务(单端口和2端口服务),除了VS-DR和VS-Tun不可以提供从real-servers进行初始化连接的服务(有identd,rsh)。

  Real-servers可以是相同的,提供相同的服务(如http ,ftp),文件系统保持内容上的一致,这种类型的LVS用来提高可服务客户端数量。Real-server也可以不同,有各自不同的服务或操作系统。

  五、VS-NAT(基于网络地址转换,network address translation ,NAT)

  VS-NAT是LVS最基本的方法,如果想要设置一个用于测试的LVS,这是一个最简单的方法。

  当客户发出请求,director会将接受到的包的目标地址重写为某个real-server,并将其转发到real-server。Real-server的回复会发到director,director将回复包的源地址改写为VIP。

  不像VS-DR和VS-TUN,real-server只需要一个功能tcpip栈。Real-server可以是任意操作系统,在real-server上也不必做什么配置修改(除了在路由表中,需要把real-server的默认网关设为director)。
文章来源于http://www.lupaworld.com

声明:LUPA开源社区刊登此文只为传递信息,并不表示赞同或者反对。
21/212>

查看全部评论(0)我来说两句 直接向LUPA提出您的宝贵建议

-5 -3 -1 - +1 +3 +5