ApacheHAクラスタ化(Pacemaker+Corosync+pcs+Apache)

最終更新日: 2018.02.21

■概要

Apacheをクラスタ化して、現用サーバー側がダウンしても待機サーバー側でサービスを継続できるようにする。

HAクラスターシステム構築済ディスクHAクラスタ化済であること


【前提条件】
サーバー1 192.168.1.15 node1
サーバー2 192.168.1.16 node2
仮想IPアドレス 192.168.1.17


■Apacheインストール

Apacheインストール

■Apache設定

[root@node1 ~]# vi /etc/httpd/conf.d/status.conf ← Apacheサーバー統計情報設定ファイル作成
ExtendedStatus On

<Location /server-status>
    SetHandler server-status
    Require local
</Location>


[root@node1 ~]# systemctl reload httpd ← Apache設定反映

[root@node1 ~]# wget -q -S http://127.0.0.1/server-status ← Apacheサーバー統計情報確認
  HTTP/1.1 200 OK ← 200であること
  Date: Wed, 20 Dec 2017 08:35:08 GMT
  Server: Apache/2.4.6 (CentOS) PHP/5.4.16
  Content-Length: 3848
  Keep-Alive: timeout=5, max=100
  Connection: Keep-Alive
  Content-Type: text/html; charset=ISO-8859-1

[root@node1 ~]# systemctl stop httpd ← Apache停止

[root@node1 ~]# systemctl disable httpd ← Apache自動起動設定解除
※ここまでをnode2側でも実施


■Apacheクラスタ化

[root@node1 ~]# pcs resource update FS_DRBD0 directory=/var/www/html ← DRBDディスクマウント先ディレクトリをApacheのドキュメントルート(例:/var/www/html)に変更

[root@node1 ~]# pcs resource create HTTPD ocf:heartbeat:apache configfile="/etc/httpd/conf/httpd.conf" statusurl="http://127.0.0.1/server-status" --group apachegroup ← ApacheをHTTPDという名前でクラスタリソースに追加

[root@node1 ~]# pcs resource cleanup ← リソースクリーンアップ

[root@node1 ~]# pcs resource show ← リソース確認
 Resource Group: apachegroup
     vipcheck_res       (ocf::myres:VIPcheck):  Started node1
     VirtualIP  (ocf::heartbeat:IPaddr2):       Started node1
     FS_DRBD0   (ocf::heartbeat:Filesystem):    Started node1
     HTTPD      (ocf::heartbeat:apache):        Started node1 ← HTTPD
 Master/Slave Set: MS_DRBD0 [DRBD0]
     Masters: [ node1 ]
     Slaves: [ node2 ]

■Apacheクラスタ化確認

(1)クラスタ確認
[root@node1 ~]# echo test > /var/www/html/index.html ← テストHTML作成

http://192.168.1.17/にアクセスしてtestと表示されること

(2)フェイルオーバー
[root@node1 ~]# halt ← node1(現用側)システム停止

[root@node2 ~]# pcs status ← node2側でクラスタ状態確認
Cluster name: mycluster
Stack: corosync
Current DC: node2 (version 1.1.16-12.el7_4.5-94ff4df) - partition with quorum
Last updated: Thu Dec 21 13:54:23 2017
Last change: Thu Dec 21 13:54:02 2017 by root via cibadmin on node2

2 nodes configured
6 resources configured

Online: [ node2 ]
OFFLINE: [ node1 ] ← node1がオフライン状態になった

Full list of resources:

 Resource Group: apachegroup
     vipcheck_res       (ocf::myres:VIPcheck):  Started node2 ← リソースがnode2側に移動した
     VirtualIP  (ocf::heartbeat:IPaddr2):       Started node2 ← リソースがnode2側に移動した
     FS_DRBD0   (ocf::heartbeat:Filesystem):    Started node2 ← リソースがnode2側に移動した
     HTTPD      (ocf::heartbeat:apache):        Started node2 ← リソースがnode2側に移動した
 Master/Slave Set: MS_DRBD0 [DRBD0]
     Masters: [ node2 ] ← DRBDのmasterがnode2側に切り替わった
     Stopped: [ node1 ]

Daemon Status:
  corosync: active/enabled
  pacemaker: active/enabled
  pcsd: active/enabled

http://192.168.1.17/にアクセスしてtestと表示されること

