大家好,欢迎来到IT知识分享网。
一、什么是集群
集群(Cluster )是将多个单独存在的服务器,通过集群技术将其集合,构成一个工作组、一台大型的服务器,以单一系统的模式加以管理。
简而言之,集群就是将多台机器组合成一台机器使用。
二、集群的分类和功用
按照功用,集群可分为以下几个类型:
1、负载均衡(LB)集群
应对高并发。
2、高可用(HA)集群
只有两个节点的高可用集群又称为双机热备,即使用两台服务器互相备份。当一台服务器出现故障时,可由另一台服务器承担服务任务,从而在不需要人工干预的情况下,自动保证系统能持续对外提供服务。双机热备只是高可用集群的一种,高可用集群系统更可以支持两个以上的节点,提供比双机热备更多、更高级的功能,更能满足用户不断出现的需求变化。
3、高性能计算(HPC)集群
主要解决大任务计算
4、存储集群(Storage Cluster)
主要提供高性能、可靠(副本容错)、大容量(PB级别)的存储
三、集群技术和框架
1、LVS
Linux Virtual Server,Linux虚拟服务器。值得一提的是,这是由中国人章文嵩博士发起的一个开源项目,现在LVS已经是Linux内核标准的一部分。内核喔。
LVS主要用于多服务器的负载均衡;同时可把许多低性能的服务器组合在一起形成一个超级服务器,实现高性能,高可用的服务器集群。
2)LVS工作原理
负载均衡技术有很多实现方案,有基于DNS域名轮流解析的方法、有基于客户端调度访问的方法、有基于应用层系统负载的调度方法,还有基于IP地址的调度方法,在这些负载调度算法中,执行效率最高的是IP负载均衡技术。
LVS 的IP负载均衡技术是通过IPVS模块来实现的,IPVS是LVS集群系统的核心软件,它的主要作用是:安装在Director Server上,同时在Director Server上虚拟出一个IP地址,用户必须通过这个虚拟的IP地址访问服务。这个虚拟IP一般称为LVS的VIP,即Virtual IP。访问的请求首先经过VIP到达负载调度器,然后由负载调度器从Real Server列表中选取一个服务节点响应用户的请求。
(1)当用户向负载均衡调度器(Director Server)发起请求,调度器将请求发往至内核空间
(2) PREROUTING(预路由?)链首先会接收到用户请求,确认目标IP是本机,然后将数据包发往INPUT链
(3) 当用户请求到达INPUT时,IPVS(IP虚拟服务器)和定义好的集群服务进行比对,如果命中,IPVS强行修改数据包里的目标IP地址及端口,并将新的数据包发往POSTROUTING(提交路由?)链
(4) POSTROUTING链接收数据包后发现目标IP地址刚好是自己的后端服务器,通过选路,将数据包最终发送给后端的服务器
这里面的机制可以分为三种,分别是NAT、TUN和DR,详述如下:
2、Nginx
高性能的HTTP和反向代理web服务器,同时也提供IMAP/POP3/SMTP服务。
所谓反向代理,外部可以通过Nginx访问内部的服务器。一来,如果Nginx有缓存的话,可以直接返回,提高效率,减少服务器压力;二来Nginx可以控制请求的转发,起到负载均衡的作用。
因为,
nginx是基于第七层协议开发的,采用异步转发的原则,即在保持客户端链接的同时新起一个链接到负载均衡的服务端,等待服务端返回数据再返回给客户端。这么做有一个好处,nginx可以失败转移(failover),即如果和某个服务端的链接不通畅,可以换一个链接,可以服务的稳定性。
lvs是基于第四层协议开发的,采用同步转发的原则,即lvs监听到端口有链接时,会直接redirect到服务端,让服务端直接与客户端进行链接。这样做有一个弊端,就是一锤子买卖,如果请求失败了不会再做失败转移。
因此,Nginx连接有保障但压力都落在它身上,存在带宽瓶颈;LVS实际上不直接建立连接,性能高但有失败的风险。这跟TCP 和 UDP非常想像。二者结合,取长补短,相得益彰。
3、Keepalived
看名字就能猜出来,Keepalived与可用性有关。
Keepalived的作用是检测服务器的状态,如果有一台web服务器宕机,或工作出现故障,Keepalived将检测到,并将有故障的服务器从系统中剔除,同时使用其他服务器代替该服务器的工作,当服务器工作正常后Keepalived自动将服务器加入到服务器群中,这些工作全部自动完成,不需要人工干涉,需要人工做的只是修复故障的服务器。
四、集群与分布式
我的理解,简单来说,集群是相同的内容分布于不同的机器;分布式是不同的内容分散于不同的机器。分布式的每个节点除了可以是一台机,其实也可以是集群,所以分布式在格局上比集群要大。
但从规模和效果上看,分布式要大于集群。集群本质上,还是一个单机的概念;而分布式,是协同思想。这是我个人胡说的。
免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://haidsoft.com/137794.html