什么是集群
计算机的集群是一种计算机系统,它通过一组松散集成的计算机软件或硬件连接起来高度紧密地的协作完成计算任务。通俗的来讲,它可以被看作一台计算机。整个集群系统中单个的计算机我们通常称之为节点,通过网络进行互联互通,相互协作完成任务。集群计算机通常用来提高改进单个计算机的性能或可靠性。
集群就是一组相互独立的计算机,通过高速网络组成一个计算机系统,每个集群节点都是独立运行某个服务进程的一个独立服务器。对于客户端用户来讲,集群也是一个单一的系统,向用户提供相应的服务及应答请求。因此,集群是可以看做一组服务器相互协同向用户提供应用程序、数据资源等应用功能。其目的就是用来提高整个应用系统的高可用性、可靠性与可伸缩性。
服务器集群(英文一般简称Cluster),一般由若干台(一般3台以上)服务器组成集群服务器。服务器集群解决一台服务器存在潜在问题:
单台服务器如果由于硬件故障、网络通讯异常、性能受限、软件故障、宕机等情况,那个所运行的业务就会中断,且业务恢复起来非常麻烦、时间周期长;而服务器集群解决了这个问题,在集群中某一台服务器出现故障时,业务不会中断,故障服务器上的业务会自动切换到集群中的其它服务器上,保证用户无感知到业务中断的体验。
单台服务器性能有限,而服务器集群能够通过软件聚合多台服务器的硬件性能,对外提供超强的硬件性能,这是单台服务器所不具备的条件。
集群架构的特性
集群架构一般有以下几点特性。
1、高性能
实际工作、生产环境,有很多工作需要很强的处理能力的计算机来完成计算任务,比如:常见像天气预报、火箭飞行发射、其他高科技精密实验等。而单个独立的计算机处理能力远远不能满足这些需求,所以,需要一组或多组的服务连接起来组成一个集群去完成此项计算工作。从而提高整体的性能。
2、低成本
前面也提到了,像那种超级计算机的费用不是每个企业都能接受的。在相同需求的条件下,采用计算机集群比用同等计算性能的大型或超级计算机的成本更理想,性价比更高。
3、扩展性强
集群系统中节点数目可以增长到几千、甚至上万,其扩展性远超单台超级计算机。
当服务器的负载压力增高时,集群的架构模式方便增加服务器来应付这种负载带来的压力,同时,如果负载比原来低了,也可以将某一组服务器协调出来作其他的应用服务,调配方便。同样,通过这种扩展在满足需求的同时,而且还不会降低原来的服务质量与用户体验感。
4、高可用
企业的业务需求需要支持7*24时不间断的服务,因此当服务器硬件出现问题时,这种架构足以能满足这种需求。
在硬件和软件上都有冗余,通过检测软硬件的故障,将故障屏蔽,由存活节点提供服务,可实现高可用性。即使部分硬件和软件发生故障,但整个系统的服务必须是7*24小时运行的。当发现一个模块失败时,要这模块上提供的服务迁移到其他模块上。在理想状况下,这种迁移是即时的、自动的。
集群的优势
1、透明性
如果一部分服务器宕机了业务不受影响,一般耦合度没有那么高,依赖关系没有那么高。比如NFS服务器宕机了其他就挂载不了了,这样依赖性太强。
如何高效地使得由多个独立计算机组成的松藕合的集群系统构成一个虚拟服务器;客户端应用程序与集群系统交互时,就像与一台高性能、高可用的服务器交互一样,客户端无须作任何修改。部分服务器的切入和切出不会中断服务,这对用户也是透明的。
2、高性能
访问量增加,能够轻松扩展。
性能要接近线性加速,这需要设计很好的软硬件的体系结构,消除系统可能存在的瓶颈。将负载较均衡地调度到各台服务器上。
3、可管理性
整个系统可能在物理上很大,要使集群系统变得易管理,就像管理一个单一映像系统一样。在理想状况下,软硬件模块的插入能做到即插即用。
4、可编程性
在集群系统上,容易开发应用程序,门户网站会要求这个。