命令行管理和维护RHCS集群
1、启动RHCS集群
RHCS集群的核心进程有cman和rgmanager,要启动集群,一次在集群的每个节点上执行如下命令:
service cman start
service rgmanager start
执行着两个命令是有先后顺序的,要先启动cman,然后再启动rgmanager。
[root@web1 ~]# service cman start
Starting cluster:
Checking if cluster has been disabled at boot... [ OK ]
Checking Network Manager... [ OK ]
Global setup... [ OK ]
Loading kernel modules... [ OK ]
Mounting configfs... [ OK ]
Starting cman... [ OK ]
Starting qdiskd... [ OK ]
Waiting for quorum... [ OK ]
Starting fenced... [ OK ]
Starting dlm_controld... [ OK ]
Starting gfs_controld... [ OK ]
Unfencing self... [ OK ]
Joining fence domain... [ OK ]
[root@web1 ~]# service rgmanager start
Starting Cluster Service Manager: [ OK ]
[root@web1 ~]#
从输出可知,cman其实是一个集群服务的集合,在启动cman时,同时也启动了qdisk、fenced、dlm、gfs等服务,并且将相关集群模块载入系统内核。
等各节点cman rgmanager服务启动之后,再启动相关的服务,例如clvmd。
[root@web1 ~]# service clvmd start
Activating VG(s): 1 logical volume(s) in volume group "vg_iscsi" now active
clvmd not running on node web2.shbztech.com
[ OK ]
[root@web1 ~]#
2、关闭RHCS集群
与启动集群服务刚好相反,关闭RHCS集群应一次输入以下命令:
service rgmanager stop
service cman stop
在关闭cman服务时,如果你使用了共享存储gfs2文件系统,CLVM。可能会提示关闭失败,这时关闭集群服务之前,应该先卸载点gfs2文件系统,停掉clvmd服务
[root@web1 /]# df
Filesystem 1K-blocks Used Available Use% Mounted on
/dev/sda2 41284928 3269284 35918492 9% /
tmpfs 1478784 32132 1446652 3% /dev/shm
/dev/sda1 198337 31958 156139 17% /boot
/dev/sr0 3592530 3592530 0 100% /mnt/iso
/dev/mapper/vg_iscsi-lv_webdata
31453856 529540 30924316 2% /webdata
[root@web1 /]# umount /webdata/
[root@web1 /]#
[root@web1 /]# service clvmd stop
Deactivating clustered VG(s): 0 logical volume(s) in volume group "vg_iscsi" now active
[ OK ]
Signaling clvmd to exit [ OK ]
clvmd terminated [ OK ]
[root@web1 /]#
[root@web1 /]# service rgmanager stop
Stopping Cluster Service Manager: [ OK ]
[root@web1 /]#
[root@web1 /]# service cman stop
Stopping cluster:
Leaving fence domain... [ OK ]
Stopping gfs_controld... [ OK ]
Stopping dlm_controld... [ OK ]
Stopping fenced... [ OK ]
Stopping qdiskd... [ OK ]
Stopping cman... [ OK ]
Waiting for corosync to shutdown: [ OK ]
Unloading kernel modules... [ OK ]
Unmounting configfs... [ OK ]
[root@web1 /]#
3、管理应用服务
集群系统启动,默认自动启动应用服务,但是,如果某个应用服务没有自动启动,就需要通过手工方式来启动。
管理应用服务的命令式clusvcadm
A、启动某个应用服务
clusvcadm -e <ServiceName> -m <NodeName>
例如:
[root@web1 /]# clusvcadm -e WebServer -m web2.shbztech.com
Member web2.shbztech.com trying to enable service:WebServer...Success
service:WebServer is now running on web2.shbztech.com
可以通过/var/log/messages文件查看启动应用服务的详细信息,当webserver启动后,与服务相关的一群资源也随之启动。例如虚拟IP。
[root@web2 /]#tail /var/log/messages
。。。。。。
。。。。。。
[root@web2 /]# ip addr show
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 16436 qdisc noqueue state UNKNOWN
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: eth1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UNKNOWN qlen 1000
link/ether 00:50:56:bc:66:0b brd ff:ff:ff:ff:ff:ff
inet 172.16.1.42/24 brd 172.16.1.255 scope global eth1
inet 172.16.1.45/24 scope global secondary eth1 ------集群服务IP
inet6 fe80::250:56ff:febc:660b/64 scope link
valid_lft forever preferred_lft forever
[root@web2 /]#
B、关闭某个应用服务
clusvcadm -s <ServiceName> -m <NodeName>
例如:
[root@web1 /]# clusvcadm -s WebServer -m web2.shbztech.com
Member web2.shbztech.com stopping service:WebServer...Success
[root@web1 /]#
可以通过/var/log/messages文件查看启动应用服务的详细信息,当WebServer关闭后,与服务相关的一群资源也随之释放。如虚拟IP。
[root@web2 /]#tail /var/log/messages
。。。。。。
。。。。。。
[root@web2 /]# ip addr show
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 16436 qdisc noqueue state UNKNOWN
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: eth1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UNKNOWN qlen 1000
link/ether 00:50:56:bc:66:0b brd ff:ff:ff:ff:ff:ff
inet 172.16.1.42/24 brd 172.16.1.255 scope global eth1
inet6 fe80::250:56ff:febc:660b/64 scope link
valid_lft forever preferred_lft forever
[root@web2 /]#
C、切换某个服务
可以通过如下方式将一个应用服务从一个节点切换到另一个节点:
clusvcadm -r <ServiceName> -m <NodeName>
例如:要将节点web1的服务切换到web2上。
[root@web1 /]# clusvcadm -r WebServer -m web2.shbztech.com
Trying to relocate service:WebServer to web2.shbztech.com...Success
service:WebServer is now running on web2.shbztech.com
[root@web1 /]#
4、监控RHCS集群状态
RHCS提供了丰富的状态查看命令,这里主要介绍cman_tool clustat ccs_tool的使用方法。
A、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 2014-08-01 21:30:54 /dev/sdb5
1 M 96 2014-08-01 21:30:47 web1.shbztech.com
Addresses: 172.16.1.41
2 M 100 2014-08-01 21:30:47 web2.shbztech.com
Addresses: 172.16.1.42
[root@web1 /]#
查看集群信息
[root@web1 /]# cman_tool status
Version: 6.2.0
Config Version: 17 # 集群配置文件版本号
Cluster Name: Mycluster # 集群名称
Cluster Id: 22233
Cluster Member: Yes
Cluster Generation: 100
Membership state: Cluster-Member
Nodes: 2 # 集群节点数
Expected votes: 3 # 期望的投票数
Quorum device votes: 1 # 表决磁盘托票值
Total votes: 3 # 集群中总票值大小
Node votes: 1 # 该节点的票值
Quorum: 2 # 集群法定投票值,低于这个值,集群将停止服务
Active subsystems: 11
Flags:
Ports Bound: 0 11 177 178
Node name: web1.shbztech.com
Node ID: 1 # 本节点在集群中的ID号
Multicast addresses: 239.192.86.48 # 集群广播地址
Node addresses: 172.16.1.41 # 本节点对应的IP地址
[root@web1 /]#
B、clustat命令
显示集群的概要信息
[root@web1 /]# clustat -l
Cluster Status for Mycluster @ Fri Aug 1 22:23:46 2014
Member Status: Quorate
Member Name ID Status
------ ---- ---- ------
web1.shbztech.com 1 Online, Local, rgmanager
web2.shbztech.com 2 Online, rgmanager
/dev/sdb5 0 Online, Quorum Disk
Service Information
------- -----------
Service Name : service:WebServer
Current State : started (112)
Flags : none (0)
Owner : web1.shbztech.com
Last Owner : web2.shbztech.com
Last Transition : Fri Aug 1 22:18:30 2014
时时监控集群状态信息
[root@web1 /]# clustat -i 3 每三秒刷新一次状态
Cluster Status for Mycluster @ Fri Aug 1 22:20:07 2014
Member Status: Quorate
Member Name ID Status
------ ---- ---- ------
web1.shbztech.com 1 Online, Local, rgmanager
web2.shbztech.com 2 Online, rgmanager
/dev/sdb5 0 Online, Quorum Disk
Service Name Owner (Last) State
------- ---- ----- ------ -----
service:WebServer web1.shbztech.com started
C、ccs_tool命令
ccs_tool主要用来管理集群配置文件cluster.conf,通过ccs_tool可以在集群中进行增加、删除节点,增加、删除Fence设备,更新集群配置文件等操作。
ccs_tool是根据cluster.conf中的“config_version”值来决定是否进行更新的,因此在修改完cluster.conf文件之后,一定要将cluster.conf的config_version值进行更新,这样执行ccs_tool时才能更新配置文件。
例如,
ccs_tool update /etc/cluster/cluster.conf (RHEL6.3暂时没有测到“update”的参数)
5、管理和维护GFS2文件系统
GFS2文件系统提供了很多管理和维护工具,常用的有gfs2_tool、gfs2_jadd、gfs2_quota和gfs2_convert等。
A、gfs2_fsck命令
检测和修复文件系统错误
gfs2_fsck -y /dev/vg_iscsi/lv_webdata
B、gfs2_tool命令
查看gfs2文件系统挂载信息
gfs2_tool df /webdata
锁定和解锁GFS2文件系统
gfs2_tool freeze /webdata
gfs2_tool unfreeze /webdata
查询GFS2可挂载的节点数
gfs2_tool journals /webdata
显示GFS2的版本信息
gfs2_tool version
C、gfs2_jadd命令
设置Journals的大小为64MB
gfs2_jadd -J 64
将GFS2可同时挂载的节点数目增加到5个
gfs2_quota可用于GFS2文件系统磁盘配额管理。gfs2_convert是一个数据转换应用程序,它可以对GFS文件系统的元数据进行更新,把它转换为一个GFS2文件系统