冗長化(HA)構成【Ultramonkey-l4 + Pacemaker + corosync + pcs】

環境

  • CentOS7.6
  • Ultramonkey
  • Pacemaker 1.1
  • Corosync 2

ダウンロードリンク

ネットワーク構成

仮想アプライアンスを使わないで、ESXi上にWebの負荷分散を構成する機会があったのでメモ。 検証はVirtualBoxCentOSを3台立てて行った。

また、クライアントからの要求を処理する方式は、ネットワーク要件に従ってDSRとする。 この方式は応答をLBが処理しないため、スループットがいいという利点と引き換えに負荷分散とほかのサーバが 同じネットワーク上でないといけないなど、デメリットがある点に注意する。

ultramonkey

インストール

yum localinstall -y ultramonkey-repo-3.19-1.el7.x86_64.rpm
yum install -y ultramonkey
cp /usr/share/doc/ldirectord-4.0.1/ldirectord.cf /etc/ha.d/  # 設定ファイルのサンプルをコピー

設定

  • ldirectordの設定
# vim /etc/ha.d/ldirectord.cf
checktimeout=60
checkinterval=30
autoreload=no
quiescent=no

# 仮想IPとルーティング方式
virtual=192.168.100.30:80
        servicename=Web Site
        real=192.168.100.20:80 gate 1
        real=192.168.100.21:80 gate 1
        fallback=127.0.0.1:80 gate 1
        service=http
        scheduler=rr
        protocol=tcp
        checktype=negotiate
        checkport=80
        request="index.html"
        receive="Test Page"
# vim /etc/sysctl.conf
net.ipv4.ip_forward = 1

ldirectordの起動

systemctl start ldirectord

pacemaker+corosync

インストール

yum localinstall -y pacemaker-repo-1.1.21-1.1.el7.x86_64.rpm
yum install -y pacemaker corosync pcs

設定(細かいリソースの内容や意味は参考リンクへ)

systemctl start pcsd
systemctl enable pcsd
firewall-cmd --add-service=high-availability --permanent
firewa--cmd --reload
passwd hacluster  # 両ノードで実行 
pcs cluster auth [node1] [node2] -u hacluster  ## hacluster のpasswordを入力
pcs cluster setup --name [cluster_name] [node1] [node2]
pcs cluster start --all
pcs clulster enable --all 
pcs resource create VirtualIP ocf:heartbeat:IPaddr2 ip={仮想IP} cidr_netmask=24 --group [グループ名]
# その他vipcheckやldirectordのRA設定を行う

参考