« ぴーかん | トップページ | タコ飯 »

2017/07/15

pacemakerを動かす

とりあえず、それだけの記事。

corosyncとはーとか、pacemakerとはーとか、そういう話は耳タコなのでもう書かない。
そういうのが知りたい人はここでも見るよろし。

そもそもなんでpacemakerなん?というと仕事で使うから。
さすがに自宅の環境でHAクラスタはいらんわ。(笑)
そんなわけなので、私の普段の生活には何一つ活かせない知識だけど、せっかく覚えたのでメモしておく。

【環境】
OS:CentOS7.3
pacemaker:1.1.16
corosync:2.4.2

【目的】
まずは相互監視ができるところまで。
アプリケーション監視やノード監視は次の山としてとっておく。(笑)

【余白】
なにしろ、上のLinux-HAのページにあるサンプル設定ファイルの通りするとcorosyncが動かないという。
じゃあ、インストール時のサンプルファイルなら動くかというと、それもコメントを一つ外さないと動かない。
ホントに、動かすのに一苦労したので。

【操作】
まずは、ベースとなるOSの準備。
私は、VMware PlayerにESXiを入れてその上にCentOS7.3を二つ入れて環境を整えた。
ESXiは4GB以上のメモリを要求するので、4GBしかないマシンだとかなりカツカツな動きになってしまう。
まぁ、今時のPCなら16GBぐらい余裕で積んでいると思うので問題ないだろう。
ウチのメインマシンは12GBしかないけどな!

ウチの場合はESXiのインストール時に8GBのメモリを与えた。
多分、今回のpacemakerの動作確認くらいならそんなに必要ないとは思うが、今後別の遊び(?)をする時に使うかもしれないので。

CentOSは最小インストール。
何がいるのか知りたかったのと、OSが余計な設定をしてそのせいで苦労するとか、そーゆーのは勘弁なので。
あー。やっぱり、サーバOSはLinuxなんかよりFreeBSDの方が使いやすいよなぁ。(余談)

CentOSを入れたらまずネットワーク周りを整える。
このあたりは、ほかの人がいろいろ解説してくれているので割愛。

●SELinuxとfirewallの停止
どちらも、切るのは邪道だが今回の目的はpacemakerを動かすことだけなので余計な手間はいっさいかけない。
1.SELinuxの無効化の方法
# vi /etc/selinux/config
configファイルの中でSELINUXというパラメータがあるので、以下のように修正。
SELINUX=disabled
書き換えたら保存してリブート。(次のファイアウォールの停止をしてからリブートでもいい)
2.ファイアウォールの停止方法
# systemctl desable firewalld
このコマンドにより、次回起動時からファイアウォールが止まるので、やっぱりリブートする。
もちろんリブートせずに停止コマンドを打って停止させても良い。私は、OS起動後に停止させるのが気持ち悪いのでリブートしているがそこらへんはお好みである。

●pacemakerのインストール
今回対象としている、1.1.16は先月出たばっかりなので、CentOSのリポジトリには入っていない。
なので、Linux-HAのページからダウンロードする。
wgetできれば楽なのだが、なぜかうまくいかない(PHP経由だから?)ので、他の方法で対象マシンまで持っていくこと。
ちなみに私は、Windowsでダウンロードしてteratermで接続した状態でD&Dしてscpコピーした。(teratermは便利だねえ)

コピーできたら、まずはrpmコマンドでリポジトリを展開
# yum install -y pacemaker-repo-1.1.16-1.1.el7.x86_64.rpm
つづけてpacemakerのインストール
# yum install -y pacemaker-all
もちろん、予め対象マシンはインターネットに接続できるようにしておくこと。
yumが使えないと、rpmで一個ずつ入れていくことになるが、発狂すること請け合いである。(特にperl周り)

●corosync.confの編集
私はここでつまずいた。
つまずかなかった人はいるんだろうか?
まずは設定ファイルをコピー。
# cd /etc/corosync
# cp -p corosync.conf.example.udpu corosync.conf
もう一つのサンプルファイルはマルチキャストができる環境なら使えるということなのだが、そもそもマルチキャストがなんなのか、それができると誰が幸せになれるのか、調べてみたがわからなかったので、ユニキャスト対応のudpuファイルの方を使用する。
# vi corosync.conf

