集群1
来源:互联网 发布:c语言扑克牌程序 编辑:程序博客网 时间:2024/05/18 00:53
集群
1 什么是集群?
集群是一组相互独立的、通过高速网络互联的计算机,它们构成了一个组,并以单一系统的模式加以管理。(Cluster就是一组计算机,它们作为一个整体向用户提供一组网络资源。这些单个的计算机系统就是集群的节点node)。
集群可以利用多个计算机进行并行计算从而获得很高的计算速度,也可以用多个计算机做备份,从而使得任何一个机器坏了整个系统还是能正常运行。
为了满足大量数据的访问负载,需要把成千上万台机器结合在一起,这就是集群架构。
2 集群的宗旨?
- 可伸缩性、可靠性、可管理性
3 集群分类?
负载均衡集群:Load Balance集群,简称LB,当一台服务器无法满足需求的时候,两台或多台服务器同时为客户端提供服务,以分担需求,提供轮询工作查询。
高可用集群:High Availability集群,简称HA,指通过尽量缩短系统停机时间(因日常的维护操作或突发的系统崩溃等) 以提高系统和应用的可用性。比如一台服务器出现故障的时候,但是不影响客户端体验,另外一台服务器担当这台服务器的工作!
高性能集群:High Perfermance Computing集群,简称HPC,一台计算机是4路,那么100台计算机同时来辅助计算处理,就是400颗CPU!
区别:
负载均衡集群:通过提高单位时间内的执行的任务数量来提高效率
高性能运算集群:通过提高单位时间内的执行时间来提高效率
4 负载集群种类?
7层负载 跨平台 不依赖底层设备4层负载 F5 不涉及流量 提供大数据传输 lvs 原理 2层负载 F5 不涉及流量 提供大数据传输
5 硬件集群和软件集群
硬件:F5负载均衡器(https://f5.com/)
软件:
LVS 工作在四层 内核空间 请求最高Nginx 工作在七层 用户空间HAProxy 工作在七层 用户空间 转发能力比nginx强,请求数万量
6 什么是LVS?
- Linux Virtual Server.意为Linux虚拟服务器,是一个虚拟的服务器集群系统,此项目在1998年5月由章文嵩博士成立,是中国国内最早出现的自由软件项目之一。
7 LVS的工作原理?
LVS 集群工作原理基本类似DNAT,又不完全相像,它是一种四层交换,默认情况下来通过用户请求的的地址和端口,来判断用户的请求,从而转发到后台真正提供服务的主机,而判断这种请求的是通过套接字来实现,所以四层就可以实现。
注:源IP地址和目的IP地址以及源端口号和目的端口号的组合称为套接字。
8 LVS集群的三层结构
负载调度器/分发器 (load balancer) director
它是整个集群对外的前端机,负责将客户的请求发送到一组服务器上执行,而客户认为服务是来自一个IP地址上的,我们称这个IP为虚拟IP,Virtual IP=VIP。
服务器池 (Server Pool)
也就是下图中的RealServer Group,是一组真正执行客户请求的服务器,执行程序可以是一组WEB,FTP,MAIL和DNS等等。RIP
共享存储(Shared Storage)
它是为服务器池提供的一个共享存储区,这样很容易使得服务器拥有相同的内容,提供相同的服务!
9 LVS包转发方式
LVS有四种转发方式:NAT(网络地址映射)、IP Tunneling(IP 隧道)、Direct Routing(直路由),Full-NAT(全NAT)。不同的转发模式决定了不同的Cluster的网络结构
LVS-NAT:
NAT方式支持任何造作系统,以及私有网络,并且只需要一个Internet IP即可!缺点是整个系统的性能受到限制,因为执行NAT的过程每一次都需要重写包,有一定的延迟。另外,大部分应用有80%的数据是从服务器流向客户端,也就是用户的请求非常短,而服务器的回应非常大,对负载均衡器形成非常大的压力,成为新的瓶颈!大致数据上:真实服务器的数目在10台和20台之间时,负载调度器将成为整个集群系统的瓶颈!
LVS-IP Tunneling
Director(分发器)分配请求到不同的Real Server,Real Server处理请求后直接回应给客户端,这样director负载均衡器处理客户端与服务器的一半链接。IP Tunneling技术极大的提高了director的调度处理能力 ,同时也极大的提高了系统能容纳的最大节点数,可以超过100个节点,Real Server可以在任何LAN和WAN上运行,这就意味着允许地理上的分布(由于通过IP Tuneling封装后,封装后的IP包的目的地址为Real Server的IP地址,那么只要Real Server的地址路由可达,Real Server在什么网络里都可以,这样可以减少对于公网IP地址的消耗,但是因为处理IP Tunneling封装和解封装的开销,那么效率就不如DR模式),这在灾难恢复中有重要意义。服务器必须拥有正式的IP地址用于与客户端直接通讯(每个Real Server必须绑定VIP),并且所有服务器必须支持IP隧道协议!
LVS-Direct Routing
与IP Tuneling类似,只不过IP Tuneling工作在第三层,而DR工作在第二层,数据链路层。负载均衡器(LB)仅处理了一半的链接,避免了新的瓶颈,同时增加了系统的可伸缩性。Direct Routing与IP Tuneling相比没有IP封装的开销,但是由于采用物理层修改MAC地址技术,所以所有服务器必须在一个物理网段!
11 LVS调度算法
调度算法用于决定LVS如何选择后端的RealServer
轮叫调度(Round Robin)(简称rr)
调度器通过“轮叫”调度算法将外部请求按顺序轮流分配到集群中的真实服务器上,它均等地对待每一台服务器,而不管服务器上实际的连接数和系统负载。
加权轮叫(Weighted Round Robin)(简称wrr)
调度器通过“加权轮叫”调度算法根据真实服务器的不同处理能力来调度访问请求。这样可以保证处理能力强的服务器能处理更多的访问流量。调度器可以自动问询真实服务器的负载情况,并动态地调整其权值。
最少链接(Least Connections)(LC)
调度器通过“最少连接”调度算法动态地将网络请求调度到已建立的链接数最少的服务器上。如果集群系统的真实服务器具有相近的系统性能,采用 “最小连接” 调度算法可以较好地均衡负载。
加权最少链接(Weighted Least Connections)(WLC)
在集群系统中的服务器性能差异较大的情况下,调度器采用“加权最少链接”调度算法优化负载均衡性能,具有较高权值的服务器将承受较大比例的活动连接负载。调度器可以自动问询真实服务器的负载情况,并动态地调整其权值。
基于局部性的最少链接(Locality-Based Least Connections)(LBLC)
“基于局部性的最少链接”调度算法是针对目标IP地址的负载均衡,目前主要用于Cache集群系统。该算法根据请求的目标IP地址找出该目标IP地址最近使用的服务器,若该服务器是可用的且没有超载,将请求发送到该服务器;若服务器不存在,或者该服务器超载且有服务器处于一半的工作负载,则用“最少链接”的原则选出一个可用的服务器,将请求发送到该服务器。
带复制的基于局部性最少链接(Locality-Based Least Connections with Replication)(LBLCR)
“带复制的基于局部性最少链接”调度算法也是针对目标IP地址的负载均衡,目前主要用于Cache集群系统。它与LBLC算法的不同之处是它要维护从一个目标IP地址到一组服务器的映射,而LBLC算法维护从一个目标IP地址到一台服务器的映射。该算法根据请求的目标IP地址找出该目标IP地址对应的服务器组,按“最小连接”原则从服务器组中选出一台服务器,若服务器没有超载,将请求发送到该服务器;若服务器超载,则按“最小连接”原则从这个集群中选出一台服务器,将该服务器加入到服务器组中,将请求发送到该服务器。同时,当该服务器组有一段时间没有被修改,将最忙的服务器从服务器组中删除,以降低复制的程度。
目标地址散列(Destination Hashing)(DH)
“目标地址散列”调度算法根据请求的目标IP地址,作为散列键(Hash Key)从静态分配的散列表找出对应的服务器,若该服务器是可用的且未超载,将请求发送到该服务器,否则返回空。
源地址散列(Source Hashing)(SH)
“源地址散列”调度算法根据请求的源IP地址,作为散列键(Hash Key)从静态分配的散列表找出对应的服务器,若该服务器是可用的且未超载,将请求发送到该服务器,否则返回空。
最短的期望的延迟(Shortest Expected Delay Scheduling SED)(SED)
基于wlc算法。这个必须举例来说了
ABC三台机器分别权重123 ,连接数也分别是123。那么如果使用WLC算法的话一个新请求进入时它可能会分给ABC中的任意一个。使用sed算法后会进行这样一个运算A(1+1)/1、B(1+2)/2、C(1+3)/3,根据运算结果,把连接交给C。最少队列调度(Never Queue Scheduling NQ)(NQ)
无需队列。如果有台 realserver的连接数=0就直接分配过去,不需要在进行sed运算
- 集群1
- hadoop 集群优化1
- Hadoop集群安装 (1)
- Rabbitmq集群测试1
- storm集群应用1
- jboss5.1集群安装
- spring+quartz集群1
- weblogic集群问题(1)
- tomcat集群配置-1
- websphere6.1安装集群
- (RHCA436)1 创建集群
- spark2.1集群安装
- Redis集群搭建1
- Spark2.1集群搭建
- TASKCTL4.1集群部署
- Tomcat 集群配置1
- 集群
- 集群
- poj1436(线段树区间染色)
- 1001 487-3279
- Ruby基础知识(linxu上的安装步骤)
- 学生信息系统学习心得一、配置
- struts2与SpringMVC的区别
- 集群1
- 剑指offer面试题目:两个链表的第一个公共节点
- 软件管理
- xgboost简介
- centos下安装nginx搭配fastdfs
- Project facet Java version 1.7 is not supported.的解决办法
- 初识vscode,留下点设置及初步插件
- ThreadLocal使用及原理
- JSON基础