免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 964 | 回复: 0
打印 上一主题 下一主题

中软Linux负载均衡集群系统解决方案 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2006-11-18 12:27 |只看该作者 |倒序浏览
  
一、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。
在real-server上所需做的工作就是配置一个non-arping的lo:0设备。并且服务需要监听VIP的相应端口。
VS-DR方式吞吐量较大,支持的real-server数量较多。
七、VS-Tun(隧道,tunnelling)
这种方式是基于VS-DR方式的,不同的只是director将包IPIP封装,然后转发到real-server。VS-TUN的real- servers相对于director可以远程;而且每个real-server都可以在单独的网络上,但需要在路由器上做工作,允许源地址为VIP的输出包。
配置方法和要求与VS-DR方式类似。只是需要将lo:0设备换为tunl0设备,其对应模块为ipip。



本文来自ChinaUnix博客,如果查看原文请点:http://blog.chinaunix.net/u/23896/showart_202708.html
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP