计算机集群由两台或多台计算机或节点组成,它们并行运行以实现共同目标。这允许在集群中的节点之间分配由大量单独的、可并行的任务组成的工作。这些任务可以利用每台计算机的组合内存和处理能力来提高整体性能。
要构建计算机集群,各个节点应连接到同一个网络以实现节点间通信。然后使用软件将节点连接在一起并形成集群。集群可以在每个节点上具有共享存储设备和/或本地存储。
通常,至少有一个节点被指定为领导节点,并充当集群的入口点。领导节点负责将传入的工作委托给其他节点,并在必要时整合结果并向用户返回响应。
理想情况下,集群的功能就像是一个单一系统。访问集群的用户不需要知道系统是集群还是单个计算机。此外,集群的设计应尽量减少延迟,防止节点间通信出现瓶颈。
类型
计算机集群通常可分为三种类型:
- 高可用性或故障转移
- 负载均衡
- 高性能计算
配置
两种最常用的高可用性(HA)群集配置是主动-主动(active-active)和主动-被动(active-passive)。
主动-主动
主动-主动集群通常至少由两个节点组成,两个节点同时主动运行相同类型的服务。主动集群的主要目的是实现负载均衡。负载均衡器将工作负载分布到所有节点,以防止单个节点过载。因为有较多的节点可供服务,吞吐量和响应时间相比单节点会有所提高。
主动-被动
与主动-主动群集配置类似,主动-被动群集也至少由两个节点组成。然而,正如名称“主动-被动”所示,并非所有节点都是活动的。例如,在两个节点的情况下,如果第一个节点是活动的,那么第二个节点必须是被动的或处于备用状态。
优点
集群计算的四个关键优点如下:
- 高可用性
- 可扩展性
- 性能
- 高性价比
负载均衡与集群
负载均衡与集群有一些相同点,但它们是不同的过程。群集提供了冗余并提高了容量和可用性。集群中的服务器相互了解,并为一个共同的目的共同工作。但在负载均衡中,服务器彼此并不知道。它们根据从负载均衡器接收到的请求做出反应。
我们可以结合集群使用负载均衡,但它也适用于涉及拥有共同目的的独立服务器的情况,例如运行网站、业务应用程序、Web 服务或其他一些 IT 资源。
挑战
集群带来的最明显挑战是安装和维护的复杂性增加,必须在每个节点上安装和更新操作系统、应用程序及其依赖。
如果集群中的节点是不同种类的,会使情况变得更加复杂。还必须密切监控每个节点的资源利用率,并汇总日志,以确保软件正常运行。
此外,存储变得更加难以管理,共享存储设备必须防止节点相互覆盖,分布式数据存储必须保持同步。
例子
集群通常在企业中使用,许多技术会提供集群模式。例如:
- 容器(如Kubernetes、Amazon ECS)
- 数据库(如Cassandra、MongoDB)
- 缓存(如Redis)