# Please read the corosync.conf.5 manual page
totem {
version: 2

crypto_cipher: none
crypto_hash: none

interface {
ringnumber: 0
bindnetaddr: 192.168.102.0  ←①
mcastport: 5405
ttl: 1
}
transport: udpu
}

logging {
fileline: off
to_logfile: yes
to_syslog: yes
logfile: /var/log/cluster/corosync.log
debug: off
timestamp: on
logger_subsys {
subsys: QUORUM
debug: off
}
}

nodelist {
node {
ring0_addr: 192.168.102.130  ←②
nodeid: 1
}

node {
ring0_addr: 192.168.102.132  ←②
nodeid: 2
}

}

quorum {
# Enable and configure quorum subsystem (default: off)
# see also corosync.conf.5 and votequorum.5
provider: corosync_votequorum  ←③
}


①:対象のネットワークアドレスか自身のIPアドレスを書く
どっちだよ?と思うが、マニュアル読む限りではどっちでもいいらしい。なんじゃそら。
②:自分と対向のそれぞれのIPアドレスを書く。
サンプルには5個ばかり記述が並んでいたが、今回は2台しか用意していないので2セクションのみである。
興味があったら3台以上設定してみて、結果がどうなったか教えてほしい。(笑)
③:ここが今回の肝。サンプルファイルではコメントアウトされているのだが、そのコメントを外さないとcorosyncが起動しないのである。
私はそこに気づくまでえらい時間をかけてしまったので、これから設定する人は迷わないようにしてほしい。

●認証鍵の作成
以下のコマンドを実行すると/etc/corosync/authkeyというファイルができるので、対象マシンのそれぞれに配布する。(それぞれのマシンで実行するのではなく、片方で実行してもう片方に渡す、すなわち同一のファイルを配置する)
# corosync-keygen -l

以下余談だが、私はこのコマンドのことをすっかり忘れていてauthkeyがない状態でクラスタを組んでしまったのだが、一見普通に動いているように見える。このファイルがないとどういう不具合が生じるのかは謎である。

●/etc/hostsの登録
もしかしたらこの手順はいらないかもしれない。
が、明らかに設定しておいた方が使い勝手が良くなるので、これを機に設定することにする。

●/etc/hostnameの変更
hostsを設定したら、こっちも変えておかないと気持ち悪い。
変えないことで、害があるかどうかはわからない。

●pacemakerの起動
それぞれの対象マシンで以下のコマンドを実行する。
なお、このコマンドは同時に実行する必要はないので、落ち着いて片方ずつ実行してみてほしい。
# systemctl start corosync
# systemctl start pacemaker
これまでの手順通りにやっていれば、エラーが出ずにプロンプトが返ってくるはずである。

●動作確認
以下のコマンドを実行する。
# crm_mon
下のような画面が表示されれば成功である。

Stack: corosync
Current DC: test02.localdomain (version 1.1.16-1.el7-94ff4df) - partition with q
uorum
Last updated: Sat Jul 15 13:31:43 2017
Last change: Sat Jul 15 06:27:12 2017 by hacluster via crmd on test02.localdomai
n

2 nodes configured
0 resources configured

Online: [ test01.localdomain test02.localdomain ]

No active resources

今はノードの設定しかしていないので、「0 resources cofigured」という表示は正しい。
この後、監視するリソースを登録してやる必要があるのだが、それはそれでめんどくさそうなんだよなぁ。
私はそこまで記事にするかはわからないが、気長に待っていてもらえればと思う。

以上!

|

« ぴーかん | トップページ | タコ飯 »

コメント

コメントを書く



(ウェブ上には掲載しません)




トラックバック

この記事のトラックバックURL:
http://app.cocolog-nifty.com/t/trackback/50484/65537377

この記事へのトラックバック一覧です: pacemakerを動かす:

« ぴーかん | トップページ | タコ飯 »