RHCSクラスタの管理とメンテナンス方法
RHCSクラスタの管理とメンテナンスは非常に複雑で煩雑な作業であり、RHCSクラスタを維持するには、RHCSの基本的な動作原理を熟知しなければならない。クラスタ管理の面では、RHCSはLuciグラフィックインタフェース方式とコマンドライン方式の2つの方式を提供している。ここでは、コマンドラインの下でRHCSクラスタをどのように管理するかに重点を置いている。
RHCSクラスタの起動RHCSクラスタのコアプロセスにはcmanとrgmanagerがある。クラスタを起動するには、cmanを順に起動し、rgmanagerを起動します。次のようにします。
ホストWeb 1でクラスタサービスを開始するには、次の手順に従います。
[root@web1 ~]# service cman start Starting cluster: Loading modules... done Mounting configs... done Starting ccsd... done Starting cman... done Starting qdiskd...done Starting daemons...done Starting fencing... done [ OK ]
cmanが他のノードが正常に起動した後、rgmanagerサービスを開始します。具体的な操作は以下の通りです。
[root@web1 ~]# service rgmanager start Starting Cluster Service Manager: [ OK ]RHCSクラスタを閉じる
クラスタサーバの起動とは反対に、RHCSクラスタをシャットダウンするコマンドは次のとおりです。
[root@web1 ~]# service rgmanager stop [root@web1 ~]# service cman stop
cmanサービスをオフにすると、エラーが表示される場合があります。この場合、ネイティブの共有ストレージGFS 2ファイルシステムがアンインストールされているかどうかを確認したり、他のノードのrgmanagerサービスがすべて正常にオフになっているかどうかを確認したりできます。
アプリケーションサービスの管理クラスタシステムが起動すると、デフォルトではアプリケーションサービスが自動的に起動しますが、アプリケーションサービスが自動的に起動しない場合は、手動で起動する必要があります。アプリケーションサービスを管理するコマンドはclusvcadmであり、これらのコマンドによりクラスタサービスにおけるデルアプリケーションサービスを起動、停止、再起動、切替することができる。
アプリケーションの起動wrbserverを起動する例として、ノード上のアプリケーションサービスを以下の方法で起動できます。
[root@web1 ~]#clusvcadm -e webserver -m web1 Member web1 trying to enable service:webserver...Success service:webserver is now running on web1アプリケーションを閉じる
mysqlserverを起動する例として、ノード上のアプリケーションサービスを閉じるには、次のようにします。
[root@mysql1 ~]#clusvcadm -s mysqlserver -m web1 Member mysql1 stopping service:mysqlserver...Successアプリケーションの再起動
wrbserverの起動を例に、ノード上のアプリケーションサービスを再起動するには、次のようにします。
[root@web2 ~]#clusvcadm -R wrbserver -m web1 Member web1 trying to restart service:wrbserver...Success
このコマンドは,web 2ノード上で実行され,web 1ノード上のwrbserverを再起動することも可能であることから,clusvcadmコマンドはクラスタの任意のノード上で実行可能であることが分かる.
アプリケーションの切り替えノードweb 1のサービスをノードweb 2に切り替える例として、あるノード上のアプリケーションサービスを以下のように切り替えることができる。
[root@web1 ~]# clusvcadm -r wrbserver -m web2 Trying to relocate service:webserver to web2...Success service:webserver is now running on web2RHCSクラスタ状態の監視
RHCSのモニタリングにより、クラスタの各ノードの健康状態を把握し、問題を発見し、問題をタイムリーに解決するのに役立ちます。RHCSクラスタは豊富な状態表示コマンドを提供しており、ここでは主にcman_について説明する。tool、clustat、ccs_toolの使い方。
cman_toolコマンドcman_toolパラメータは多いですが、使用方法は簡単です。ここでは2つのパラメータの使用方法を紹介します。
[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」は、クラスタ状態を3秒ごとにリフレッシュすることを示す。
この出力では、各ノードが「Online」状態にあることがわかり、各ノードが正常に動作していることを示し、あるノードがクラスタを脱退した場合、対応する状態は「Offline」であるべきであると同時に、クラスタの2つのサービスも「started」状態にあり、それぞれMysql 1ノードとweb 1ノードで動作していることがわかります。
また、「ID」列によってクラスタノードの対応関係が分かる。例えば、web 2がこのクラスタに対応しているのが「ノード1」ノードであり、同様に、web 1が「ノード4」ノードに対応している。クラスタノードの順序を理解することは、クラスタログの解読に役立ちます。
ccs_toolコマンドccs_toolは主にクラスタプロファイルclusterを管理するために使用される.conf,ccs_経由toolは、クラスタ内でノードを追加/削除したり、fenceデバイスを追加/削除したり、クラスタプロファイルを更新したりすることができます。
次はccs_toolのいくつかの適用例:
1つのノードでプロファイルを変更した後、「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.