一、启动RHCS集群
RHCS集群的核心进程有cman和rgmanager,要启动集群,依次在集群的每个节点执行如下命令即可:
service cman start
service rgmanager start
需要注意的是,执行这两个命令是有先后顺序的,需要首先启动cman,然后在启动rgmanager。在集群所有节点成功启动cman服务后,然后继续依次在每个节点启动rgmanager服务。

二、关闭RHCS集群
与启动集群服务刚好相反,关闭RHCS集群的命令为:
service rgmanager stop
service cman stop
首先在集群的每个节点依次关闭rgmanager服务,等待所有节点的rgmanager服务成功关闭后,再依次关闭每个节点的cman服务即可完成真个集群服务的关闭。
有时在关闭cman服务时,可能会提示关闭失败,此时可以检查本机的共享存储GFS2文件系统是否已经卸载,还可以检查其它节点的rgmanager服务是否都已经正常关闭。

三、管理应用服务
集群系统启动后,默认是自动启动应用服务的,但是如果某个应用服务没有自动启动,就需要通过手工方式来启动。管理应用服务的命令是clusvcadm,通过这个命令可以启动、关闭、重启、切换集群中的应用服务。
1. 启动某个应用服务
可以通过如下方式启动某个节点的应用服务:
clusvcadm -e <Service> -m <Node>
其中:
 Service:表示集群中创建的应用服务名称。
 Node:表示集群节点名称。
例如,要启动节点web1上的webserver服务,操作如下:
[root@web1 ~]# clusvcadm -e webserver -m web1
Member web1 trying to enable service:webserver...Success
service:webserver is now running on web1
可以通过/var/log/messages文件查看启动应用服务的详细信息。当webserver启动后,与服务相关的集群资源:如虚拟IP、应用程序服务脚本也随之启动,可以通过如下命令查看集群资源是否已经正常加载:
2. 关闭某个应用服务
可以通过如下方式关闭某个节点的应用服务:
clusvcadm -s <Service> -m <Node>
例如,要关闭节点Mysql1上的mysqlserver服务,操作如下:
[root@Mysql1 ~]# clusvcadm -s mysqlserver -m Mysql1
Member Mysql1 stopping service:mysqlserver...Success
可以通过/var/log/messages文件查看关闭应用服务的详细信息。当mysqlserver关闭后,与服务相关的集群资源:如虚拟IP、应用程序服务脚本也随之释放。
3. 重启某个应用服务
可以通过如下方式重启某个节点的应用服务:
clusvcadm -R <Service> -m <Node>
例如,要重启节点web1上的webserver服务,操作如下:
[root@web2 ~]# clusvcadm -R webserver -m web1
Member web1 trying to restart service:webserver...Success
这个命令是在web2节点上执行的,但是也能成功将web1节点上的webserver进行重启,由此可知,clusvcadm命令在集群任意节点执行都是可以的。
4. 切换某个服务
可以通过如下方式将一个应用服务从一个节点切换到另一个节点:
clusvcadm -r <Service> -m <Node>

例如,要将节点web1的服务切换到节点web2上,操作如下:
[root@web1 ~]# clusvcadm -r webserver -m web2
Trying to relocate service:webserver to web2...Success
service:webserver is now running on web2

四、监控RHCS集群状态
通过对RHCS的监控,有助于了解集群每个节点的健康状况,并能发现问题,及时解决问题,RHCS集群提供了丰富的状态查看命令,这里主要介绍下cman_tool、clustat、ccs_tool的使用方法。
1. cman_tool命令
cman_tool的参数比较多,但是用法比较简单,基本用法格式为:
cman_tool <join|leave|kill|expected|votes|version|wait|status|nodes|services|debug> [options]
下面列举几个简单的使用例子:
[root@web1 ~]# cman_tool  nodes -a
Node  Sts   Inc   Joined               Name
  0   M      0   2010-08-23 01:24:00  /dev/sdb7
  1   M   2492   2010-08-23 01:22:43  web2
      Addresses: 192.168.12.240
  2   M   2492   2010-08-23 01:22:43  Mysql1
      Addresses: 192.168.12.231
  3   M   2492   2010-08-23 01:22:43  Mysql2
      Addresses: 192.168.12.232
  4   M   2488   2010-08-23 01:22:43  web1
      Addresses: 192.168.12.230
此命令显示了节点名称,以及对应的节点IP地址和加入集群的时间。
如果要了解更多集群节点信息,可以通过如下命令:
[root@web1 ~]# cman_tool   status
Version: 6.2.0
Config Version: 35  #集群配置文件版本号
Cluster Name: mycluster   #集群名称
Cluster Id: 56756
Cluster Member: Yes
Cluster Generation: 2764
Membership state: Cluster-Member
Nodes: 4   #集群节点数
Expected votes: 6   #期望的投票数
Quorum device votes: 2   #表决磁盘投票值
Total votes: 6   #集群中所有投票值大小
Quorum: 4 #集群法定投票值,低于这个值,集群将停止服务
Active subsystems: 9
Flags: Dirty
Ports Bound: 0 177  
Node name: web1
Node ID: 4  #本节点在集群中的ID号
Multicast addresses: 239.192.221.146 #集群广播地址
Node addresses: 192.168.12.230 #本节点对应的IP地址
2. clustat命令
clustat命令使用非常简单,详细的使用方法可以通过“clustat  -h”获取帮助信息,这里仅仅列举几个例子。

