1.集群概述
1)什么是集群
至少包括两台节点服务器。而对外表现为一个整体,只提供一个访问入口(域名或IP地址),为用户提供服务,组成集群的服务器称之为集群的节点
2)集群的特点
1)高性能(performance)
需要cpu运算处理能力超强,把若干台服务器,做成集群节点组成集群,把每台cpu计算能力整合到一起,提升运算能力
2)性价比高
3)可伸缩性
集群可增加或减,提升集群的高可用、高负载等性能
4)高可用性
当某节点宕机后,集群其他节点仍然可提供服务,实现高可用性,确保整个系统的服务必须是7*24小时运行的
3)应用场景:
高并发、高可用性、高性能场景
假如::一台web服务器,如果能够响应10000个并发,如果现在有20000个并发,一台服务器就无法响应。说明,web服务已经达到瓶颈
解决方法:
硬件升级:加配置:加CPU, 加内存, 加带宽, 加SSD 也称纵向扩展
加服务器:使用多台服务器同时为用户提供服务,而这一种解决方法则称为横向扩展
4)集群的种类
1.负载均衡集群(laod balance cluster,简称LB):提高应用系统的响应能力,尽可能处理更多的访问请求,减少延迟为目标,获得高并发、高负载的整体性能
2.高可用集群(high availability cluster,简称HA):提高应用系统的可靠性,减少中断时间为目标,确保服务的连续性,达到高可用,HA的工作方式包括双工、主从两种模式
3.高性能运算集群(high performance computer cluster简称HPC):主要用于提供单个计算机所不能提供的强大的计算能力
主要用于1和2
5)负载均衡集群
负载均衡集群:以提高应用系统的响应能力、尽可能处理更多的访问请求、减少延迟为目标,获得高并发、高负载的整体性能
6)负载均衡集群的分成结构
在典型的负载均衡集群中,包括三个层次:
负载调度器(load balancer或称为director)负载接收并通过负载均衡策略分发来自客户机的访问请求,分发到后端的web池(real server),提供实际的应用服务,通过伸缩性增加或减少节点数量,对用户是透明的,为了保持服务的一致性,所有节点使用共享存储设备或rsync,备用集群是实现调度器的高可用
第一层,负载调度器:访问整个集群系统的唯一入口,对外使用所有服务器共有的VIP(virtual IP,虚拟IP)地址,也称集群IP地址。
第二层,服务器池:集群提供的应用服务(如HTTP)由服务器池承担,每个节点具有独立的RIP(real IP,真实IP)地址,负载接收从调度器分发来的客户请求处理用户请求。
第三层,共享存储:服务器池中的所有节点提供稳定、一致的文件存取服务,确保整个集群的统一性
7)负载均衡集群(LB)
硬件的实现: F5负载均衡器
软件的实现: LVS(4层,传输层) ,Nginx(7层,应用层) haproxy(既可以工作再4层,又可以工作在7层)
2.LVS集群-DR
1. LVS(Linux Virtual Server)介绍
LVS工作在一台server上提供Director(负载均衡器)的功能,本身并不提供服务,只是把特定的请求转发给对应的real server(服务器池),实现集群环境中的负载均衡
LVS工作在ISO模型中的第四层,工作在内核空间,直接工作在内核中的模块,叫ipvs,用户只需安装一个管理工具ipvsadm即可。
官网地址:http://www.linuxvirtualserver.org/
中文站点: LVS中文站点
1.LVS的组成
LVS 由2部分程序组成,包括 ipvs 和 ipvsadm。
LVS的核心组件 ipvs 工作在 kernel 中,用于定义的集群转发规则把客户端的请求转发到指定的服务器上,另一个组件 ipvsadm 是工作在用户空间的让用户定义 ipvs 规则工具,安装包就是: ipvsadm
2. LVS 集群工作结构图:
1.负载调度器
调度器(Director): 整个集群对外的最前端主机, 负责接收用户请求,根据负载均衡算法,将请求转发到服务器池的某个服务器上,客户端认为服务是来自一个IP地址(我们可称之为VIP虚拟IP地址)
2.服务器池:Server Pool
为用户提供服务的服务器器,每台服务器就是一个RS(real server),执行的服务有WEB、MAIL、FTP和DNS等。
3.共享存储: Shared Storaged
为 RS 保持相同内容,提供数据的一致性,服务器池提供一个共享的存储区,这样很容易使得服务器池拥有相同的内容,提供相同的服务
4.LVS的专用名词
DS: Director Server 是指负载均衡器节点
RS:Real Server 服务器池里运行的服务器
VIP:向外部直接面向用户请求,作为用户请求的目标地址。
DIP:Director Server IP 主要用于和内部主机通信的 IP 地址
RIP:Real Server IP 服务器的 IP 地址
CIP : client IP 访问客户端的IP地址
5.LVS的负载调度算法
针对不同的网络服务和配置需要,LVS调度器提供多种不同的负载调度算法,其中最常用的算法包括轮询、加权轮询、最少连接、权最少连接和source hashing源地址hash
1.轮询 (rr,roundrobin):
收到的访问请求按照顺序轮流分配给集群中的各个节点(服务器)
2.加权轮询 (wrr,Weighted RoundRobin):
根据不同的服务器处理能力轮流分配收到的访问请求,将依据不同RS的权重分配请求。权重较高的RS将优先分配请求,分配到的连接数比权重较低的RS更多
3.最少连接 (lc,Least Connections):
IPVS表存储了所有的活动连接,把新的连接请求发送到当前连接数最小的RS
4.加权最少连接 (wlc,WeightedLeastConnections):
在服务器节点的性能差异较大的情况下,可以为真实服务器设置权重,权重较高的节点将承担更大比例的活动连接负载
5.source hashing源地址hash(sh)
将来自同一个ip的请求始终调度至同一 RS
4.LVS负载均衡模式及工作原理
LVS工作模式:
LVS有三种工作模式:DR,NAT,TUN。 DR是三种模式中性能最高的,TUN次之
DR (Direct Routing)路由模式
NAT (Network Address Translation)网络地址映射模式
TUN (IP Tunneling)IP 隧道模式
NAT(网络地址映射)
NAT:网络地址转换
DNAT:目标地址转换,改变的是目标地址
SNAT:原地址转换,改变的是源地址
LVS-NAT:使用的是 SNAT 和 DNAT 完成包的转发
NAT方式可支持任何的操作系统,以及私有网络,并且只需一个Internet IP地址,但是整个系统的性能受到限制,执行NAT 每次都需要重写包,有一定的延迟,大部分应用的数据是从服务器流向客户机,用户的请求非常短,而服务器的回应非常大,对负载均衡器形成很大压力,成为瓶颈,
IP Tunneling(IP隧道)
采用NAT 技术,由于请求和响应报文都需经过调度器重写,当请求多时调度器处理能力也将成为瓶颈,为了解决这个问题,调度器把请求报文通过IP隧道转发至服务器。
IP隧道(IP TUNNEL):简称TUN模式,负载调度器仅作为客户机的访问入口,各节点通过各自的INTERNET连接直接回应客户机,不再经过负载调度器。采用开放式的网络结构。通过专用IP隧道与负载调度器相互通信
real server可以在任何LAN(局域网)或WAN(外网)上运行,允许地理上的分布,服务器必须拥有公网IP地址用于与客户机直接通信,并且所有服务器必须支持IP隧道协议
Direct Routing(直接路由)
属于一种这种方案,直接路由(direct routing):简称DR模式,采用半开放式的网络结构,但各节点并不是分散在各地,在一个局域网里,负载调度器与各节点服务器通过本地网络连接,不需要建立专用的IP隧道
DR通过改写请求报文的MAC地址,将请求发送到服务器,服务器响应直接返回给客户。
LVS优点:
1.抗负载能力强,工作在网络第4层,仅作请求分发用
2.配置性低,配置简单
3.工作稳定,抗负载能力强,稳定性高
4.无流量,lvs仅仅分发请求,而流量并不从它本身出去,没有流量同时也保住了负载均衡器的IO性能不会受到大流量的影响
5.lvs基本上支持所有应用,因为lvs工作在第4层,所以它可以对几乎所有应用做负载均衡,包括http、数据库等