Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1079972
  • 博文数量: 646
  • 博客积分: 288
  • 博客等级: 二等列兵
  • 技术积分: 5375
  • 用 户 组: 普通用户
  • 注册时间: 2010-07-08 14:33
个人简介

为了技术,我不会停下学习的脚步,我相信我还能走二十年。

文章分类

全部博文(646)

文章存档

2014年(8)

2013年(134)

2012年(504)

分类: 架构设计与优化

2013-02-26 10:42:59

         LVS即Linux Virtual Server,现已成为Linux内部标准的一部分,通过LVS的负载均衡技术和Linux操作系统能够实现一个高性能、高可用的服务器集群。

一、体系结构

        使用LVS构建的集群系统由三部分组成:最前端的负载均衡层(Loader Balancer)、中间的服务器群组层(Server Arrary),最底层的数据共享存储层(Shared Storage),具体如下图:

图1 LVS体系结构图       

1、负载均衡层(Loader Balancer

        位于集群最前端,由一台或多台负载调度器(Director Server)组成,LVS模块安装在Director Server上,Director Server类似于路由器,其包含有LVS所设定的路由表,并通过路由表将用户的请求分发给Server Arrary层的真实服务器(Real Server)。

        此外,Director Server还需要安装针对Real Server的监控模块,用于监测Real Server的健康状况,并在其故障时将其从路由表中删除,在恢复时重新加入到路由表。

2、服务器群组层(Server Arrary

        由一组实际运行的服务器组成,可以是DNS、WEB、FTP、MAIL等服务器,在实际应用中,Director Server可以兼任Real Server。

3、数据共享存储层(Shared Storage

        为所有Real Server提供共享存储,一般由磁盘阵列组成,可以搭载NFS、GFS、Hadoop等提供数据共享。

        需要注意的是,这些东东对用户来说都是透明的,只是一个使用VIP的虚拟服务器集群而已。


二、负载均衡机制

        LVS基于IP负载均衡技术,通过IPVS模块实现负载均衡,IPVS是LVS集群的核心。IPVS安装在Director Server上,为Director Server虚拟出一个IP地址,用户通过这个VIP来访问Director Server,然后由Director Server从Real Server列表中选择一个节点响应用户请求。IPVS提供的负载均衡机制有一下三种:

1、VS/NAT

        VS/NAT即Virtual Server via Network Address Translation,即通过网络地址转换技术来实现虚拟服务器。当用户请求到达Director Server时,其将请求报文的目标地址即虚拟IP地址和目标端口号分别改为选定的Real Server的IP地址和相应端口号,然后将报文请求发送给选定Real Server,Real Server收到数据后返回数据给用户,返回的数据也要经过Director Server,其再次将返回报文的源地址和源端口号分别改为虚拟IP地址和相应端口号,然后将报文数据返回给用户。      

        可以看出NAT方式,与HAProxy相似,请求和响应报文都要经过Director Server重写地址,当用户请求越来越多时,Director Server的处理能力将成为瓶颈。  

2、VS/TUN

        VS/TUN即Virtual Server via IP Tunneling,即通过来实现虚拟服务器。用户请求通过Director Server转发到Real Server,而Real Server直接响应用户,也就是请求通过Director Server转发,而响应不需要。这要求所有服务器必须支持IP Tunneling或者IP Encapsulation协议。

3、VS/DR

        VS/DR即Virtual Server via Direct Routing,即通过直接路由技术实现虚拟服务器。用户请求到达当用户请求到达Director Server时,其改写请求报文的MAC地址,然后将请求报文发送到Real Server,而Real Server将响应直接返回给用户。DR是三种负载均衡机制中性能最好的,但要求Director Server和Real Server都有一块网卡连在同一物理网段上。


三、负载调度算法

        常用的调度算法主要有以下四种:

1、Round Robin

        轮询选择Real Server。

2、Weighted Round Robin

        加权轮询:根据性能为Real Server设置权值,权值高的处理请求的机会也越多。

3、Least Connection

        最少连接数来选择Real Server。

4、Weighted Least Connection

        加权最少连接:根据权值和连接数来选择Real Server。

        此外,还有四种算法:基于局部性的最少连接(Locality-Based Least Connections)、带复制的基于局部性最少连接(Locality-Based Least Connections with Replication)、目标地址散列(Destination Hashing)、源地址散列(Source Hashing)。在此不表,如想深入了解,可以看。

阅读(1145) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~