最初の部分では、2 ノードの RedHat クラスターをインストールして構成する方法について詳しく説明しました。
前のチュートリアルでは、次の大まかな手順について説明しました:
- RICCI クラスター サービスをインストールして開始する
- アクティブ ノードにクラスタを作成
- クラスターにノードを追加する
- クラスタにフェンシングを追加
- フェイルオーバー ドメインを構成する
- クラスタにリソースを追加
このチュートリアルでは、クラスターのセットアップを完了するための次の手順について説明します。
- ノード間でクラスタ構成を同期
- クラスターを開始する
- アクティブ ノードをシャットダウンしてフェイルオーバーを確認する
1.ノード間で構成を同期
構成を変更するたびに、またはクラスターを初めてインストールして構成するときはいつでも、構成をアクティブ ノードからすべてのノードに同期する必要があります。
次のコマンドは、クラスタ構成を利用可能なすべてのノードに同期します:
[root@rh1 ~]# ccs -h rh1 --sync --activate rh2 password:
2.クラスター構成の確認
最後に、以下に示すように構成が有効であることを確認します。
[root@rh1 ~]# ccs -h rh1 --checkconf All nodes in sync.
構成の問題がある場合、またはアクティブ ノードの構成がクラスター内のすべてのノードの構成と一致しない場合、上記のコマンドはそれらを適切に一覧表示します。
3.クラスターを開始
Node1 でクラスターを開始するには、次の手順を実行します。
[root@rh1 ~]# ccs -h rh1 –start
両方のノードでクラスターを開始するには、次の手順を実行します:
[root@rh1 ~]# ccs -h rh1 –startall
Node1 でクラスターを停止するには、次の手順を実行します。
[root@rh1 ~]# ccs -h rh1 –stop
両方のノードでクラスターを停止するには、次の手順を実行します:
[root@rh1 ~]# ccs -h rh1 –stopall
4.クラスタ ステータスの表示
Redhat または CentOS Linux クラスターですべてが稼働している場合、以下に示すようにクラスターの状態を確認できます。
[root@rh1 cluster]# clustat Cluster Status for mycluster @ Sat Mar 15 02:05:59 2015 Member Status: Quorate Member Name ID Status ------ ---- ---- ------ rh1 1 Online, Local, rgmanager rh2 2 Online Service Name Owner (Last) State ------- ---- ----- ------ ----- service:webservice1 rh1 started
上記の出力からわかるように、クラスターには 2 つのノードがあり、両方のノードがオンラインであり、rh1 がアクティブなノードであることを示しています。
5.クラスタ フェイルオーバーの確認
クラスターのフェイルオーバーを確認するには、アクティブ ノードでクラスターを停止するか、アクティブ ノードをシャットダウンします。これにより、クラスターは、IP リソースとファイルシステム リソースを、フェイルオーバー ドメインで定義された次に利用可能なノードに自動的にフェイルオーバーします。
これは、現在ノード 1 に表示されているものです。
[root@rh1 ~]# clustat Cluster Status for mycluster @ Sat Mar 15 14:16:00 2015 Member Status: Quorate Member Name ID Status ------ ---- ---- ------ rh1 1 Online, Local, rgmanager rh2 2 Online, rgmanager Service Name Owner (Last) State ------- ---- ----- ------ ----- service:webservice1 rh1 started [root@rh1 ~]# hostname rh1.mydomain.net [root@rh1 ~]# 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: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000 link/ether 08:00:27:e6:6d:b7 brd ff:ff:ff:ff:ff:ff inet 192.168.1.10/24 brd 192.168.1.255 scope global eth0 inet 192.168.1.12/24 scope global secondary eth0 inet6 fe80::a00:27ff:fee6:6db7/64 scope link valid_lft forever preferred_lft forever [root@rh1 ~]# df -h /var/www Filesystem Size Used Avail Use% Mounted on /dev/mapper/cluster_vg-vol01 993M 18M 925M 2% /var/www
5.強制クラスタ フェイルオーバー
node1 を停止すると、すべてのサービスとリソースが 2 番目のノードにフェールオーバーし、以下の出力のように表示されます。
[root@rh1 ~]# shutdown -h now
node1 がダウンした後、node1 に次のように表示されます。
root@rh2 ~]# clustat Cluster Status for mycluster @ Sat Mar 18 14:41:23 2015 Member Status: Quorate Member Name ID Status ------ ---- ---- ------ rh1 1 Offline rh2 2 Online, Local, rgmanager Service Name Owner (Last) State ------- ---- ----- ------ ----- service:webservice1 rh2 started
上記の出力は、クラスターに 2 つのノード (rh1 と rh2) があることを示しています。 rh1 がダウンしており、現在 rh2 がアクティブなノードです。
また、以下に示すように、rh2 では、ファイルシステムと IP アドレスが問題なく rh1 からフェイルオーバーされました。
[root@rh2 ~]# df -h /var/www Filesystem Size Used Avail Use% Mounted on /dev/mapper/cluster_vg-vol01 993M 18M 925M 2% /var/www [root@rh2 ~]# 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: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP ql en 1000 link/ether 08:00:27:e6:6d:b7 brd ff:ff:ff:ff:ff:ff inet 192.168.1.11/24 brd 192.168.1.255 scope global eth0 inet 192.168.1.12/24 scope global secondary eth0 inet6 fe80::a00:27ff:fee6:6db7/64 scope link tentative dadfailed valid_lft forever preferred_lft forever
6.完全に機能する cluster.conf サンプル ファイル
以下は、2 ノードの RedHat クラスター用の最終的な作業用 cluster.conf 構成ファイルです。
[root@rh1 ~]# cat /etc/cluster/cluster.conf <?xml version="1.0"?> <cluster config_version="28" name="mycluster"> <fence_daemon post_join_delay="25"/> <clusternodes> <clusternode name="rh1" nodeid="1"> <fence> <method name="mthd1"> <device name="myfence"/> </method> </fence> </clusternode> <clusternode name="rh2" nodeid="2"> <fence> <method name="mthd1"> <device name="myfence"/> </method> </fence> </clusternode> </clusternodes> <cman expected_votes="1" two_node="1"/> <fencedevices> <fencedevice agent="fence_virt" name="myfence"/> </fencedevices> <rm> <failoverdomains> <failoverdomain name="webserverdomain" nofailback="0" ordered="1" restricted="0"> <failoverdomainnode name="rh1"/> <failoverdomainnode name="rh2"/> </failoverdomain> </failoverdomains> <resources> <fs device="/dev/cluster_vg/vol01" fstype="ext4" mountpoint="/var/www" name="web_fs"/> </resources> <service autostart="1" domain="webserverdomain" name="webservice1" recovery="relocate"> <fs ref="web_fs"/> <ip address="192.168.1.12" monitor_link="yes" sleeptime="10"/> </service> </rm> </cluster>