RHCS5维护
一、启动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,通过这个命令可以启动、关闭、重启、切换集群中的应用服务。
- 启动某个应用服务 可以通过如下方式启动某个节点的应用服务: 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、应用程序服务脚本也随之启动,可以通过如下命令查看集群资源是否已经正常加载:
- 关闭某个应用服务 可以通过如下方式关闭某个节点的应用服务: 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、应用程序服务脚本也随之释放。
- 重启某个应用服务 可以通过如下方式重启某个节点的应用服务: 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命令在集群任意节点执行都是可以的。
- 切换某个服务 可以通过如下方式将一个应用服务从一个节点切换到另一个节点: 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的使用方法。
- 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地址
- 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等,这里重点介绍前三个命令的用法。
- 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
- 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文件系统。要深入了解它们的使用,请参考帮助信息,这里不在进行讲述。