一、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中仍旧适用,原因在于:
* 任何服务器的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)。
下图为VS-NAT方式的拓补和工作流程示意图。

六、VS-DR(直接路由,direct routing,DR)

Director接到来自client的请求包后,根据调度算法选择一个real- server,解析出此real-server的MAC地址,并且向此MAC发送包含一个IP datagram的链路层包。Real-server收到包后,恢复IP datagram,查找路由表后发现这个VIP就在本地(设备lo:0,non-arp),移交给端口监听器。因为Real-server收到从CIP- >VIP的包,构造回复包时就是VIP->CIP。Real-server查找路由表,并通过到client的缺省gateway发送回复。回复不经过director。
文章整理:西部数码--专业提供域名注册、虚拟主机服务
http://www.west263.com
以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!




