命令行管理和维护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文件系统