CSS 功能简介
CSS的功能主要包括节点管理(Node Management,以下简称NM)和组管理(Group Management,以下简称GM)两部分,都是由守护进程ocssd.bin 来实现的,这是个多线程的进程(我们可以通过命令pstack获得更多线程的信息,本文并不会详细的介绍每个线程的功能)。
首先,NM主要负责集群中节点的管理。集群是由若干个节点构成的,NM要解决的问题就是如何让集群的各个节点处于一致的状态,以及,当集群成员发生改变时,如果维护集群的一致性。所以,NM要实现下列的功能:
1. 节点间的网络心跳:通过集群私网,每一个节点都定期向其他所有的节点发送网络心跳,以便确认节点之间的通信和健康性。
2. 磁盘心跳:只有网络心跳是不够的,因为,一旦出现了网络问题,当节点间互相无法发现对方的网络心跳时,无法判断那一个(些)节点的状态正常,哪一些不正常,所以,我们还需要磁盘心跳。每个节点会定期向表决盘(VF)中注册本地节点的状态信息。这样,当网络心跳出现问题时,我们就可以基于表决盘中的信息,判断节点的状态并作出正确的决定,并防止脑裂(split brain)的发生。
3. 集群节点重新配置:ocssd.bin会每隔一段时间都对集群中的每个节点的最后一次网络心跳和磁盘心跳进行判断,以决定是否需要对集群进行重新配置(也就是说,是否有某一个/些节点需要被evict掉)。当然,当一个节点加入集群时,集群的其他节点需要收到集群重新配置的信息,得到最新的节点成员列表。同样的道理,当集群的某一个节点离开集群时,其他节点需要知道最新的成员列表。当然,无论是节点加入或者离开集群,都会有一个RMN(reconfig)节点负责集群的重新配置,并通知集群中的其他节点。
注意:以上内容是针对cssd.bin的基本功能进行的介绍,对已11gR2的新特性,如:本地心跳,cssdagent/cssdmonitor, rebootless restart,在本文并不包括。如果您对这些新特性感兴趣,请参考之前的文章。
接下来,我们介绍一下GM这部分的功能。在一个集群中,除了节点之外,还有很多资源是需要管理的,(当然,主要的资源管理工作是由crsd.bin来完成的)而这些资源会作为一个一个的组(在css的世界里,我们把组称为grock)注册到css上,每一个组会由若干个成员构成,而且每一个组或者组中的一些成员都要向外共享一些信息。例如,集群中的每一个数据库都会作为一个组注册到css上,而这个组的主要的成员就是lmon进程(这就是为什么,有的时候我们会发现lmon进程有的时候会报ora-29701错误的原因。),当一个进程被启动的时候,本地实例的lmon进程需要把自己注册到css对应的组当中,它才能够知道,这个数据库同时又多少个实例在运行,每个实例运行在哪一个节点,对于这种行为,我们一般称之为组内共享。
再举一个例子,当ASM实例启动之后,ASM对应的组会把自己的信息共享出去,以便数据库实例能够发现运行的ASM实例,并进行通信,对于这种行为,我们一般称之为组间共享。如果一个组的所有成员都来自于同一个节点,我们称之为本地组;如果组中的成员来自不同的节点,我们称之为全局组。
于NM类似,当组中的某一个成员离开或者加入组的时候,也会有一个master节点(一般称这个节点为GM master)来完成组成员的重新配置。另外,组管理中另一个重要的功能就是fencing,也就是说,当组中的某一个成员离开的时候(例如:这个进程被terminate掉),css 必须确保这个进程在OS 级别已经离开,而且进程pending的所有I/O 操作都被清理掉,因为对于集群来说,我们需要在节点间保证I/O的一致性,这也是我们经常在很多文档当中会讲到,只有I/O capability的进程才会注册到css的原因之一。
最后,由于CSS的首要功能是构建集群和确保集群的一致性,所以,当集群的节点数量发生改变的时候(节点加入集群,或者离开集群),css 首先会进行NM层面的重新配置,之后才能进行GM层面的重新配置,这个顺序是不能颠倒,也不能同时进行的。这也从某种程度上解释了,为什么我们会看到,当ocssd.bin 没有完成工作的时候,crsd.bin是不能启动所管理的资源的。
CSS 功能简介的更多相关文章
- DYN-B201 Dynamics CRM 云生产力解决方案与功能简介
DYN-B201 Dynamics CRM 云生产力解决方案与功能简介 讲师:王健.林松涛Dynamics CRM 云产品正式落地中国,CRM 与 Azure.O365 深度整合无缝集成,带来无与伦比 ...
- (视频) 《快速创建网站》 2.3 WordPress初始化和功能简介
本文是<快速创建网站>系列的第4篇,如果你还没有看过之前的内容,建议你点击以下目录中的章节先阅读其他内容再回到本文. 访问本系列目录,请点击:http://devopshub.cn/tag ...
- css012 css布局简介
css012 css布局简介 一. 网页布局的类型 网页布局的类型 1.固定宽度 2.流式 3.相应式web设计 二. 如何进行css布局 1.强大的<div>标签 网页的h ...
- SharePoint 2013 "通知我"功能简介
功能简介 "通知我"主要是在列表或者文档库里面的项目,有添加/删除/修改等操作,发送邮件通知设置的用户的功能:可以针对列表或者文档库设置通知,也可以针对单一项目设置通知功能,是Sh ...
- Beginning SDL 2.0(1) SDL功能简介
原文链接为 http://wiki.libsdl.org/Introduction. 由于近期整理音视频可视化的技术,发现好久不更新的SDL发布了2.0版本,以前也没有过于关注,这里准备尝试下.了解S ...
- HelloX操作系统网络功能简介及使用和开发指南
HelloX网络功能简介及使用和开发指南 HelloX网络功能简介 作为物联网操作系统,网络功能是必备的核心功能之一.按照规划,HelloX实现了两个不同类型的TCP/IP协议栈,一个面向资源受限的嵌 ...
- 部分GDAL工具功能简介
主要转自http://blog.csdn.net/liminlu0314?viewmode=contents 部分GDAL工具功能简介 gdalinfo.exe 显示GDAL支持的各种栅格文件的信息. ...
- CSS 选择器简介
前言:这是笔者学习之后自己的理解与整理.如果有错误或者疑问的地方,请大家指正,我会持续更新! 选择器权重 如果以4位数表示选择符权重,那么: 元素选择器的权重是1: id 选择器的权重为100: cl ...
- 全国天气预报信息数据 API 功能简介与代码调用实战视频
此文章对开放数据接口 API 之「全国天气预报信息数据 API」进行了功能介绍.使用场景介绍以及调用方法的说明,供用户在使用数据接口时参考之用,并对实战开发进行了视频演示. 1. 产品功能 接口开放了 ...
随机推荐
- Android 不同阶段 Logo 显示
/********************************************************************* * Android 不同阶段 Logo 显示 * 说明: ...
- BZOJ_2225_[Spoj 2371]Another Longest Increasing_CDQ 分治+树状数组
BZOJ_2225_[Spoj 2371]Another Longest Increasing_CDQ 分治+树状数组 Description 给定N个数对(xi, yi),求最长上升子 ...
- PDB文件说明
文/玄魂 .PDB文件,全称为“程序数据库”文件.我们使用它(更确切的说是看到它被应用)大多数场景是调试应用程序.目前我们对.PDB文件的普遍认知是它存储了被编译文件的调试信息,作为符号文件存在.那么 ...
- node.js适合游戏后台开发吗?
网站服务器和游戏服务器是怎么样联系到一起的? 百牛信息技术bainiu.ltd整理发布于博客园 1. 游戏分很多种,咱们先来看看MMORPG. 再怎么简单的RPG服务器都免不了处理多人交互的情形,上百 ...
- Eclipse安装配置Maven
Eclipse安装配置Maven 1 安装配置Maven 1.1 下载Maven 从Apache网站 http://maven.apache.org/ 下载并且解压缩安装Apache Maven. ...
- Codeforces - 1114B - Yet Another Array Partitioning Task - 构造 - 排序
https://codeforces.com/contest/1114/problem/B 一开始叫我做,我是不会做的,我没发现这个性质. 其实应该很好想才对,至少要选m个元素,其中m个作为最大值,从 ...
- try/except/finally
Python也不例外,跟其他高级语言一样,内置了一套try...except...finally...的错误处理机制 当认为某些代码可能会出错时,就可以用try来运行这段代码 使用try时,要么exc ...
- 关于C_Cpp的一些小结
## 某些函数的使用 1. printf / sprintf / fprintf printf:把格式字符串输出到标准输出(可重定向) sprintf:把格式字符串输出到指定字符串中,参数比print ...
- _bzoj1096 [ZJOI2007]仓库建设【斜率优化dp】
传送门:http://www.lydsy.com/JudgeOnline/problem.php?id=1096 又是一道经典斜率优化. #include <cstdio> const i ...
- 接口测试01 - HTTP协议报文结构及示例
HTTP基本架构 用一张简单的流程图来展示HTTP协议的基本架构,以便先有个基础的了解. 1)Web Client可以是浏览器.搜索引擎等等一切基于HTTP协议发起http请求的工具. 2)Web S ...