一、集群
1、定义:
集群是一组相互独立的、通过高速网络互联的计算机,它们构成了一个组,并以单一系统的模式加以管理。一个客户与集群相互作用时,集群像是一个独立的服务器。集群配置是用于提高可用性和可缩放性。
(通俗来讲:集群由两台或以上的计算机连接在一起,共同执行任务)
2、分类:
(1)High Availability(HA)——高可用
运行于两个或多个节点上,目的是在系统出现某些故障的情况下,最大限度地减少服务中断时间,保证应用程序业务的持续性。
集群产品:RHCS、heartbeat、keepalived
(2)Load Balancing(LB)——负载均衡
运行时一般通过一个或者多个前端负载均衡器将工作负载分发到后端的一组服务器上,从而达到整个系统的高性能和高可用性。
集群产品:HAProxy、LVS、Nginx、硬件F5、Piranha
(3)High Performance (HP)——高性能集群
采用将计算任务分配到集群的不同计算节点儿提高计算能力,因而主要应用在科学计算领域。特别适合于在计算中各计算节点之间发生大量数据通讯的计算作业,比如一个节点的中间结果或影响到其它节点计算结果的情况。 它这类软件有Turbolinux EnFusion、SCore 等。
3、典型架构
二、LVS
1、简介
LVS是Linux Virtual Server的简写,意即Linux虚拟服务器,是一个虚拟的服务器集群系统。本项目在1998年5月由章文嵩博士成立,是中国国内最早出现的自由软件项目之一。它是linux标准内核的一部分,直接被编译在内核中。
2、体系结构
一般来说,LVS集群采用三层结构,其主要组成部分为:
A、负载调度器(load balancer),它是整个集群对外面的前端机,负责将客户的请求发送到一组服务器上执行,而客户认为服务是来自一个IP地址(我们可称之为虚拟IP地址)上的。
B、服务器池(server pool),是一组真正执行客户请求的服务器,执行的服务有WEB、MAIL、FTP和DNS等。
C、共享存储(shared storage),它为服务器池提供一个共享的存储区,这样很容易使得服务器池拥有相同的内容,提供相同的服务。
3、负载均衡技术
(1)LVS-DR模式(direct routing)——直接路由
其原理为,DR和REALSERVER都使用同一个IP对外服务。但只有DR对ARP请求进行响应,所有REALSERVER对本身这个IP的ARP请求保持静默。也就是说,网关会把对这个服务IP的请求全部定向给DR,而DR收到数据包后根据调度算法,找出对应的REALSERVER,把目的MAC地址改为REALSERVER的MAC并发给这台REALSERVER。这时REALSERVER收到这个数据包,则等于直接从客户端收到这个数据包无异,处理后直接返回给客户端。
总之,DR进来通过调度器,出去不通过。真实服务器跟客户端直接回应,一个director server后面能跟多个realserver。
(2)LVS-NAT模式(network address translation)
用地址翻译实现虚拟服务器。地址转换器有能被外界访问到的合法IP地址,它修改来自专有网络的流出包的地址。外界看起来包是来自地址转换器本身,当外界包送到转换器时,它能判断出应该将包送到内部网的哪个节点。优点是节省IP地址,能对内部进行伪装,缺点是效率低,因为返回给请求方的流量经过转换器。
总之,NAT进出都通过调度器,效率低,一个director server后面只能跟3-5个realserver。
(3)LVS-TUN模式(ip tunneling)——隧道技术
用IP隧道技术实现虚拟服务器。这种方式是在集群的节点不在同个网段时可用的转发机制,是将IP包封装在其他网络流量中的方法。为了安全的考虑,应该使用隧道技术中的VPN,也可使用租用专线。集群所能共的服务是基于TCP/IP的Web服务、Mail服务、News服务、DNS服务、Proxy服务器等等。
TUN模式:采用NAT技术时,由于请求和响应报文都必须经过调度器地址重写,当客户请求越来越多时,调度器的处理能力将成为瓶颈。为了解决这个问题,调度器把请求报文通过IP隧道转发至真实服务器,而真实服务器将响应直接返回给客户,所以调度器只处理请求报文。由于一般网络服务应答比请求报文大许多,采用VS/TUN技术后,集群系统的最大吞吐量可以提高10倍。(通过重写ip来实现,真实服务器直接回复客户端。)而且前两种模式的realserver通常在公司内,在一个比较近的范围内,隧道模式的服务器可以在较远范围。
注:lvs的ip地址类型
·VIP:虚拟ip地址,并不提供服务,而是将用户的请求转发到后方
·RIP:真正ip地址,客户端真正提供服务的ip地址
·DIP:调度ip地址,通常是禾ip相连的lvs的ip地址
·CIP:客户端ip地址,用户请求时,用户的ip
4、负载均衡调度算法
静态算法 | 英文名 | 中心思想 |
---|---|---|
轮循调度 | Round Robin(RR) | 按顺序轮流分配 |
加权循询 | Weighted Round Robin(WRR) | 按处理能力,根据负载情况,动态调整权值 |
目标地址 | Destination Hash (DH) | 按目标ip地址 |
源地址 | Source Hash(SH) | 按请求的源ip地址 |
动态算法 | 英文名 | 中心思想 |
---|---|---|
最少链接 | Least Connections(LC) | 根据已建立的链接数最少的服务器 |
加权最少链接 | Weighted Least Connections (WLC) | 按较高权值 |
最短的期望的延迟 | Shortest Expected Delay(SED) | Overhead = (ACTIVE+1)*256/加权 |
最少队列调度 | Never Queue Scheduling NQ(NQ) | 无需队列 |
基于局部性的最少链接 | locality-Based Least Connections(LBLC) | 根据请求的目标IP地址找出其最近使用的服务器 |
带复制的基于局部性最少连接 | Locality-Based Least Connections with Replication(LBLCR) | 维护从一个目标IP地址到一组服务器的映射 |