Corosync(Slackware 13.1)
2011年2月11日(金) 23:47 JST
閲覧数 12,292
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


