RAC之集群Clusterware(一)

什么是集群 

       集群(Cluster)是由两台或多台节点机(服务器)构成的一种松散耦合的计算节点集合,为用户提供网络服务或应用程序(包括数据库、Web服务和文件服务等)的单一客户视图。集群系统一般通过两台或多台节点服务器系统通过相应的硬件及软件互连,每个群集节点都是运行其自己进程的独立服务器。这些进程可以彼此通信,对网络客户机来说就像是形成了一个单一系统,协同起来向用户提供应用程序、系统资源和数据。除了作为单一系统提供服务,集群系统还具有恢复服务器级故障的能力。集群系统还可通过在集群中继续增加服务器的方式,从内部增加服务器的处理能力,并通过系统级的冗余提供固有的可靠性和可用性。

 集群的分类

1、高性能计算集群:

  高性能计算集群采用将计算任务分配到不同节点来提高整体计算能力主要应用在科学计算领域。

2、负载均衡集群LB

  负载均衡集群为企业需求提供更实用的系统。该系统使各节点的负载流量可以在服务器集群中尽可能平均合理地分摊处理。该负载需要均衡计算的应用程序处理端口负载或网络流量负载。这样的系统非常适合于运行同一组应用程序的大量用户。每个节点都可以处理一部分负载,并且可以在节点之间动态分配负载,以实现平衡。对于网络流量也如此。通常,网络服务器应用程序接受了大量入网流量,无法迅速处理,这就需要将流量发送给在其它节点。负载均衡算法还可以根据每个节点不同的可用资源或网络的特殊环境来进行优化。

3、高可用性集群HA

  为保证集群整体服务的高可用,考虑计算硬件和软件的容错性。如果高可用性群集中的某个节点发生了故障,那么将由另外的节点代替它。整个系统环境对于用户是一致的。

      实际应用中HALB经常是同时具备,ORACLE RAC就同时具备HALB

 

 

 

 集群软件 

理解 了前面的内容,有助于 理解ORACLE RAC 架构及各个组件的功能。

集群最终的目的是为了 向客户端提供单一视图并提供HALB。在集群中每个节点都 能处理客户端的请求。所以每个节点至少要运行一个实例。

在单实例环境中,ORACLE 实例通过OS Kernel访问硬件并通过进程调 多个进程对硬件资源的使用,但在集群环境下 存储设备是共享使用 ORACLE 实例不仅 要协调节点内多进程的共享使用,还需 要协调主机间进程的共享使用。这种需求靠传统的OS kernel就无法满足了 ,这就需要集群软件来实现。集群软件主要有Sun Cluster , IBM HACMP 等,ORACLE也推 出了自己的集群软件 Clusterware 

ORACLE Clusterware组成

ORACLE Clusterware 有以下几个组件

 1OCR Oracle Cluster Registry 为了解决集群健忘的问题,最简单的解决办法就是整个集群只 有一份配置,所有节点共用这份配置。ORACLE采用的方法就是把这个配置文件放在共享存储上,这个文件 就是OCR DISK 节点通过OCR Process读写OCR 但只有一个节点能够读写OCR DISK OCR Master节点,其它节点 通过本节点的OCR process master nodeOCR process提交请求,由master OCR Process 完成物理读写,并同步所有节点OCR cache中的内容。

2Voting Disk 这个文件主要用于记录节点中成员状态,在出现脑裂时,仲裁那个Partition获得集群的控制权

3Cluster Synchronization Service(css) : CSS 服务 通过 多种心跳机制 实时监控集群的健康状态,提供脑裂保护等集群服务功能

CSS服务有二个心跳机制:私有网络的Network Heartbeat 用于监控节点之间的健康状态(超时阈值参数MisCount MC) ,通过Voting Disk Disk Heartbeat (超时阈值参数IO timeout IOT) 。用于监控是否有访问共享存储的IO故障如HBA卡故障,SAN交换机或者存储的线缆损坏导致I/O超时。

这两个心跳机制决定节点是否应驱逐。下面描述了驱逐行为发生的条件:

    (1)、都不超时,不会驱逐
    (2)
、网络PINGMC时间内完成 ,磁盘ping超过了MC,但是在 IOT内成,也不会驱逐
    (3)
、网络pingMC时间内完成,磁盘ping超过了IOT,则节点被驱逐
    (4)
、网络ping超过MC设置,磁盘pingMC内完成,节点也会被驱逐

 

4Cluster Ready Service CRS管理的任何事物被称之为资源,它们可以是一个数据库、一个实例、一个监听、一个虚拟IPVIP)地址、一个应用进程等等。CRS是根据存储于OCR中的资源配置信息来管理这些资源的。这包括启动、关闭、监控及故障切换(startstopmonitorfailover)操作。当一资源的状态改变时,CRS进程生成一个事件。当你安装RAC时,CRS进程监控Oracle的实例、监听等等,并在故障发生时自动启动这些组件。默认情况下,CRS进程会进行5次重启操作,如果资源仍然无法启动则不再尝试。集群的高可用HA就靠它了

       5Event Manager Service    负责发布CRS产生的各种事件

       6 Oracle Notification ServiceONS):FAN Fast Application Notification事件的发布及订阅服务

       7RACG clusterware进行功能扩展以支持Oracle的特定需求。它在FAN事件发生时执行服务器端的调用脚本(server callout script

       8Process Monitor Daemon:  监视集群和提供I/O隔离(fencing

 

下表是Clusterware后台进程列表, 其中带(r)的进程表示需要以root用户运行

 

 

 

PS:摘自《大话RAC 》ORACLE集群

Clusterware 组件

Linux/unix 进程

Windows 服务

Windows 进程

Process Monitor Daemon

oprocd(r)

OraFenceService

 

RACG

racgmain

racgimon

 

racgmain.exe

racgimon.exe

Oracle Nonification Service(ONS)

ons

 

 

Event Manager

evmd(r)

evmd.bin

evmlogger

OracleEVMService

evmlogger.exe

evmd.exe

Cluster Ready

crsd.bin(r)

OracleCRSService

crsd.exe

Cluster Synchronization Services

init.cssd(r)

ocssd(r)

ocssd.bin

OracleCSService

ocssd.exe

你可能感兴趣的:(RAC之集群Clusterware(一))