LoginSignup
9
18

More than 5 years have passed since last update.

pacemakerとcorosyncを使ってクラスタ環境作ってみる

Posted at

本記事の目的や範囲など

Pacemaker+Corosyncを利用してクラスタ構成を実現します。VMWareを利用します。
参考にしたサイト
・pacemakerやcorosyncのインストールおよび設定:
http://kan3aa.hatenablog.com/entry/2015/06/05/135150
・ApacheやVIPのリソース追加
https://www.server-world.info/query?os=CentOS_7&p=pacemaker&f=2

環境概要

ホストOS:windows10 Pro
ゲストOS:CenOS7.4
ネットワーク含めた構成は以下図の通り
20180204235101.png

VIP(クラスタ構成にアクセスする際の一意なIP)として192.168.14.100を、pacemakerの内部ネットワーク用LAN(pacemakerが生死監視をするための専用ネットワーク)としてそれぞれ192.168.15.1および2を設定します。

1.VMWare上のCentOSへのインターコネクトLAN用NICセットアップ

1.1 VMWareへのNIC追加

pacemaker入れる前にインターコネクトLAN用のNICを追加します。仮想マシン上で余っているNICがあればそれを使ってもよいですが、ない場合はこの設定が必要です、
まず、仮想マシンをいったんパワーオフし、VMWareの仮想マシンを選択する画面の左側から、NICを追加したい仮想マシンを右クリックし、設定を開きます。
その次の画面下部にある「追加」ボタンを押下後現れるダイアログから「ネットワークアダプタ」を選択し「完了」ボタンを押下します。これでNICが追加できました。

1.2 NIC設定作業

以下の(2)OS設定を参考にNICの設定作業を行います。
http://kan3aa.hatenablog.com/entry/2015/06/05/135150
なお、ここでIPを設定するときは、私の場合は「192.168.15.1」もう一つの仮想マシンのほうに「192.168.15.2」としました。
NICのIP設定や、ifcfgファイル作成、NIC再起動、hostsの設定など終わったら、いよいよpacemakerなどのインストールに入ります。

2.pacemakerとcorosyncの設定

まず、pacemakerとcorosyncをインストールします。以下作業は、仮想マシンごとに実施ください。(以下でcorosyncも入ります)

sudo yum install pcs

インストールしたらpacemakerのデーモンを起動します(rootユーザで)

systemctl start pcsd

OS起動時などでも自動起動するように設定します。

systemctl enable pcsd

pcsをインストールしたら、haclusterユーザが勝手に作成されますので、こちらのパスワードを設定します。(必須ではないですが。。。)

passwd hacluster

※パスワードは何でもよいです。

3.クラスタの設定および起動

すべての仮想マシンにインストールなど終わったら、いよいよ2台の仮想マシンをクラスタとして構成していきます。(ここからはルートユーザで)
まず、お互いのhaclusterユーザを認証します。(★どちらか1台で実行してください)

pcs cluster auth cluster01 cluster02

「Authorized」と表示されればOKです。
仮想マシン2台のクラスタを作成します。(★どちらか1台で実行してください)

pcs cluster setup --name mycluster cluster01 cluster02

これでcluster01ノードとcluster02ノードで構成される「mycluster」クラスタが作成されました。
次にクラスタを立ち上げます。。(★どちらか1台で実行してください)

pcs cluster start --all

立ち上がっているか確認しましょう。

pcs status

以下のように両方のノードがOnLineになっていればとりあえずOKです
20180205134531.png

4.VIPとApacheのリソース追加

pacemakerのリソースにVIPとApacheを追加します。
※リソース・・・pacemakerの監視対象にして、フェイルオーバー時に何もなかったのように動作させたいサービス群
★ここで注意いただきたいのですが、Apache(httpdサービス)を自動起動設定している人は、リソース追加する前に必ず停止し、自動起動もオフにしてください。
CentOS7では

systemctl disable httpd #httpdサービスの自動起動停止
systemctl stop httpd #httpdサービスの停止

これをしないと、pacemaker起動時にhttpdが立ち上がらなくなります。(私はこれでハマっていました)
さて、話を戻します。リソースは以下を参考に設定します。※私はIPやリソース名を変えています。
https://www.server-world.info/query?os=CentOS_7&p=pacemaker&f=2
上記設定後にリソースが立ち上がっているか確認してみましょう

pcs status

20180205135611.png
5611p:plain
VIPとWeb_Cluster(≒Apache)がcluster01で立ち上がっていることを確認できました。
また、これで設定したVIPで/var/www/html以下のファイルや、デフォルト設定の人はApacheのテストページにアクセスできるはずです。

5.その他

せっかくなので、cluster01から02に切り替えしてみましょう。

pcs status

以下の通りcluster01でリソースが動いています。
(これまでの手順で実施した場合、Group: Webという表示が違いますが無視して下さい)
20180205141751.png

cluster01のpacemakerをスタンバイ状態させます

pcs cluster standby cluster01

cluster02でリソースが動いています。VIP経由でも正しく接続できるはずです。
20180205142110.png

9
18
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
9
18