yusuk****@baycu*****
yusuk****@baycu*****
2009年 8月 20日 (木) 17:30:41 JST
池田様 倉前です。 御回答ありがとうございました。 方向性は大分みえてきましたので、ip_start()から叩く方向で スクリプト作成/検証を進めてみます。 今回はどうもありがとうございました。 倉前 > 倉前様 > > 池田です。 > > ip_start(), ip_stop() のそれぞれで > 仮想IPの起動もしくは停止に成功したら > $OCF_SUCCESSを返しているところがあるはずなんですが > その前でスクリプトを実行すればよいのではないでしょうか。 > スクリプトの実行に成功したら/失敗したら > うんぬんの処理も加えてどう動くかは > 実機で試してみたほうがはやいと思います。 > > とりあえず以下3パターンを試してみて > 期待通りの動作をするかどうかというところでしょうか。 > > (1) 仮想IPの起動に成功 → スクリプト成功(正常起動) > (2) 仮想IPの起動に成功 → スクリプト失敗(フェイルオーバ) > (3) 仮想IPの起動に失敗(フェイルオーバ) > > (3)はスクリプトの実行まではいたっていないので > IPaddr2からip_start()とip_stop()が順次呼び出されるかと思います。 > (スクリプトが実行されるよりも前にIPaddr2からエラーを返す) > このとき、ip_stop()からスクリプトも呼び出されるはずなので > スレーブ状態のサーバに対してスレーブ遷移命令を > 出しても大丈夫なようにしておかないといけないですね。 > > (2)は実際にやってみないとわからないのですが > Heartbeat からは結局、IPaddr2が失敗したとみなされるため > ip_start()とip_stop()が順次呼び出され > (3)と同じ動きになるのではないかと思います。 > > 仮想IPが起動した後にスクリプトを実行するか > 仮想IPが起動する前にスクリプトを実行するか > または > スクリプトを実行する前に仮想IPを停止するか > スクリプトを実行した後に仮想IPを停止するか > のそれぞれの順番は、 > そちらの要件次第かと思いますので > スクリプトを追加する箇所で制御してください。 > > 以上よろしくお願いいたします。 > > 池田淳子 > > On Thu, 20 Aug 2009 10:27:51 +0900, <yusuk****@baycu*****> wrote: > > > 池田様 > > > > 倉前です。 > > すいません、御回答いただいた内容を誤解していたようです。 > > > >> > 1.ip_start()からスクリプトを呼び出す > > の場合、かつ仮想IPの実行にocfリソースIPaddr2を利用していいた場合、 > > > > /usr/lib/ocf/resource.d/heartbeat/IPaddr2 > > > > 内の > > ip_start() > > にてレプリケーションマスタとなるスクリプトを叩く、 > > ip_stop() > > にてレプリケーションスレーブとなるスクリプトを叩く。 > > > > ということでよろしかったでしょうか。 > > > > 以上よろしくお願いいたします。 > > > > 倉前 > > > > > > > >> 倉前様 > >> > >> 池田です。 > >> > >> > 1.ip_start()からスクリプトを呼び出す > >> > 2.マスタ/スレーブを管理するRAを新しく作成する > >> > 3.anythingRAを利用する > >> > >> 1. の場合、cib.xmlを編集する必要はありません。 > >> 2,3 の場合は、新規に作成したRA、もしくは anything RA を > >> IPaddr とグループにして追加する必要があります。 > >> > >> 以上よろしくお願いいたします。 > >> > >> 池田淳子 > >> > >> On Wed, 19 Aug 2009 14:34:17 +0900, <yusuk****@baycu***** p> > > wrote: > >> > >> > 池田様 > >> > > >> > お世話になります、倉前です。 > >> > 返信遅くなり申し訳ありません。 > >> > > >> > 御教授いただいたheartbeatからスクリプトをつつく手段としては、 > >> > 1.ip_start()からスクリプトを呼び出す > >> > 2.マスタ/スレーブを管理するRAを新しく作成する > >> > 3.anythingRAを利用する > >> > ということでよろしいでしょうか。 > >> > > >> > 上記の中ですと、当方heartbeatにそれほど習熟していないため > >> > 一番単純そうな1.を利用を検討してみます。 > >> > > >> > この場合、cib.xmlにはどのように記述すればよろしいのでしょうか。 > >> > (記述方法に全く見当がつかないので・・お手数ですが、例示いただけ れば > > 幸い > >> > です。 > >> > 初歩的なことなのでしょうが、ご迷惑をおかけします。) > >> > > >> > 以上よろしくお願いいたします。 > >> > > >> > 倉前 > >> > > >> >> 倉前様 > >> >> > >> >> 池田です。 > >> >> > >> >> Heartbeat 2.1.4 には含まれていませんが > >> >> 開発版には、直接コマンドを実行する「anything」というRAがあります 。 > >> >> このRAから「マスタに昇格/スレーブに降格」のコマンドを > >> >> 実行してみてもうまくいくかもしれません。 > >> >> > >> >> http://hg.linux-ha.org/agents/file/b99191549520/heartbeat/anythi ng > >> >> http://www.gossamer-threads.com/lists/linuxha/users/48790 > >> >> > >> >> 以上よろしくお願いいたします。 > >> >> > >> >> 池田淳子 > >> >> > >> >> > >> >> On Tue, 18 Aug 2009 19:06:24 +0900, Junko IKEDA <ikedaj @ intellil ink > > .co > >> > .jp> wrote: > >> >> > >> >> > 倉前様 > >> >> > > >> >> > 池田です。 > >> >> > > >> >> > 「フェイルオーバー時にサービスを引き継いだサーバ上で > >> >> > マスタに昇格するスクリプト」は > >> >> > すでに作成済みということであれば > >> >> > 仮想IP(IPaddr RA:/usr/lib/ocf/resource.d/heartbeat/IPaddr) > >> >> > のip_start()から、そのスクリプトを呼び出してみてはどうでしょう か > > 。 > >> >> > (ちなみにHeartbeatはV2モードですか?) > >> >> > > >> >> > 仮想IPの起動に成功すれば、マスタに昇格するスクリプトが > >> >> > 呼び出されることになります。 > >> >> > また、ip_stop()からもマスタからスレーブに降格する > >> >> > スクリプトを呼び出せば、それらしい動きになるのでは > >> >> > ないでしょうか。 > >> >> > > >> >> > 他に考えられる方法としては > >> >> > マスタ/スレーブを管理するRAを新しく作成します。 > >> >> > > >> >> > start() → スレーブからマスタへ昇格 > >> >> > monitor() → 自ノードがマスタ状態であるかチェック > >> >> > stop() → マスタからスレーブへ降格 > >> >> > > >> >> > というRAを作成して、IPaddrとグループ構成にすれば > >> >> > うまくいくような気がします。 > >> >> > > >> >> > どちらの方法にしても、一時的に両ノードとも > >> >> > スレーブ状態になります。 > >> >> > > >> >> > 以上よろしくお願いいたします。 > >> >> > > >> >> > 池田淳子 > >> >> > > >> >> > > >> >> > On Fri, 14 Aug 2009 16:25:04 +0900, <yusuke.kuramae @ baycurrent .co > > .jp > >> >> wrote: > >> >> > > >> >> >> お世話になります、倉前と申します。 > >> >> >> > >> >> >> 現在、heartbeatとmysqlレプリケーションを組み合わせて > >> >> >> 以下のようなクラスタの構築を考えております。 > >> >> >> > >> >> >> Server1・・Act,通常時はレプリケーションマスタとなる > >> >> >> Server2・・Stb,通常時はレプリケーションスレーブとなる > >> >> >> > >> >> >> 双方で常時MySQLを稼動しておき、仮想IPのみをフェイルオーバー、 > >> >> >> フェイルオーバー時にはServer2をレプリケーションマスタとする、 と > > いう > >> > 動き > >> >> >> を想定しています。 > >> >> >> > >> >> >> 恐らく、「フェイルオーバー時にサービスを引き継いだサーバ上で マス > > タ > >> > に昇格 > >> >> >> するスクリプトを動かす」 > >> >> >> という動作になるかと思うのですが、(他にいい方法があればアド バイ > > ス > >> > いただ > >> >> >> けると助かります)、 > >> >> >> このようにフェイルオーバー時に特定のスクリプトを動作させる、 > >> >> >> という場合はどのように設定すればよろしいのでしょうか。 > >> >> >> > >> >> >> 本来ならDRBDと連携させると楽なのでしょうが、今回は要件上レプ リケ > > ー > >> > ション > >> >> >> と連携させる必要があるため御質問させていただきました。 > >> >> >> もしその他MySQLレプリケーションとHeartbeatの連携において役立 つ情 > > 報 > >> > 等あり > >> >> >> ましたら御教授いただけますでしょうか。 > >> >> >> > >> >> >> 以上、よろしくお願いいたします。 > >> >> >> > >> >> >> 倉前 > >> >> >> > >> >> >> _______________________________________________ > >> >> >> Linux-ha-japan mailing list > >> >> >> Linux****@lists***** > >> >> >> http://lists.sourceforge.jp/mailman/listinfo/linux-ha-japan > >> >> >> > >> >> > > >> >> > _______________________________________________ > >> >> > Linux-ha-japan mailing list > >> >> > Linux****@lists***** > >> >> > http://lists.sourceforge.jp/mailman/listinfo/linux-ha-japan > >> >> > > >> >> > >> >> _______________________________________________ > >> >> Linux-ha-japan mailing list > >> >> Linux****@lists***** > >> >> http://lists.sourceforge.jp/mailman/listinfo/linux-ha-japan > >> >> > >> > > >> > _______________________________________________ > >> > Linux-ha-japan mailing list > >> > Linux****@lists***** > >> > http://lists.sourceforge.jp/mailman/listinfo/linux-ha-japan > >> > > >> > >> _______________________________________________ > >> Linux-ha-japan mailing list > >> Linux****@lists***** > >> http://lists.sourceforge.jp/mailman/listinfo/linux-ha-japan > >> > > > > _______________________________________________ > > Linux-ha-japan mailing list > > Linux****@lists***** > > http://lists.sourceforge.jp/mailman/listinfo/linux-ha-japan > > > > _______________________________________________ > Linux-ha-japan mailing list > Linux****@lists***** > http://lists.sourceforge.jp/mailman/listinfo/linux-ha-japan >