Home –  未分類 – UltraMonkey-L7 とPacemaker なのだ

UltraMonkey-L7 とPacemaker なのだ

前回ちょっと前でUltraMonkey-L7とPacemakerについてちょっとだけセッティングしてみました。

なので今度はUltraMonkey-L7とPacemakerを連携させたいな、と思って頑張って見ました。
というのも、いくらWebサーバを複数台用意してもUltraMonkey-L7が死んでしまってサービス全体が死んでしまうのがナンセンスなので(;・∀・)

なんでしたっけSPOFっていうんでしたっけ。そういうの。

んで色々やってみました。手間取りました。
でもなんとなくできたみたいです(;´Д`)

とりあえず動いてるからいいな的なw

それで、どんな感じで設定したか・・・という所ですが。

こんな感じでサーバは2台、サービスの受付自体は192.168.1.237という仮想IPが受け付けます。

設定に関しては基本的にUltraMonkey-L7のページからドキュメントなどを参照して行っていますが私自身、HeartBeatやPacemakerがよく分かっておらず意味が分からないところがあったのでその辺は適当にフィーリングで対応しました(;´ρ`)

あと、UltraMonkey-L7のページではHeartBeat 2.14での設定に関しての記載はあるのですがPacemaker + HeartBeat3での設定情報はありません。
cib.xmlでの設定がベースになっておりましたが、crmコマンドで設定していく形にしました。(Pacemakerの解説しているページではcrmつかってたので。。。)
そういった意味でも適当に・・・・。

それで実際に設定した内容というとこんな感じです。

下準備

UltraMonkeyの公式ページより「Resource Agents for Heartbeat2」をしました。
2011/12/06時最新ファイルはただのパッチに過ぎないようなので「ultramonkey-l7-hbra_hb2.1.4.tar.gz」をダウンロードしました。

http://sourceforge.jp/projects/ultramonkey-l7/releases/?fulllist=1

UltraMonkey-L7の設定を下記のように変えました。
またまったく同様の設定で2代目のサーバ(192.168.1.236)にもUltraMonkey-L7をインストールしています。

/etc/ha.d/conf/l7directord.cf

virtual  = 192.168.1.237:80
        real = 192.168.1.235:8080 masq 1
        real = 192.168.1.236:8080 masq 1

virtualの部分のIPアドレスを192.168.1.235から192.168.1.237に変更しています。

RAのインストール

この部分は2台のサーバ共に行います。
ダウンロードしたultramonkey-l7-hbra_hb2.1.4.tar.gzを解凍し、下記3種のファイルを/usr/lib/ocf/resource.d/heartbeat/にコピーします.

cd [ファイル展開したディレクトリ]
chown root:root *
chmod 755 *
cp L7directord /usr/lib/ocf/resource.d/heartbeat/
cp L7vsd /usr/lib/ocf/resource.d/heartbeat/
cp VIPcheck /usr/lib/ocf/resource.d/heartbeat/

 Pacemakerの設定

どちらのサーバで実行しても構いません。(どちらかのサーバで一回行なって下さい)

まずは↓のようにして設定を行いました。

crm configure property no-quorum-policy="ignore" stonith-enabled="false" 
crm configure rsc_defaults resource-stickiness="INFINITY" migration-threshold="1"

ぶっちゃけこの設定あんまり理解してないのでこちらを参考にして下さい。クラスタ全体の設定という部分ですアタヽ(д`ヽ彡ノ´д)ノフタ

仮想IPの設定を行います。これで192.168.1.237のアドレスを割り振ります。
実際にはnicとcidr_netmaskは必須では無いようです。無指定であれば現状から推測出来る内容を使うようです。

crm configure primitive prmVIP  ocf:heartbeat:IPaddr2 params ip="192.168.1.237" nic="eth0" cidr_netmask="24" \
  op start timeout="60s" on_fail="restart" \
  op monitor interval="10s" timeout="60s" on_fail="restart" \
  op stop timeout="60s" on_fail="block"

次にUltramonkey-L7のデーモンであるl7vsdを見張る設定なのかな?(;・∀・)下記のようにしました。

crm configure primitive prmL7vsd  ocf:heartbeat:L7vsd \
  op monitor interval="10s" timeout="60s" on_fail="restart"

この部分だけはマジで謎。IPアドレスを見張ってるのかな。いいのかなこれで・・(;・∀・)

crm configure primitive prmVIPcheck  ocf:heartbeat:VIPcheck params target_ip="192.168.237" count="1" wait="10" \
  op start timeout="90s" on_fail="block" start_delay="2s"

たぶんl7directordを見張ってるんだと思うアタヽ(д`ヽ彡ノ´д)ノフタ

