什么是集群

1.3   什么是集群

如果一台计算机出现故障,那么在这台计算机上运行的应用程序将停止运行。在一个业务系统中,对于重要的计算机,也应该有一台或多台对等计算机作为后备,一旦运行重要应用程序的计算机出现故障,作为后备的计算机立即接替它的工作,应用程序将切换到后备计算机上继续运行,这样可以保证整个业务系统的高可用性。实现这种应用程序切换的解决方案就是集群。这里所说的应用程序,就是指运行在一台计算机上的、向用户提供某种特定服务的应用软件,如Web服务器、邮件服务器、数据库服务器、中间件服务器等。

集群是由一些特定的硬件和软件组成的应用系统,用来提供应用程序的高可用性。多台物理上相互独立的计算机通过网络连接在一起,每台计算机通过心跳信号探测其他计算机的状态,一旦一台计算机出现故障,在这台计算机上运行的应用程序将立即切换到另外一台计算机上。为了建立集群,需要配置以下硬件设备:

1)节点

节点就是物理上独立的计算机,在一个集群中至少需要两个节点,这些节点的硬件配置应该基本相当,在节点上需要运行相同的操作系统,安装相同的应用程序。

2)网络

节点之间至少需要通过两个网络相连,其中一个称为私有网络,另外一个称为公共网络。私有网络用于发送心跳信号,心跳信号是网络中一种特殊的数据包,每个节点通过心跳信号探测其他节点的状态。公共网络一方面用于发送心跳信号,另一方面用于提供用户的访问。

3)共享的存储设备

共享的存储设备用于存储应用程序的数据,所有节点必须能够同时访问这种设备。应用程序在其中一个节点上运行,一旦这个节点出现故障,应用程序将切换到另外一个节点上。无论应用程序在哪个节点上运行,它都能够访问共享存储设备中的数据。

集群的硬件连接情况如图1.1所示。

什么是集群_第1张图片 
(点击查看大图)图1.1   集群的硬件连接

在每个节点上需要运行相同的操作系统,安装相同的集群管理软件和应用程序。当安装集群管理软件后,在每个节点上将运行一个称为“集群管理器”的进程。集群管理器有两个基本功能:一是通过心跳信号监视每个节点的状态;二是进行资源组的切换,一旦发现某个节点出现故障,集群管理器将把这个节点上的资源组切换到另外一个节点上。资源组是资源的集合,每个资源组代表一个应用程序,在资源组中包含当前应用程序所需要的资源。资源组可以在集群范围内进行切换,这就意味着应用程序在不同节点之间的切换。

在集群中需要为每个应用程序定义一个资源组,资源组中需要包含以下资源:

1)IP地址

应用程序将监听这个IP地址,用户通过这个地址访问应用程序。这个IP地址是可以漂移的,如果当前节点出现故障,IP地址将随着资源组的切换而漂移到另外一个节点上。

2)应用程序的启动脚本和停止脚本

应用程序虽然安装在每个节点上,但是只在一个节点上运行,集群管理器通过启动脚本启动应用程序,通过停止脚本关闭应用程序。

3)存储设备

应用程序所需要的数据都存储在这个存储设备中,存储设备在应用程序所运行的节点上打开,如果这个节点出现故障,存储设备将随着资源组的切换而在另外一个节点上打开。在不同的操作系统中,对存储空间的称呼是不一样的,如在AIX和HP-UX系统中,这样的存储空间称为卷组,在Solaris中称为磁盘集。这里所说的存储设备,是指同时连接在所有节点上、所有节点都可访问的外部共享存储设备,如磁盘阵列。

为了保证应用程序的高可用性,在集群中需要为应用程序定义一个资源组,在资源组中至少需要包含三种资源:用于向用户提供访问的IP地址、应用程序的启动脚本和停止脚本、用于存储应用程序的数据的存储设备。当集群启动时,资源组在其中一个节点上打开,这就意味着应用程序在这个节点上运行。当这个节点由于故障而不可用时,资源组便切换到另外一个节点上,在另外一个节点上打开。资源组也可以在管理员的控制下手工切换到另外一个节点上。

资源组的切换情况如图1.2所示。假设某个应用程序先在节点1上运行,它所对应的资源组在节点1上打开。如果节点1出现故障,资源组便切换到节点2上,应用程序所用的IP地址也将漂移到节点2上,应用程序的数据所在的存储设备在节点2上打开,应用程序的启动脚本在节点上也将自动执行,于是这个应用程序便在节点上运行。当节点1的故障解决后,应用程序所对应的资源组可自动切换到节点1上,也可以继续在节点2上保持打开状态。如果资源组继续在节点2上处于打开状态,那么当这个节点出现故障时,资源组便切换到节点1上。

什么是集群_第2张图片 
(点击查看大图)图1.2   集群的资源组切换

在图1.2中,资源组在其中一个节点上打开,其他节点都是空闲的。如果在每个节点上都运行一个应用程序,就可以充分利用这些节点的处理能力。在集群中运行多个应用程序的情况如图1.3所示:在集群中为每个应用程序分别定义一个资源组,每个资源组在不同的节点上打开。如果节点1出现故障,那么这个节点上的资源组将切换到节点2上,这时在节点2上将打开两个资源组。尽管节点2的负载大大加重,但是两个应用程序对用户都是可以访问的。当节点1的故障解决后,以前在这个节点上打开的资源组便可再次切换到这个节点上。

什么是集群_第3张图片 
图1.3   两个资源组的切换情况

目前主流的集群管理软件主要有以下几种:

IBM公司的HACMP

HP公司的ServiceGuard

SUN公司的Sun Cluster

Oracle公司的RAC

其中前三种产品只能安装在各个公司自己的操作系统中。它们的工作原理基本上是相同的。它们的基本功能就是通过资源组切换的方式来保证应用程序的高可用性。RAC可以安装在适合Oracle数据库运行的任何操作系统中,它不仅可以实现资源的切换,而且可以向用户提供并发访问,用户可以通过任何一个节点访问数据库中的数据。

集群是一个完整的应用环境。在配置集群时,需要在每个节点中安装集群管理软件,还需要在集群中安装应用程序,如Weblogic、Websphere、Oracle等。上述前三种软件仅仅是集群管理软件,而RAC本身就可以提供一个完整的应用环境,其中集群管理器的功能由Clusterware来提供,而Oracle数据库就是运行在这个集群管理器之上的应用程序。

你可能感兴趣的:(系统配置,集群,存储,脚本,网络,websphere,oracle)