Corosync(Slackware 13.1)
2011年2月11日(金) 23:47 JST
閲覧数 12,035
Linux-HA勉強会に影響されて、Slackwareでいれてみました。
はじめは Heartbeat を試すつもりだったのですが、SlackBuilds.orgでCorosyncのパッケージビルドのスクリプトが公開されていたので、Corosyncにしてみました。
Corosyncは日本語での情報がまだ少ないので、面倒なのかと思いきや動かすまでは簡単でした。
動きだせば、crmコマンドでたいていの事は設定できるため、Heartbestを利用する場合との差はすくないかと。
細かい設定をしだすと違いが出てくると思いますが、単なるActive-Standby構成であれば違いは少ないのでは。
では導入でやった事を記載しておきます。
①パッケージは、SlackBuilds.orgで公開されているビルドスクリプトを利用してパッケージ作成して導入しています。
パッケージビルドの際に、以下ユーザ作成が必要となっており、パッケージ内のdoinstに登録される構造になっていなかったので導入前に、ユーザは作成しないといけないみたいです。
後から、doinst.shに登録すればヨカッタと気がついた訳ですが。
corosync-1.2.1-i486-1_SBo.tgz
clusterresourceagents-000dd8956ad7-i486-1_SBo.tgz
clusterglue-6c8645d6a4c2-i486-1_SBo.tgz
pacemaker-b9b672590e79-i486-1_SBo.tgz
libnet-1.1.4-i486-1_SBo.tgz
libesmtp-1.0.4-i486-1_SBo.tgz
②corosync-keygenでキーを作成するらしい。
キー作成には時間がかなり掛かります。コマンドがおかしいとか思わないように。
自分は動いていないのかと思って、何度も途中で止めてしまいました。
まだ本当に必要なのか良くわかってませんが。。。
③設定は、/etc/corosync.confを作成。(サンプルが設置されているので、IPを書き換えたぐらい)
bindnetaddrをネットワークアドレスにすればいいみたいです。自身のIPアドレスを書くとうまく動いてくれませんでした。
ログはlogfileかsyslogのどちらかにしてしまった方が良いかもしれません。
/etc/corosync/service.d/pcmkを作成し、以下設定を入れます。
ドキュメント見る限り、これでいいみたいだけど。。。
確認の為にDummyリソースを追加してみました。
追加設定方法は、こんなカンジで。
はじめは Heartbeat を試すつもりだったのですが、SlackBuilds.orgでCorosyncのパッケージビルドのスクリプトが公開されていたので、Corosyncにしてみました。
Corosyncは日本語での情報がまだ少ないので、面倒なのかと思いきや動かすまでは簡単でした。
動きだせば、crmコマンドでたいていの事は設定できるため、Heartbestを利用する場合との差はすくないかと。
細かい設定をしだすと違いが出てくると思いますが、単なるActive-Standby構成であれば違いは少ないのでは。
では導入でやった事を記載しておきます。
①パッケージは、SlackBuilds.orgで公開されているビルドスクリプトを利用してパッケージ作成して導入しています。
パッケージビルドの際に、以下ユーザ作成が必要となっており、パッケージ内のdoinstに登録される構造になっていなかったので導入前に、ユーザは作成しないといけないみたいです。
後から、doinst.shに登録すればヨカッタと気がついた訳ですが。
# groupadd -g 226 haclient # useradd -u 226 -g haclient -c "Cluster User" -d /var/lib/heartbeat/cores/hacluster -s /bin/false hacluster
corosync-1.2.1-i486-1_SBo.tgz
clusterresourceagents-000dd8956ad7-i486-1_SBo.tgz
clusterglue-6c8645d6a4c2-i486-1_SBo.tgz
pacemaker-b9b672590e79-i486-1_SBo.tgz
libnet-1.1.4-i486-1_SBo.tgz
libesmtp-1.0.4-i486-1_SBo.tgz
②corosync-keygenでキーを作成するらしい。
キー作成には時間がかなり掛かります。コマンドがおかしいとか思わないように。
自分は動いていないのかと思って、何度も途中で止めてしまいました。
まだ本当に必要なのか良くわかってませんが。。。
③設定は、/etc/corosync.confを作成。(サンプルが設置されているので、IPを書き換えたぐらい)
bindnetaddrをネットワークアドレスにすればいいみたいです。自身のIPアドレスを書くとうまく動いてくれませんでした。
ログはlogfileかsyslogのどちらかにしてしまった方が良いかもしれません。
# Please read the corosync.conf.5 manual page compatibility: whitetank totem { version: 2 secauth: off threads: 0 interface { ringnumber: 0 bindnetaddr: 192.168.1.1 mcastaddr: 226.94.1.1 mcastport: 5405 } } logging { fileline: off to_stderr: yes to_logfile: yes to_syslog: yes logfile: /tmp/corosync.log debug: off timestamp: on logger_subsys { subsys: AMF debug: off } } amf { mode: disabled }④次に、pacemakerを利用する様に設定を入れます。
/etc/corosync/service.d/pcmkを作成し、以下設定を入れます。
ドキュメント見る限り、これでいいみたいだけど。。。
service { # Load the Pacemaker Cluster Resource Manager name: pacemaker ver: 0 }⑤あとは起動してみて、crm_monで確認してみればノードが見えてくると思います。
確認の為にDummyリソースを追加してみました。
追加設定方法は、こんなカンジで。
# crm crm(live)# configure crm(live)configure# primitive dummy-resource ocf:pacemaker:Dummy \ > op start interval="0s" timeout="90s" > op monitor interval="3s" timeout="20s" \ > op stop interval="0s" timeout="100s" crm(live)configure# property $id="cib-bootstrap-options" \ > stonith-enabled="false" \ > no-quorum-policy="ignore" crm(live)configure# commitcrm_monで追加されたか確認してみます。
============ Last updated: Tue Dec 28 10:49:35 2010 Stack: openais Current DC: slack - partition with quorum Version: 1.1.1-b9b672590e79770afb63b9b455400d92fb6b5d9e 2 Nodes configured, 2 expected votes 1 Resources configured. ============ Online: [ zenwalk slack ] dummy-resource (ocf::pacemaker:Dummy): Started zenwalk