CentOS 8
Sponsored Link

Pacemaker : クラスターリソースを設定する (httpd)
2020/03/09
 
クラスターリソースに Apache httpd を設定して、アクティブ/パッシブ 構成の Web サーバーを構築します。
当例では以下のような環境で設定します。事前に下記の項目を設定済みであることが前提です。
  1) クラスターの基本構成を設定済み
  2) フェンスデバイスを設定済み
  3) LVM 共有ストレージを設定済み
                       +--------------------+
                       | [  ISCSI Target  ] |
                       |  storage.srv.world |
                       +----------+---------+
                         10.0.0.50|
                                  |
+----------------------+          |          +----------------------+
| [  Cluster Node#1  ] |10.0.0.51 | 10.0.0.52| [  Cluster Node#2  ] |
|   node01.srv.world   +----------+----------+   node02.srv.world   |
|     Apache httpd     |          |          |     Apache httpd     |
+----------------------+          |          +----------------------+
                            vip:10.0.0.100
                                  |
                       +----------+---------+
                       | [     Clients    ] |
                       |                    |
                       +--------------------+

[1] クラスターを構成する全ノードで、Apache httpd をインストールしておきます。
[root@node01 ~]#
dnf -y install httpd
[root@node01 ~]#
vi /etc/httpd/conf.d/server-status.conf
# 新規作成 (サーバーステータスを有効化)

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

[root@node01 ~]#
vi /etc/logrotate.d/httpd
# 7行目:以下のように変更

/var/log/httpd/*log {
    missingok
    notifempty
    sharedscripts
    delaycompress
    postrotate
        #/bin/systemctl reload httpd.service > /dev/null 2>/dev/null || true
        /usr/sbin/httpd -f /etc/httpd/conf/httpd.conf -c "PidFile /var/run/httpd/httpd.pid" -k graceful > /dev/null 2>/dev/null || true 
    endscript
}

# Firewalld 稼働中の場合はサービス許可

[root@node01 ~]#
firewall-cmd --add-service={http,https} --permanent

success
[root@node01 ~]#
firewall-cmd --reload

success
[2] 事前に作成した LVM 共有ストレージがアクティブとなっているノード上で、httpd に必要なファイルをコピーして、動作確認用のテストページを作成しておきます。
[root@node02 ~]#
mount /dev/vg_ha/lv_ha /mnt

[root@node02 ~]#
cp -pR /var/www/* /mnt/

[root@node02 ~]#
echo "Test Page" > /mnt/html/index.html

[root@node02 ~]#
umount /mnt

[3] クラスターのいずれかのノード上で、httpd リソースを追加します。
以下で Filesystem に設定しているデバイス [/dev/vg_ha/lv_ha] は事前に作成した LVM 共有ストレージです。
# ファイルシステムリソース作成

[root@node01 ~]#
pcs resource create httpd_fs ocf:heartbeat:Filesystem device=/dev/vg_ha/lv_ha directory=/var/www fstype=ext4 --group ha_group
# 仮想 IP アドレスリソース作成

[root@node01 ~]#
pcs resource create httpd_vip ocf:heartbeat:IPaddr2 ip=10.0.0.100 cidr_netmask=24 --group ha_group
# Apache リソース作成

[root@node01 ~]#
pcs resource create website ocf:heartbeat:apache configfile=/etc/httpd/conf/httpd.conf statusurl=http://127.0.0.1/server-status --group ha_group
[root@node01 ~]#
pcs status

Cluster name: ha_cluster
Stack: corosync
Current DC: node01.srv.world (version 2.0.2-3.el8_1.2-744a30d655) - partition with quorum
Last updated: Mon Mar  8 19:09:10 2020
Last change: Mon Mar  8 19:09:07 2020 by root via cibadmin on node01.srv.world

2 nodes configured
5 resources configured

Online: [ node01.srv.world node02.srv.world ]

Full list of resources:

 scsi-shooter   (stonith:fence_scsi):   Started node01.srv.world
 Resource Group: ha_group
     lvm_ha     (ocf::heartbeat:LVM-activate):  Started node02.srv.world
     httpd_fs   (ocf::heartbeat:Filesystem):    Started node02.srv.world
     httpd_vip  (ocf::heartbeat:IPaddr2):       Started node02.srv.world
     website    (ocf::heartbeat:apache):        Started node02.srv.world

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

# SELinux 有効の場合はアクティブノードで restorecon 実行

[root@node02 ~]#
restorecon -R /var/www
# 設定した 仮想 IP アドレス宛てに HTTP アクセスして動作確認

[root@node01 ~]#
curl http://10.0.0.100/index.html

Test Page
関連コンテンツ