(3)フェイルバック
node1起動

[root@node1 ~]# pcs status ← クラスタ状態確認
Cluster name: mycluster
Stack: corosync
Current DC: node2 (version 1.1.16-12.el7_4.5-94ff4df) - partition with quorum
Last updated: Thu Dec 21 13:56:31 2017
Last change: Thu Dec 21 13:54:02 2017 by root via cibadmin on node2

2 nodes configured
6 resources configured

Online: [ node1 node2 ] ← node1がオンライン状態になった

Full list of resources:

 Resource Group: apachegroup
     vipcheck_res       (ocf::myres:VIPcheck):  Started node2 ← リソースはnode2側のまま
     VirtualIP  (ocf::heartbeat:IPaddr2):       Started node2 ← リソースはnode2側のまま
     FS_DRBD0   (ocf::heartbeat:Filesystem):    Started node2 ← リソースはnode2側のまま
     HTTPD      (ocf::heartbeat:apache):        Started node2 ← リソースはnode2側のまま
 Master/Slave Set: MS_DRBD0 [DRBD0]
     Masters: [ node2 ] ← DRBDのmasterはnode2側のまま
     Slaves: [ node1 ]

Daemon Status:
  corosync: active/enabled
  pacemaker: active/enabled
  pcsd: active/enabled

[root@node1 ~]# pcs cluster standby node2 ← node2側をスタンバイ状態へ切替

[root@node1 ~]# pcs status ← クラスタ状態確認
Cluster name: mycluster
Stack: corosync
Current DC: node2 (version 1.1.16-12.el7_4.5-94ff4df) - partition with quorum
Last updated: Thu Dec 21 13:57:12 2017
Last change: Thu Dec 21 13:56:56 2017 by root via cibadmin on node1

2 nodes configured
6 resources configured

Node node2: standby ← node2がスタンバイ状態になった
Online: [ node1 ]

Full list of resources:

 Resource Group: apachegroup
     vipcheck_res       (ocf::myres:VIPcheck):  Started node1 ← リソースがnode1側に移動した
     VirtualIP  (ocf::heartbeat:IPaddr2):       Started node1 ← リソースがnode1側に移動した
     FS_DRBD0   (ocf::heartbeat:Filesystem):    Started node1 ← リソースがnode1側に移動した
     HTTPD      (ocf::heartbeat:apache):        Started node1 ← リソースがnode1側に移動した
 Master/Slave Set: MS_DRBD0 [DRBD0]
     Masters: [ node1 ] ← DRBDのmasterがnode1側に切り替わった
     Stopped: [ node2 ]

Daemon Status:
  corosync: active/enabled
  pacemaker: active/enabled
  pcsd: active/enabled

[root@node1 ~]# pcs cluster unstandby node2 ← node2側のスタンバイ状態を解除

[root@node1 ~]# pcs status ← クラスタ状態確認
Cluster name: mycluster
Stack: corosync
Current DC: node2 (version 1.1.16-12.el7_4.5-94ff4df) - partition with quorum
Last updated: Thu Dec 21 13:58:06 2017
Last change: Thu Dec 21 13:57:37 2017 by root via cibadmin on node1

2 nodes configured
6 resources configured

Online: [ node1 node2 ] ← node2がオンライン状態になった

Full list of resources:

 Resource Group: apachegroup
     vipcheck_res       (ocf::myres:VIPcheck):  Started node1 ← リソースはnode1側のまま
     VirtualIP  (ocf::heartbeat:IPaddr2):       Started node1 ← リソースはnode1側のまま
     FS_DRBD0   (ocf::heartbeat:Filesystem):    Started node1 ← リソースはnode1側のまま
     HTTPD      (ocf::heartbeat:apache):        Started node1 ← リソースはnode1側のまま
 Master/Slave Set: MS_DRBD0 [DRBD0]
     Masters: [ node1 ] ← DRBDのmasterはnode1側のまま
     Slaves: [ node2 ]

Daemon Status:
  corosync: active/enabled
  pacemaker: active/enabled
  pcsd: active/enabled

http://192.168.1.17/にアクセスしてtestと表示されること


■関連コンテンツ




▲このページのトップへ戻る

ご自由にリンクしてください(連絡は不要です)
本ページへのご意見・ご要望、誤字・脱字・リンク切れ等のご連絡はこちらからお願いします