#本記事の目的や範囲など
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
ネットワーク含めた構成は以下図の通り
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です
#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
5611p:plain
VIPとWeb_Cluster(≒Apache)がcluster01で立ち上がっていることを確認できました。
また、これで設定したVIPで/var/www/html以下のファイルや、デフォルト設定の人はApacheのテストページにアクセスできるはずです。
#5.その他
せっかくなので、cluster01から02に切り替えしてみましょう。
pcs status
以下の通りcluster01でリソースが動いています。
(これまでの手順で実施した場合、Group: Webという表示が違いますが無視して下さい)
cluster01のpacemakerをスタンバイ状態させます
pcs cluster standby cluster01