[root@web1 ~]#clustat  -i 3
Cluster Status for mycluster @ Mon Aug 23 18:54:15 2010
Member Status: Quorate
Member Name       ID       Status
------ ----             ----       ------
web2              1   Online, rgmanager
Mysql1         2   Online, rgmanager
Mysql2        3   Online, rgmanager
web1          4   Online, Local, rgmanager
/dev/sdb7         0  Online, Quorum Disk
Service Name    Owner (Last)     State        
------- ----       ----- ------        --------        
service:mysqlserver   Mysql1    started      
service:webserver     web1       started
对输出内容含义如下:
clustat的“-i”参数可以实时的显示集群系统中每个节点以及服务的运行状态,“-i 3”表示每三秒刷新一次集群状态。
在这个输出中,可以看到每个节点都处于“Online”状态,表明每个节点都运行正常,如果某个节点退出了集群,对应的状态应该是“Offline”,同时还可以看到,集群的两个服务也处于“started”状态,分别运行在Mysql1节点和web1节点。
另外,通过“ID”一列可以知道集群节点的对应关系,例如,web2在此集群中对应的就是“Node 1”节点,同理,web1对应的是“Node 4”节点。了解集群节点顺序有助于对集群日志的解读。

3. ccs_tool命令
ccs_tool主要用来管理集群配置文件cluster.conf,通过ccs_tool可以在集群中增加/删除节点、增加/删除fence设备、更新集群配置文件等操作。
下面是ccs_tool的几个应用实例:
当在一个节点修改完配置文件后,可以执行“ccs_tool  update”指令将配置文件在所有节点进行更新,例如:
[root@web1 cluster]# ccs_tool  update /etc/cluster/cluster.conf
Proposed updated config file does not have greater version number.
 Current config_version :: 35
 Proposed config_version:: 35
Failed to update config file.
ccs_tool是根据cluster.conf中的“config_version”值来决定是否进行更新的,因此在修改完cluster.conf文件后,一定要将cluster.conf的config_version值进行更新,这样执行ccs_tool时才能更新配置文件。
[root@web1 cluster]# ccs_tool  update /etc/cluster/cluster.conf
Config file updated from version 35 to 36
Update complete.

五、管理和维护GFS2文件系统
GFS2文件系统提供了很多管理和维护工具,常用的有gfs2_fsck、gfs2_tool、gfs2_jadd、gfs2_quota、gfs2_convert等,这里重点介绍前三个命令的用法。

1. gfs2_fsck命令
类似与ext3文件系统下的fsck.ext3命令,主要用于检测和修复文件系统错误。其实GFS2还有一个fsck.gfs2命令,此命令与gfs2_fsck命令完全一致。
gfs2_fsck的用法如下:
gfs2_fsck [-afhnpqvVy] <device>
下面列举几个使用例子:
[root@Mysql1 ~]# gfs2_fsck  -y /dev/sdb5
Initializing fsck
Validating Resource Group index.
Level 1 RG check.
(level 1 passed)
Starting pass1
Starting pass1c
Pass1c complete
…………
Pass5 complete      
gfs2_fsck complete

2. gfs2_tool命令
gfs2_tool命令参数较多,但使用并不复杂,它主要用来查看、修改GFS2文件系统的相关参数信息。
下面列举几个使用例子:
1)查看GFS2文件系统挂载信息
[root@web1 ~]# gfs2_tool df  /gfs2
/gfs2:
 SB lock proto = "lock_dlm"
 SB lock table = "mycluster:my-gfs2"
 SB ondisk format = 1801
 SB multihost format = 1900
 Block size = 4096
 Journals = 4
 Resource Groups = 19
 Mounted lock proto = "lock_dlm"
 Mounted lock table = "mycluster:my-gfs2"
 Mounted host data = "jid=2:id=65539:first=0"
 Journal number = 2
 Lock module flags = 0
 Local flocks = FALSE
 Local caching = FALSE

 Type           Total Blocks    Used Blocks     Free Blocks    use%          
 --------------- ----------------- -------------  ---------------- -----------
 data           1220724         136578                                 1084146        11%
 inodes         1084263         117                                     1084146        0%

(2)gfs2_tool命令
2)锁定与解锁GFS2文件系统:
[root@node1 gfs2]# gfs2_tool freeze  /gfs2
[root@node1 gfs2]# gfs2_tool unfreeze  /gfs2
GFS2文件系统被锁定后,无法进行读写操作,直到被解锁。
3)查询GFS2可挂载的接点数
[root@web1 ~]# gfs2_tool journals /gfs2
journal2 - 128MB
journal3 - 128MB
journal1 - 128MB
journal0 - 128MB
4 journal(s) found.
这里显示了可挂载节点数为4,并且每个journal的大小为128M。
4)显示GFS2的版本信息:
[root@web1 ~]# gfs2_tool  version
gfs2_tool 0.1.62 (built Mar 31 2010 07:34:25)
Copyright (C) Red Hat, Inc.  2004-2006  All rights reserved

(3)gfs2-jadd命令
gfs2-jadd主要用来配置GFS2的Journals数量和大小,用法非常简单:
gfs2_jadd [-cDhJjqV] /path/to/filesystem
下面列举几个用例:
设置Journals的大小为64M
[root@Mysql1 ~]# gfs2_jadd -J 64M
将GFS2可同时挂载的节点数目增加到5个
[root@Mysql1 ~]# gfs2_jadd  -j 5 /gfs2
另外,另外gfs2_quota用于GFS2文件系统磁盘配额管理,gfs2_convert是一个数据转换应用程序,它可以对GFS文件系统的元数据进行更新,把它转换为一个GFS2文件系统。要深入了解它们的使用,请参考帮助信息,这里不在进行讲述。

(完)


文章来源:http://ixdba.blog.51cto.com/2895551/599894