[Linux-ha-jp] MySQL レプリケーションとheartbeatの連携について

Back to archive index

Junko IKEDA ikeda****@intel*****
2009年 8月 20日 (木) 10:56:48 JST


倉前様

池田です。

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*****>
> 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/anything
>> >> http://www.gossamer-threads.com/lists/linuxha/users/48790
>> >>
>> >> 以上よろしくお願いいたします。
>> >>
>> >> 池田淳子
>> >>
>> >>
>> >> On Tue, 18 Aug 2009 19:06:24 +0900, Junko IKEDA <ikedaj @ intellilink
> .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, <yusuk****@baycu*****
> .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 メーリングリストの案内
Back to archive index