引言
集群技术在我们的工作中经常听到或使用。
现在我们根据已有的工作经验再来重新理解下它的概念。
计算机集群简介
计算机集群简称集群,是一种计算机系统,它通过一组松散集成的计算机软件和/或硬件连接起来高度紧密地协作完成计算工作。
在某种意义上,他们可以被看作是一台计算机。集群系统中的单个计算机通常称为节点,通常通过局域网连接,但也有其它的可能连接方式。
集群计算机通常用来改进单个计算机的计算速度和/或可靠性。
一般情况下集群计算机比单个计算机,比如工作站或超级计算机性能价格比要高得多。
集群分类
集群分为同构与异构两种,它们的区别在于:组成集群系统的计算机之间的体系结构是否相同。
集群计算机按功能和结构可以分成以下几类:
- 高可用性集群 High-availability (HA) clusters
- 负载均衡集群 Load balancing clusters
- 高性能计算集群 High-performance(HPC)clusters
- 网格计算 Grid computing
高可用性集群
一般是指当集群中有某个节点失效的情况下,其上的任务会自动转移到其他正常的节点上。
还指可以将集群中的某节点进行离线维护再上线,该过程并不影响整个集群的运行。
负载均衡集群
负载均衡集群运行时,一般通过一个或者多个前端负载均衡器,将工作负载分发到后端的一组服务器上,
从而达到整个系统的高性能和高可用性。
这样的计算机集群有时也被称为服务器群(Server Farm)。
一般高可用性集群和负载均衡集群会使用类似的技术,或同时具有高可用性与负载均衡的特点。
Linux 虚拟服务器(LVS)项目在 Linux 操作系统上提供了最常用的负载均衡软件。
高性能计算集群
高性能计算集群采用将计算任务分配到集群的不同计算节点而提高计算能力,因而主要应用在科学计算领域。
比较流行的 HPC 采用 Linux 操作系统和其它一些免费软件来完成并行运算。
这一集群配置通常被称为 Beowulf 集群。
这类集群通常运行特定的程序以发挥 HPC cluster 的并行能力。
这类程序一般应用特定的运行库,比如专为科学计算设计的 MPI 库。
HPC 集群特别适合于在计算中各计算节点之间发生大量数据通讯的计算作业,比如一个节点的中间结果或影响到其它节点计算结果的情况。
网格计算
网格计算或网格集群是一种与集群计算非常相关的技术。
网格与传统集群的主要差别是网格是连接一组相关并不信任的计算机,它的运作更像一个计算公共设施而不是一个独立的计算机。
还有,网格通常比集群支持更多不同类型的计算机集合。
网格计算是针对有许多独立作业的工作任务作优化,在计算过程中作业间无需共享数据。
网格主要服务于管理在独立执行工作的计算机间的作业分配。资源如存储可以被所有节点共享,但作业的中间结果不会影响在其他网格节点上作业的进展。
集群技术特点
- 通过多台计算机完成同一个工作。达到更高的效率。
- 两机或多机内容、工作过程等完全一样。如果一台死机,另一台可以起作用。
集群环境的特殊问题
- 并发控制
- 健忘症 Amnesia
- 脑裂 Split Brain
- IO 隔离 IO Fencing
服务器集群和分布式的区别
简单说,分布式是以缩短单个任务的执行时间来提升效率的, 而集群则是通过提高单位时间内执行的任务数来提升效率。 例如:如果一个任务由 10 个子任务组成,每个子任务单独执行需 1 小时,则在一台服务器上执行该任务需 10 小时。 采用分布式方案,提供 10 台服务器,每台服务器只负责处理一个子任务, 不考虑子任务间的依赖关系,执行完这个任务只需一个小时。 而采用集群方案,同样提供 10 台服务器,每台服务器都能独立处理这个任务。 假设有 10 个任务同时到达,10 个服务器将同时工作,10 小时后,10 个任务同时完成, 这样,整体来看,还是1小时内完成一个任务!