crm configure primitive prmL7directord  ocf:heartbeat:L7directord \
  op start name="start" timeout="60s" on_fail="restart" \
  op monitor interval="10s" timeout="60s" on_fail="restart" \
  op stop name="stop" timeout="60s" on_fail="block"

状態が変わったらメールが送られる事を祈って設定しました(うまく行ってるっぽい)

crm configure primitive prmMailTo ocf:heartbeat:MailTo params email="saitou@gyafuuuun.com"

とここまでの設定をまとめて扱うためにグループ化をしてるんだと思います

crm configure group grpUltraMonkey prmVIPcheck prmL7vsd prmVIP prmL7directord prmMailTo

サービス提供しているipアドレスが外部から接続出来るかどうか、ルータにpingうってチェックしてます。
よくわからないのでここからパクってきました(´・ω:;.:…
ネットワーク監視ってところですね。

crm configure primitive ping ocf:pacemaker:pingd params name="default_ping_set" host_list="192.168.1.254" multiplier="100" dampen="1" op monitor interval="10s" 
crm configure clone clone_ping ping

ぼすけて(;・∀・) たぶん、サービスLANが問題ないところでgrpUltraMonkeyのグループ動かすぜってことだと思うけどなんでこういう設定にするのかサッパリw

crm configure location lb_location grpUltraMonkey rule -inf: not_defined default_ping_set or default_ping_set lt 100

動作確認

とりあえず、crm_mon -fAとかやって↓のようになりました。とりあえず、色々適当にデーモン落としたりとかケーブル抜いたりしてみたけど一応予定通り動いているみたいです(;・∀・)

サーバ名がpostgres1とかなってるのはPostgresqlとPacemaker組み合わせたいという当初の目的があったからです(;´Д`)・・・・先はながい

============
Last updated: Tue Dec 13 20:33:36 2011
Stack: Heartbeat
Current DC: postgres1.gyafuuuun.com (9ceb5793-04b3-44d8-8552-86a32ed1a6f8) - partition with quorum
Version: 1.0.11-1554a83db0d3c3e546cfd3aaff6af1184f79ee87
2 Nodes configured, unknown expected votes
2 Resources configured.
============

Online: [ postgres1.gyafuuuun.com postgres2.gyafuuuun.com ]

 Clone Set: clone_ping
     Started: [ postgres1.gyafuuuun.com postgres2.gyafuuuun.com ]
 Resource Group: grpUltraMonkey
     prmVIPcheck        (ocf::heartbeat:VIPcheck):	Started postgres2.gyafuuuun.com
     prmL7vsd   (ocf::heartbeat:L7vsd): Started postgres2.gyafuuuun.com
     prmVIP     (ocf::heartbeat:IPaddr2):	Started postgres2.gyafuuuun.com
     prmL7directord     (ocf::heartbeat:L7directord):   Started postgres2.gyafuuuun.com
     prmMailTo  (ocf::heartbeat:MailTo):        Started postgres2.gyafuuuun.com

Node Attributes:
* Node postgres1.gyafuuuun.com:
    + default_ping_set                  : 100
* Node postgres2.gyafuuuun.com:
    + default_ping_set                  : 100

Migration summary:
* Node postgres1.gyafuuuun.com:	
* Node postgres2.gyafuuuun.com:

コメントを残す