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

Zurück zum Archiv-Index

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
> 





Linux-ha-japan メーリングリストの案内
Zurück zum Archiv-Index