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. 产品功能 接口开放了 ...
随机推荐
- iOS添加弹出菜单
最近接触的项目需要实现一个弹出窗,类似于点击微信navigation bar右上角的bar button所展现的弹出窗,最终效果如下: Demo代码存放在https://github.com/LuoD ...
- 「LuoguP4752」牧 Divided Prime(判质数
Description 给定一个数字 A,这个 A 由 a1,a2,⋯,aN相乘得到. 给定一个数字 B,这个 B 由 b1,b2,⋯,bM相乘得到. 如果 A/B 是一个质数,请输出YES,否则输出 ...
- 【HDU 3555】 Bomb
[题目链接] 点击打开链接 [算法] 数位DP [代码] #include<bits/stdc++.h> using namespace std; #define MAXL 15 type ...
- CreateRemoteThread注入DLL
DLL注入的常用方式之一远程线程注入,实现代码如下 // CreateRemoteThread.cpp : Defines the entry point for the application.// ...
- @font-face 用fontsquirrel把ttf文件获取别的文件格式
@font-face是css3的一个模块,但是@font-face这个功能早在IE4就支持了,他主要是把自己定义的Web字体嵌入到你的网页中, @font-face { font-family: &l ...
- HTML 新属性
accesskey 属性 -- 代表链接的快捷键访问方式 定义了accesskey的链接可以使用快捷键(ALT+字母)访问. 主菜单与导航菜单使用accesskey,通常是不错的选择. 取值: 字母 ...
- 附加类型“UniversalReviewSystem.Models.ApplicationUser”的实体失败,因为相同类型的其他实体已具有相同的主键值。在使用 "Attach" 方法或者将实体的状态设置为 "Unchanged" 或 "Modified" 时如果图形中的任何实体具有冲突键值
在使用asp.net Identity2 的 UserManager RoleManager 时,同时还有其他仓储类型接口,能实现用户扩展信息的修改,用户注册没有问题.当修改用户信息时,出现了如下异常 ...
- Ubuntu16.04 开机显示The system is running in low-graphics mode
1. 在"The system is running in low-graphics mode"界面,直接按 ctrl+alt+F1,会进入一个命令输入的模式 2. 输入用户名密码 ...
- 【WIP】客户端JavaScript Web Object
创建: 2017/10/11 更新: 2017/10/14 标题加上[WIP],增加[TODO] 更新: 2018/01/22 更改标题 [客户端JavaScript Web Object, UR ...
- TP5之model
使用model 查询数据,添加数据,修改数据,删除数据 聚合操作 获取器,修改器 自动添加时间戳(创建时间,修改时间) 软删除 1.使用model查询数据 $res = User::get(1); / ...