みなさん、こんにちは。コンテンツ・メディア第1事業部インフラ課の藤本佳世です。
今回は、Pacemaker+Corosyncについてお話しします。
今までは、Heartbeatを使っていたのですが、サーバリプレースに伴い、最新バージョンで推奨されているPacemaker+Corosyncを構築しました。まずは、インストールの部分をお話ししたいと思います。

Pacemakerとは

オープンソースソフトウェアとして開発されている、HAクラスタソフトのこと(Heartbeat の後継)。
障害を検知したら他のサーバに自動的にフェイルオーバしてくれます。
Corosyncと組み合わせて利用します。
※HAとは、「High Availability」高可用性のこと。

Corosyncとは

ノードの死活監視を行うオープンソースソフトウェア。
Pacemakerと組み合わせて、クラスタシステムを構成します。

フリューでの利用について

主に、データベースサーバでPacemaker+Corosyncを採用しています。
サーバ(master)に仮想VIPがセカンダリIPとして割り当てられており、サーバ(master)に障害が発生した際、10秒以内(弊社環境)でサーバ(slave)に仮想VIPが付与され、masterとして稼働します。
以前のHeartbeatよりも、Corosyncの方が切替の時間が早いというメリットもあります。

構築した環境

サーバ名 OS Pacemakerバージョン Corosyncバージョン IPアドレス 仮想VIP
server1 CentOS7.4 1.1.16.1 2.4.2-1 192.168.33.28 192.168.33.21
server2 CentOS7.4 1.1.16.1 2.4.2-1 192.168.33.29

Pacemaker+Corosyncの構築

LINUX-HA JAPANのドキュメントを参考に進めました。
詳しく手順が書かれているので、この通りに進めるだけです。

インストールの後は、corosync.confを修正します。

以下のbindnetaddrとquorumの部分を修正しました。

  • bindnetaddr:構築するネットワーク環境に合わせて設定
  • expected_votes :クラスタを構成するノードの数を設定

続いて、corosync認証鍵ファイルの設定です。
どれか一つのノード上で実行します。

/etc/corosync配下にauthkey ファイルが生成されます。
作成されたauthkeyファイルをクラスタを構成する全てのノードにコピーします。

この後は、pacemakerファイルの設定です。
pacemakerの内部プロセスが故障した場合も、ノード故障として取り扱うようにするため、
以下の設定に変更します。

そして、最後にクラスタ起動スクリプトの設定です。
ドキュメントに下記の設定を反映させるために修正が必要と書かれています。

  • pacemakerサービス停止時に corosyncサービスも同時に停止させるため
  • corosyncプロセス故障時に watchdog 機能を有効にするため
  • corosyncの改善により soft_margin オプションは不要となったため

※ExecStart/Stop は置き換える前に空白にする必要があるので注意してください。

これで完了です。
ドキュメント通り進めるだけなので、簡単に構築できると思います。

いよいよ起動

設定が終わったら、いよいよ起動です。

起動確認

Onlineになっています!問題なさそうです。

ここまでがインストールの作業です。
次に、仮想VIPやping疎通監視など設定していきますが、詳細は次回説明したいと思います。
crm configureコマンドを使った設定などご紹介する予定なので、お楽しみに。