`
gaojingsong
  • 浏览: 1182071 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
文章分类
社区版块
存档分类
最新评论

集群(cluster)基础知识介绍

阅读更多

一、集群介绍

集群(cluster)技术是一种较新的技术,通过集群技术,可以在付出较低成本的情况下获得在性能、可靠性、灵活性方面的相对较高的收益,其任务调度则是集群系统中的核心技术。

集群是一组相互独立的、通过高速网络互联的计算机,它们构成了一个组,并以单一系统的模式加以管理。一个客户与集群相互作用时,集群像是一个独立的服务器。集群配置是用于提高可用性和可缩放性。

 

 

伸缩性(Scalability):

在一些大的系统中,预测最终用户的数量和行为是非常困难的,伸缩性是指系统适应不断增长的用户数的能力。提高这种并发会话能力的一种最直观的方式就增加资源(CPU,内存,硬盘等),集群是解决这个问题的另一种方式,它允许一组服务器组在一起,像单个服务器一样分担处理一个繁重的任务。

高可用性(High availability):

单一服务器的解决方案并不是一个健壮方式,因为容易出现单点失效。像银行、账单处理这样一些关键的应用程序是不能容忍哪怕是几分钟的死机。它们需要这样一些服务在任何时间都可以访问并在可预期的合理的时间周期内有响应。集群方案通过在集群中增加的冗余的服务器,使得在其中一台服务器失效后仍能提供服务,从而获得高的可用性。

负载均衡(Load balancing):

负载均衡是集群的一项关键技术,通过把请求分发给不同的服务器,从而获得高可用性和较好的性能。一个负载均衡器可以是从一个简单的Servlet或 Plug-Ins(例如一个Linux box利用ipchains来实现),到昂贵的内置SSL加速器的硬件。除此之外,负载均衡器还需执行一些其他的重要任务,如“会话胶粘”让一个用户会话始终存在一个服务器上,“健康检查”用于防止将请求分发到已失效的服务器上。有些负载均衡器也会参与我们下面将要谈到“失效转移”过程。

容错(Fault tolerance):

高可用性意味着对数据正确性的要求不那么高。在J2EE集群中,当一个服务器实例失效后,服务仍然是有效的,这是因为新的请求将被冗余服务器处理。但是,当一个请求在一个正在失效的服务器中处理时,可能得到不正确的结果。不管有多少个错误,容错的服务应当能确保有严格的正确的行为。

失效转移(Failover):

失效转移是集群中用来获取容错能力的另一项关键的技术。当一个结点失效后,通过选择集群中的另一个结点,处理将会继续而不会终止。转移到另一个结点可以被显式的编码,或是通过底层平台自动地透明地路由到另一个服务器。

等幂方法(Idempotent methods):

等幂方法是指这样一些方法:重复用相同的参数调用都能得到相同的结果。这些方法不会影响系统状态,可以重复调用而不用担心改变系统。例如:getUsername()就是等幂的,而deleteFile就不是。当我们讨论HTTP Session失效转移和EJB失效转移时,它是一个重要的概念。

 

 

 

 

 

 

 

 

二、集群目的

1 提高性能

一些计算密集型应用,如:天气预报、核试验模拟等,需要计算机要有很强的运算处理能力,现有的技术,即使普通的大型机器计算也很难胜任。这时,一般都使用计算机集群技术,集中几十台甚至上百台计算机的运算能力来满足要求。提高处理性能一直是集群技术研究的一个重要目标之一。

2 降低成本

通常一套较好的集群配置,其软硬件开销要超过100000美元。但与价值上百万美元的专用超级计算机相比已属相当便宜。在达到同样性能的条件下,采用计算机集群比采用同等运算能力的大型计算机具有更高的性价比。虚拟机系统,一台机器上面部署多台虚拟机,虚拟出多个独立的主机。

3 提高可扩展性

用户若想扩展系统能力,不得不购买更高性能的服务器,才能获得额外所需的CPU 和存储器。如果采用集群技术,则只需要将新的服务器加入集群中即可,对于客户来看,服务无论从连续性还是性能上都几乎没有变化,好像系统在不知不觉中完成了升级。

4 增强可靠性

集群技术使系统在故障发生时仍可以继续工作,将系统停运时间减到最小。集群系统在提高系统的可靠性的同时,也大大减小了故障损失。

 

 

 

三、集群分类

1 科学集群

科学集群是并行计算的基础。通常,科学集群涉及为集群开发的并行应用程序,以解决复杂的科学问题。科学集群对外就好像一个超级计算机,这种超级计算机内部由十至上万个独立处理器组成,并且在公共消息传递层上进行通信以运行并行应用程序。

2 负载均衡集群

负载均衡集群为企业需求提供了更实用的系统。负载均衡集群使负载可以在计算机集群中尽可能平均地分摊处理。负载通常包括应用程序处理负载和网络流量负载。这样的系统非常适合向使用同一组应用程序的大量用户提供服务。每个节点都可以承担一定的处理负载,并且可以实现处理负载在节点之间的动态分配,以实现负载均衡。对于网络流量负载,当网络服务程序接受了高入网流量,以致无法迅速处理,这时,网络流量就会发送给在其它节点上运行的网络服务程序。同时,还可以根据每个节点上不同的可用资源或网络的特殊环境来进行优化。与科学计算集群一样,负载均衡集群也在多节点之间分发计算处理负载。它们之间的最大区别在于缺少跨节点运行的单并行程序。大多数情况下,负载均衡集群中的每个节点都是运行单独软件的独立系统。

但是,不管是在节点之间进行直接通信,还是通过中央负载均衡服务器来控制每个节点的负载,在节点之间都有一种公共关系。通常,使用特定的算法来分发该负载。

3 高可用性集群

当集群中的一个系统发生故障时,集群软件迅速做出反应,将该系统的任务分配到集群中其它正在工作的系统上执行。考虑到计算机硬件和软件的易错性,高可用性集群的主要目的是为了使集群的整体服务尽可能可用。如果高可用性集群中的主节点发生了故障,那么这段时间内将由次节点代替它。次节点通常是主节点的镜像。当它代替主节点时,它可以完全接管其身份,因此使系统环境对于用户是一致的。

高可用性集群使服务器系统的运行速度和响应速度尽可能快。它们经常利用在多台机器上运行的冗余节点和服务,用来相互跟踪。如果某个节点失败,它的替补者将在几秒钟或更短时间内接管它的职责。因此,对于用户而言,集群永远不会停机。

在实际的使用中,集群的这三种类型相互交融,如高可用性集群也可以在其节点之间均衡用户负载。同样,也可以从要编写应用程序的集群中找到一个并行集群,它可以在节点之间执行负载均衡。从这个意义上讲,这种集群类别的划分是一个相对的概念,不是绝对的。

 

 

四、集群系统结构

根据典型的集群体系结构,集群中涉及到的关键技术可以归属于四个层次:

(1)网络层:网络互联结构、通信协议、信号技术等。

(2)节点机及操作系统层高性能客户机、分层或基于微内核的操作系统等。

(3)集群系统管理层:资源管理、资源调度、负载平衡、并行IPO、安全等。

(4)应用层:并行程序开发环境、串行应用、并行应用等。

集群技术是以上四个层次的有机结合,所有的相关技术虽然解决的问题不同,但都有其不可或缺的重要性。

集群系统管理层是集群系统所特有的功能与技术的体现。在未来按需(On Demand)计算的时代,每个集群都应成为业务网格中的一个节点,所以自治性(自我保护、自我配置、自我优化、自我治疗)也将成为集群的一个重要特征。自治性的实现,各种应用的开发与运行,大部分直接依赖于集群的系统管理层。此外,系统管理层的完善程度,决定着集群系统的易用性、稳定性、可扩展性等诸多关键参数。正是集群管理系统将多台机器组织起来,使之可以被称为“集群”。

0
0
分享到:
评论

相关推荐

    Redis Cluster集群部署搭建详解附件

    一、Redis Cluster基础概念 1. 节点:每个运行Redis服务的实例称为一个节点,至少需要3个节点才能创建一个基本的Redis Cluster。 2. 分片(Sharding):数据分布在多个节点上,每个节点负责一部分数据,通过槽(Slot...

    windwos cluster 退出集群命令

    通过上述内容的详细介绍,我们可以看到,在Windows集群环境中,无论是基本的DHCP服务配置,还是高级的双机热备规划方案,甚至是具体的管理命令如`clusternode /forcecleanup`,都是确保系统稳定运行、提高业务连续性...

    weblogic基础知识介绍

    ### WebLogic基础知识详解 #### 一、WebLogic基本概念解析 **1. Domain(域)** - **定义**: 域是WebLogic Server中最重要的逻辑概念之一,它用来组织和管理一系列的应用服务器实例,即Server。每个域都是独立的,...

    springcloud部署redis集群

    总的来说,部署SpringCloud中的Redis集群涉及多方面知识,包括Redis的基础知识、集群原理、SpringBoot的配置以及Spring Data Redis的使用。理解这些内容,你就可以构建出稳定、高效的Redis集群服务,为SpringCloud...

    Windows环境Redis-Cluster配置

    一、Redis-Cluster基础知识 1. 分片(Sharding):Redis-Cluster通过将数据分割成多个片段(slots),并将这些片段分布在不同的节点上,实现数据的分布式存储。每个节点负责一部分槽位,使得数据负载均衡。 2. 副本...

    Redis集群搭建工具及教程

    首先,让我们来了解Redis集群的基础知识。Redis集群通过分片(Sharding)技术将数据分散到多个节点上,实现数据的冗余和负载均衡,从而提高系统的可扩展性和可用性。每个节点负责一部分数据,当某个节点故障时,其他...

    SUN CLUSTER 3.2中文完全手册PDF

    1. **集群基础知识**:介绍集群的概念、目的和优势,以及集群技术在企业IT架构中的重要性。讲解了如何通过分布式计算提高服务的连续性和性能。 2. **硬件和软件需求**:详细列出构建Sun Cluster 3.2所需的硬件配置...

    Oracle Solaris Cluster 4.10 文档

    1. **集群基础知识**:首先,了解集群的基本概念至关重要。Oracle Solaris Cluster 是一种分布式集群系统,由多个物理服务器(节点)组成,它们共享资源并协同工作,以提供单一的逻辑系统视图。这种架构可以提高服务...

    rabbitmq集群环境搭建

    ### RabbitMQ 集群环境搭建知识点 #### 一、RabbitMQ集群环境搭建概述 在分布式系统中,为了提高消息处理能力与系统的可靠性,通常会采用RabbitMQ集群架构。RabbitMQ集群允许消息发布者将消息发送到任意一个集群...

    大牛总结codis-cluster集群部署实战手册

    《大牛总结codis-cluster集群部署实战手册》是针对分布式数据库解决方案Codis Cluster的深度实践指南,特别关注其在3.0版本中的集群部署。 Codis是中国字节跳动开源的一款分布式数据库中间件,旨在解决单机数据库...

    21集群 3:众志成城 —— Cluster(2).md

    标题和描述中提到的知识点主要围绕RedisCluster,这是Redis的官方分布式解决方案,其核心特点包括去中心化设计、数据分片、高可用性和动态扩展能力。 首先,RedisCluster采取的是去中心化的集群架构,与Codis等其他...

    cluster_02

    下面我们将详细探讨集群的相关知识点。 1. **集群的基本概念**: 集群是一组相互协作的独立计算节点,它们共同对外提供服务,当单个节点出现故障时,其他节点可以接管其工作,确保服务的连续性。这被称为高可用性...

    Oracle VM Blade Cluster

    ### Oracle VM Blade Cluster知识点 #### 一、Oracle VM Blade Cluster参考配置概述 Oracle VM Blade Cluster是一种集成化的解决方案,旨在简化虚拟化基础设施的部署过程。它为IT组织提供了一个经过预先测试和验证...

    galera cluster文档PDF

    ### Galera Cluster 文档知识点概览 #### 一、技术描述 **1. 复制机制** - **数据库复制:** Galera Cluster 实现了一种称为“认证基础复制”(Certification-based Replication)的独特机制,它使得多主复制成为...

    redhat linux Cluster

    **二、集群基础知识** 在深入探讨Red Hat Cluster Suite之前,理解集群的基本概念至关重要。集群是由多台计算机(节点)组成的集合体,它们通过网络互相连接,协同工作以提供比单一计算机更强大的处理能力和更高的...

    Redis集群配置文件

    以下将详细介绍Redis集群配置文件的相关知识,以及如何进行集群搭建。 首先,了解Redis集群的基本概念: 1. **节点(Node)**:Redis集群由多个节点组成,每个节点都是一个独立运行的Redis服务器。 2. **槽(Slot)...

    Red_Hat_Enterprise_Linux-5-Cluster_Administration-en-US.pdf

    根据给定文件的信息,我们可以深入探讨Red Hat Enterprise Linux 5(RHEL 5)集群管理的知识点,这包括配置、管理以及与之相关的各种技术细节。 ### 集群概念 集群是通过网络连接在一起的一组独立计算机,它们共同...

    集群和负载均衡相关知识

    集群和负载均衡是现代IT基础设施的关键组成部分,它们旨在提高系统的稳定性和处理能力,同时确保服务的高可用性。集群技术将多个系统连接在一起,形成一个单一的、虚拟的实体,可以协同工作,提供更高的性能和可靠性...

Global site tag (gtag.js) - Google Analytics