CSS介绍:
CSS ( Cluster Synchronization Service)这个组件负责构建集群, 并且维护集群的一致性。
会对css 的启动过程、NM ( Node Management)和GM ( Group Management) 介绍。
ocssd启动顺序:
1 . 10g
操作系统被启动, 并调用/etc/inittab文件中与CRS相关的脚本。
hl:35:respawn:/etc/init.d/init.evmd run >/dev/null 2 >& 1 </dev/null
h2:35:respawn:/etc/init.d/init. cssd fatal >/dev/null 2 >& 1 </dev/null
h3:35:respawn:/etc/init.d/init. crsd run >/dev/null 2>&1 </dev/null
从这些脚本的名称不难看出cssd、crsd和evmd 实际上是同时启动的。但是,它们之间是存在依赖关系的,css 需要首先完成启动,构建集群,之后crsd启动,并将所有管理的资源上线( Online) ,最后evmd启动。这也是为什么在crsd.log和evmd.log 中经常出现这两个进程。
在集群最初启动时总是会抱怨css 没有准备就绪(Ready)的原因。
2)守护进程ocssd.bin 被启动。守护进程ocssd.bin 的优先级为RT (实时)。
3 ) ocssd.bin 访问OCR ,获得构建集群的基本信息, 例如:集群名称、节点列表、访问远程节点的套接字( TCP协议)、表决盘( Voting File)位置、集群参数配置( miscount ,集群私阿信息、diagwait 等)。
4) occsd.bin向远程节点发送连接信息、和远程节点通过私网建立连接、向表决盘中写入本地节点的信息。
5)该节点加入集群。
2 . 11g r2
1 . 对于 linux 6版本,不再是/etc/inittab启动了,而是/etc/init/oracle-ohas.conf 来启动。
[grid@node1.localdomain$]more /etc/init/oracle-ohasd.conf
# Copyright (c) 2001, 2011, Oracle and/or its affiliates. All rights reserved.
#
# Oracle OHASD startup
start on runlevel [35]
stop on runlevel [!35]
respawn
exec /etc/init.d/init.ohasd run >/dev/null 2>&1 </dev/null
注意:
从11gR2版本开始,init.ohasd成为了集群启动的源头,10g 版本中的3个脚本已经不存在了。
2 . ohasd.bin守护进程被启动。该进程负责启动所有的代理进程,包括oracssdagent_root代理进程。
3 . oracssdagent_root 代理进程启动ocssd.bin守护进程。
4 . ocssd.bin守护进程访问gpnpd.bin , 以获得构建集群的基本信息,例如:集群名称、集群GID、集群私网信息、VF位置等。同时,从gipcd.bin 获得联系远程节点的连接信息。
5 . 在获得了步骤4)中提到的信息后,ocssd.bin和远程节点通信,并通过访问VF的租借块(Lease Block)获得本地节点的节点编号。
6 . 该节点加入集群。
cssd启动日志分析:
接下来, 通过ocssd. bin守护进程的日志来了解一下基本的过程。首先,说明一下ocssd.bin
的日志结构, 以方便读者更好地理解日志内容。
1 . 10g版本:[组件名]<时间>[<线程编号或者id>]><消息类型〉:〈线程名称〉:〈
消息内容>。
2 . 11g版本:<时间>: [组件][<线程编号或者id>]<线程名称>: <消息内容>。
下面看一下ocssd.bin 是如何启动的。
1.10g 版本
能看到集群的版本为10.2.0.3
[CSSD]2014-08-18 09:43:46.907 >USER: Or acle Database 10g CSS Release
10.2.0.3.0 Production Copyright 1996, 2004 Oracle. All rights reserved.
这个套接字(Socket File )主要是在其他进程和ocssd.bin通信时使用
[CSSD]2014-08-18 09:43:46.907 >USER: CSS daemon log for node <* * * *>, number
<* * * *>, in cluster 〈 * * * *〉
[CSSD]2014-08-18 09:43:46 931 [1] >TRACE: clssscmain: local-only set to false
[clsdmt] Listening to (ADDRESS= (PROTOCOL=ipc) (KEY=* * * ** * CSSD))
集群中存在两个节点
[CSSD]2014-08-18 09:43:46.947 [1] >TRACE: clssnmReadNodeinfo: added node 1
(** * * * *) to cluster
[CSSD]2014-08-18 09:43:46.958 [1] >TRACE: clssnmReadNodeinfo: added node 2
(** * * * *) to cluster
第三方集群管理软件( HP ServiceGuard )正在运行。
[CSSD]2014-08-18 09:43:46.972 [SJ >TRACE: clssnm_skgxninit: initialized skgxn
version (2/0/Hewlett-Packard SKGXN 2.0
开始读取VF上的信息。由于节点2刚刚被启动, 所以VF上节点2的状态仍然是旧的状态
(也就是关闭状态)。
[CSSD]2014-08-18 09:43:52.101 (1] >TRACE: clssnmNMinitial工ze: misscount set to
(600), impending reconfig threshold set to (596000)
miscount 值被设置为600 s。
[CSSD] 2014-08-18 09: 43: 52. 104 [ 1 J >TRACE: clssnmNMini tialize: diskShortTimeout
set to (597000)ms
short 1/0 超时被设置为597 s。
[CSSD]2014-08-18 09:43:52.106 [1] >TRACE: clssnmNMinitialize: diskLongTimeout
set to (597000)ms
long 1/0 超时被设置为597 s。
[CSSD]2014-08-18 09:43:52.116 [1] >TRACE: clssnmDiskStateChange: state from 1
to 2 disk (0 //dev/ **********)
VF被发现。
[CSSD]2014-08-18 09:43:52.116 [6] >TRACE: clssnmvDPT: spawned for disk O (/dev/******* )
[CSSD]2014-08-18 09:43:54.134 [6] >TRACE: clssnmDiskStateChange: state from 2
to 4 disk (0//dev /*********)
[CSSD]2014-08-18 09:43:54.160 [