久しぶりのコンテンツ追加ですが、私の備忘録として久しぶりに追記です。

 

今回はPacemakerとcorosyncでHAクラスタを構築します。

 

機器構成は以下のとおり

 

cl01.test.local    192.168.1.10/24    10.10.10.10/24

cl02.test.local    192.168.1.20/24    10.10.10.20/24

 

192.168.1.0/24のネットワークはインターネット向けのネットワークになります。
10.10.10.0/24のネットワークは同期用のネットワークですのでインターネット等につながる必要はありません。

なので10.10.10.0/24のネットワークはクロスケーブルででも接続しておけばOKです。

 

 

それでは早速構築を始めましょう。

PacemakerやcorosyncはRHEL7のDVD等にも収録されていますが、バグフィックス等された最新のものを使いたいのでLinux-HA JAPANから最新のバージョンを落として利用することにします。

また、yumでパッケージ管理をしたいのでLinux-HA JAPANからリポジトリパッケージを入手します。

 

(コンテンツ作成時の最新は1.1.13-1.1です。以下1.1.13-11での構築を進めています)

 

サイトからリポジトリパッケージをダウンロードできたらインストールを行います。

 

root@cl01 # rpm -ivh pacemaker-repo-1.1.13-1.1.el7.x86_64.rpm

(※cl01,cl02両方で行います。)

 

レポジトリが入ったら早速yumでパッケージのインストールを行います。

ただし、pacemakerは仮想IPの制御にifconfigコマンドを使うようですのでnettoolsも一緒にインストールします。

 

root@cl01yum install pacemaker-all nettools

(※cl01,cl02両方で行います。)



  インストールができたら早速configを編集します。

 

以下変更箇所抜粋

root@cl01 # vi /etc/corosync/corosync.conf


totem {
        version: 2
        token: 1000    # 追加

        rrp_mode: active    #追加

 

 

interface {

    bindnetaddr:  10.10.10.0  #同期用ネットワークを指定

 

 

 

quorum {

        provider: corosync_votequorum

        expected_votes: 2


 (cl01,cl02ともに同じ内容で設定。)

 

次に同期用のキーファイルを作成します。

root@cl01corosync-keygen -l

コマンドを実行するとキーファイルができるので、cl02にも転送します。

下記例ではscpを使っていますが、USBメモリ等を使ってもかまいません。

root@cl01scp -p /etc/corosync/authkey root@cl2.test.local:/etc/corosync/authkey

 

次にPacemakerの内部プロセスに障害が発生した際もフェイルオーバーさせるために設定を追加します。


以下編集箇所抜粋

root@cl01 # vi /etc/sysconfig/pacemaker


 

# PCMK_fail_fast=no

PCMK_fail_fast=yes

 

 (cl01,cl02ともに設定)

 

次に起動スクリプトの修正を行います。

まずはcorosyncの起動スクリプトの修正です。

 

以下変更箇所抜粋

root@cl01 # cp -p /usr/lib/systemd/system/corosync.service /etc/systemd/system
root@cl01 #vi /etc/systemd/system/corosync.service

#Restart=on-failure
Restart=on-failure
#RestartSec=70
RestartSec=70
#ExecStartPre=/sbin/modprobe softdog soft_margin=60
ExecStartPre=/sbin/modprobe softdog soft_margin=6

 (cl01,cl02共に設定)

 
 
続いてpacemakerの起動スクリプトの変更です。

root@cl01 # cp -p /usr/lib/systemd/system/pacemaker.service /etc/systemd/system
root@cl01 # vi /etc/systemd/system/pacemaker.service

 

# ExecStopPost=/bin/sh -c 'pidof crmd || killall -TERM corosync'
ExecStopPost=/bin/sh -c 'pidof crmd || killall -TERM corosync'

 
 
   (cl01,cl02共に設定)

以上で設定は完了です。

systemctl start pacemaker でpacemakerを起動します。

crm_monで状態を確認し、cl01、cl02が共にonlineとなっていればHA構成の完成です。

ただし、Firewalldが動いていると片方しかonlineにならないことがあるので注意。

 

このk状態で以降crmコマンドでサービス等を設定しサービスの冗長化を行っていく。