LVS概念

02/27/2017 | | Post a Comment

简述LVS

LVS(Linux Virtual Server)虚拟机就是由Real Servers组成的集群中的一个具有高扩展性和高可用性的服务器。此Server集群的架构对于终端用户是完全透明的,终端用户与集群的交互就好像是在与一个高性能的Server端进行交互,而不是“一群”服务器。请参考以下模型:

图中的负载均衡器和Realserver直接的可以通过LAN或者WAN进行通信。负载均衡器可以调度服务给不同的Realserver,可以将集群的平行服务集成为由一个IP地址提供的虚拟服务,集群可以通过IP层次和软件层次来实现负载均衡。

集群的可扩展性可以通过添加或者移除节点来实现;集群的高可用可以通过进程的故障转移(failover)和自动回复(failback)实现。

Linux 虚拟服务器项目的基本目标,在于为Linux集群建立高性能和高可用的服务器,可以提供很好的扩展性、稳定性和适用性。

LVS集群系统又被成为负载均衡服务器集群。

实现方式:

实现服务器集群的方法主要有两种:

1、基于DNS服务构建集群服务

DNS实现集群服务,就是利用DNS的名称解析功能,将对同一域名解析成不用的IP地址,以实现用户对多台服务器的访问。但是这种方法有一定的局限性,DNS服务是多层次的,而且DNS只是根据终端用户的请求进行调度,不会权衡用户的访问量,这些都会导致负载不均衡,只要其中一台服务器宕机就会导致部分用户的非正常访问。

2、基于调度器的负载均衡集群

调度器又被称为负载均衡器,在一个集群中它可以将终端对某一服务的请求按指定的算法,分发给特定的RealServer
个人认为此种方式就是将网络层(IP)功能与用户服务分离(前移),不在由RealServer提供,而是由特点的服务器单独管理,这样可以更好的控制服务的粒度,比如 基于每连接的控制,可以更好的实现负载均衡;每个请求失败的服务都可以被标记,这样就可以让管理变得更加方便;管理者可以随时添加/移除RealServer,绝不会影响到终端用户对服务的请求。

基于调度器的LB(Load Balance),也可以通过两种方法实现。

一种是基于应用层,例如Reverse-Proxy和pWEB,当负载的节点达到5个或者更多的时候,基于应用层的方法就会出现瓶颈;

一种是基于IP;此种方法支持的节点为25个甚至可以是100个,基于IP的LB,又称为IPVS

基于IP实现LB有三种方法,分别是:NAT 、Tunneling、DR(直连路由)

下表是对三种方法优缺点的对比:

VS/NAT VS/TUN VS/DR
server any tunneling non-arp device
server network private LAN/WAN LAN
server number low (10~20) high high
server gateway load balancer own router own router

三种方法的具体实现,及其原理,将在以后介绍。

 



Want to say something? Post a comment

电子邮件地址不会被公开。 必填项已用*标注