您的位置:首页 > 运维架构 > Linux

红帽集群套件RHCS四部曲(维护篇)

2012-02-20 19:32 295 查看
一、启动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文件系统。要深入了解它们的使用,请参考帮助信息,这里不在进行讲述。

(完)
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: