-
IBM
RSCT
中的
ERRM(Event
response
resource
Manager)
组件为这一
需求提
供了一套有效的解决方案。对于常见的系统指标数值,例如文件系
统使用状况,
CPU
工作状况,内存使用状况以及网卡各种指标值等都提供
了很好的支持。同时,用户也可以很方便地定制各种系统资源监控。本文
将详细阐述
RSCT
ERRM
在集群系统监控中的应用。
随着大规模集群系统的广泛应用,系统的监控变得日趋复杂,对于系统各种
指标数值的监控的显得愈发重要。
IBM
RSCT
中的
ERRM(Event
response
resour
ce
Manager)
组件为这一需求提供了一套有效的解决方案
。
对于常见的系统指标
数值,例如文件系统使用状况,
CPU
工作状况,内存使用状况以及网卡各种指
标值等都提供了很好的支持。
同时,
用户也可以很方便地定制
各种系统资源监控。
本文将详细阐述
RSCT
ERRM
在集群系统监控中的应用。
1.
RSCT
框架简介
RSCT
(
Reliable
Scalable
Cluster
Technology
)是一系列软件组件的集合,为
IBM
许多集群软件提供可用性,可扩展性及易用性等方面的
底层支持。
RSCT
包含以下几个组件,本文主要讨论
RMC
子系统和核心资源管理器
ERRM
RMC
子系统
(Resource
Monitoring
and
Control
subsystem)
RSCT
核心资源管理器
(RSCT
core
resource
managers)
,包括
ERRM,
Confi
gRM, <
/p>
FSRM
,
HostRM
,
SensorRM
等。
RSCT
集群安全服务
(RSCT
cluster
security
services)
拓扑服务子系统
(Topology
Services
subsystem)
组群服务子系统
(Group
Services
subsystem)
图
1.
RSCT
资源架构
图
1
显示了
RSCT
中资源的架构,
RMC
子系统是整个
RSCT
的核心,它
为其它组件提供了一套通用的接口,
这
样
RSCT
的上层客户软件无需关
心各个底
层的资源管理器的运行细节,只要通过
RMC
提供的接口
(RMC
API)
与
RSCT
进行通信。同时,底层的资源管理器及服务只需实现
RMC
指定的接口
(RMF
A
PI)
来提供相应的功能。本文中的
ERRM
就是
RSCT
核心资源管理器的一种,
它
主要用于系统监控。
2.
RSCT
资源
/
资源类、域
资源和资源类
RSCT
中最基础的概念就是资源
(resource)
。所谓资源,在
RSCT
中可以是
任意的物理或者逻
辑上的实体,
例如集群中的一个主机节点,
主机上的一个网卡<
/p>
或主机操作系统的根文件系统等等,
资源有许多不同的属性,
p>
所有拥有相同属性
而又有不同属性值的资源组成了资源类
(resource
class)
,资源类负责发现资源,
创建资源,删除资源等等。一个资源类隶属于一个
资源管理器(
resource
manag
< br>er
),而资源管理器可以提供任意数量的资源类。
RS
CT
几乎所有的功能都和资
源以及资源类相关。
在
RSCT
的各个包被正确安装以后可以通过
RMC
的命令行接口来显示系
统中的
关于资源和资源类的各种信息。
显示资源类
/
资源定义
通过
RMC
的命令行接口
lsrsrcdef
(该命令位于目录
/usr/sbin/rsct/bin
中)
可以显示关于资源和资源类的定义信息,
在不带任何参数的情况下,
该命令会输
出系统中所有存在的资源类。
示例
1
演示了如何使用
lssrcdef
命令来查看系统中所有的
RSCT
资源类
(注:该示例是笔者测试环境中的输出,实际情况可能与
此会有不同)
:
示例
1
c176n11:/
#
lsrsrcdef
class_name
…
….
可以将资源类作为参数传递给命令
lsrsrcdef
并加上
-c
选项显示资源类本
身的定义,示例
2
是将
资源类作为参数传递给命令
lsrsrcdef
的输出,可见
属于资源管理器
:
示例
2
c176n11:/
#
lsrsrcdef
-c
-e
Resource
Class
Definition
for
resource
class
1:
class_name
=
class_id
=
9
properties
=
{
display_name
=
System
description
=
FileSystem
resource
class
monitors
the
attributes
and
mount
status
of
all
resources.
locator
=
class_pattr_count
=
1
class_dattr_count
=
3
class_action_count
=
0
pattr_count
=
32
dattr_count
=
4
action_count
=
0
error_count
=
0
rsrc_mgr_count
=
1
rsrc_mgrs
1:
mgr_name
=
first_key
=
1
last_key
=
1
资源类本身也有一些属性可以通过
lsrsrcdef
-c
-A
p|d
resource_class
来
进一步显示,其中
-A
选项表示希望显示的属性是永久属性(
-A
p
)
,
还是动态
属性(
-A
d
)
,
这类
属性值可能随时发生变化。如果要显示资源相关信息,只要
去掉
lsrsrcdef
命令中的
-c
选项并加上
-A
d|p
选项,其中
-A
d
表示显示动
态属性,
-A
p
显示永久属性。示例
3
显示
资源的动态属性定义:
示例
3
c176n11:/
#
lsrsrcdef
-Ad
-e
Resource
Dynamic
Attribute
Definitions
for
attribute
1:
program_name
=
display_name
=
State
group_name
=
properties
=
{
description
=
the
operational
state
of
a
resource
is
changed,
this
dynamic
attribute
is
asserted.
attribute_id
=
1
group_id
=
0
data_type
=
variable_type
=
variety_list
=
{[1,8]}
variety_count
=
1
init_value
=
0
min_value
=
0
max_value
=
100
expression
=
!=
1
expression_description
=
event
will
be
generated
when
the
filesystem
goes
offline.
rearm_expression
=
rearm_description
=
PTX_name
=
attribute
2:
program_name
=
…
attribute
3:
program_name
=
…
可以看出
资源有三个动态
(-A
d
选项
)
属
性,同样的方法可以显示出资源的
永久属性。
显示资源类
/
资源属性值
RMC
同样提供了用于显示资源类和资源属性值的方法
rmc
接口
lsrsrc
。例
如,希望得到系统中所有的
资源及其属性值。可以通过
lsrsrc
-A
d|p|b
-
s
“s
election_string”
来得到。
其中
-A
选项值的
d
代表动态属性,
p
表示永久属性,
b
表示两者,
-s
选项用于过滤希望显示的
资源信息。示例
4
显示了
Name
属性不等于
(‘/’)
的
资源的永久属性值:
示例
4
c176n11:/
#
lsrsrc
-Ap
-s
!='/'
Resource
Persistent
Attributes
for
resource
1:
Name
=
MountPoint
=
MountDir
=
Dev
=
Vfs
=
Log
=
Mount
=
Permissions
=
Account
=
Type
=
Size
=
262144
Frag
=
512
Nbpi
=
4096
Compress
=
Bf
=
Ag
=
8
ManualMode
=
0
ActivePeerDomain
=
NodeNameList
=
{
resource
2:
Name
=
…
resource
3:
Name
=
…
resource
4:
Name
=
…
resource
5:
Name
=
创建资源
一般情况下并不需要手动去创建资源,
因为在各个资源管理器初始化的时候
都会自动调用资源类的发现程序去检查系统当前属
于该资源类的资源并存储。
例
如对于
资源类,它属于资源管理器
,当
初始化的时候,就会驱动
发现程
序去检查系统当前存在的文件系统资源并存储起来。
但有时候还是得手动创建一
些资源,例如
ERRM
的
资源。创建资源的
rmc
接口为
mkrsrc
。将
-e
选项
和资源类名作为
mkrsrc
的参数时,
会显示创建
该资源类必须指定的属性以及可
选属性的例子。示例
5
的输出显示了如何创建
资源:
示例
5
c176n11:/
#
mkrsrc
-e
Sample
mkrsrc
command
with
required
attributes:
mkrsrc
Name=char_ptr
Sample
mkrsrc
command
with
required
and
optional
attributes,
and
comm
and
arguments:
mkrsrc
Name=char_ptr
NodeNameList=char_ptr_array
NodeIDs=uint64_array
修改资源类
/
资源永久属性值
对于已经创建或者自动发现的资源,可以通过
rmc
接口
chrsrc
来修改资
源的永久属性
值,
注意并不是所有的永久属性值都可以修改的,
资源只读属性
是
无法通过
chrsrc
来修改的。
可将属性和资源类作为参数通过
中
lsrsrcdef
接口
检查资源属
性是否可以手动改变,动态属性值一般不通过
rmc
修改,而是随着
系统变化,属性值自动由各个资源管理器根据一定的频
率收集设置。
可以通过
-s
选项来对满足特定条件的某个或者某些资源的属性值进行修
改。示例
6
是修改
Name
属性等于
”FSCondi
tion”
的
资源的
EventExpression
属性值:
示例
6
c176n11:/#chrsrc
-s
='FSCondition'
p>
EventExpression=
!=''
除了
-s
选项,可以通过指定在整个
cluster
中是唯一的资源句柄(
resourc
e
handler
)属性值,来限定某个资源修改属性值,资源句柄可以通过
lsrsrc
得
到,具体请参见参考文献
2
。
修改资源类的属性值,同样使用
chrsrc
接口,但比资源多一个
-c
选项表
示资源类。
删除资源
对于系统中的各种资源,可以通过
rmc
接口
rmrsrc
删除。如
chrsrc
接口
一样,
rmrsrc
支持
-s
选项和基于资源句柄的形式。示例
7
表示删除系统中所
有
资源:
示例
7
c176n11:/
#
rmrsrc
-s
!=''
.
RSCT
域
RSCT
域表示集群节点配置目的。集群中的节点可以配置为
high
availability
(
高可用性
)
或者
manageability(
可管理性
)
,
这样可以将节点所处的域或者环
境分为两种:
1)Peer
Domain
2)
Mangement
Domain
(管理域)
;
< br>
Peer
Domain
表示该节点位于这样一个集群系统中,
集群系统中的节点的地
位都是等同的,
一个节点
知道集群中其余所有节点的信息,
这为高可用性应用提
供了条件
,
因为从外界来看,
整个集群是一个整体,
任何一个节点宕机都可能有
剩余节点来继续提供相应的服务;
Management
Domain
,这种集群里,一个管
理服务器(
Management
S
erver
)管理若干个被管理节点(
Managed
Node
),
这种
Domain
中,被管理节点之间互相不知道对方的信息。只有管理服务器知