久慈大介
daisu****@baudr*****
2014年 6月 13日 (金) 13:06:31 JST
山内さん お世話になります。久慈です。 > 1.primitiveの<params>にtimeoutが設定してあれば、そのtimeout値 > 2.OCF_RESKEY_CRM_meta_timeoutが、opのtimeout > ※未設定なら、default_action_timeout値 > 3.stop_timeout=10 > > となります。 > 前のメールで、default_action_timeout値は関係しないような回答も忘れてください。 承知しました。ご回答ありがとうございます。 primitiveにもopにもtimeoutがあるので以前から疑問だったですが、これですっきりしました。 >> 各opのタイムアウト値については、anything(その他のRAを含む)を実行するプロセス側でのタイムアウトの管理に利用しています。 >> anything(その他のRAを含む)内で、timeout値を利用するかどうかはそのRAにゆだねられています。 なるほど。timout値は[RA]と[RAを実行するプロセス]で使用されていて、RAで使用するかは各RAのスクリプトによる、ということですね。 >> ※start,monitor(status),stopはRAのプロセスで実行されるので、その実行タイムアウトは、RAのプロセス内では管理出来ないので、外で管理する必要があるということになりますね。 RAの各アクションのプロセスでは自分自身のタイムアウトを管理できないので外で管理しているということなのですね。ありがとうございます。おかげで今までもやもやしていたものがイメージ出来ました。 すみません、追加で質問なのですが上記でいう「外で管理」しているものがタイムアウトと判定するケースというのは、start|status|stopアクションを実行した時、timeout値を超えても各プロセスが終了しないという認識なのですが、合っているでしょうか。 正常、異常に関わらず、各アクションが終了した場合はtimeout値は使用されない認識で良いでしょうか。 > > ---------------------------------------------------------------------- > > Message: 1 > Date: Thu, 12 Jun 2014 14:39:13 +0900 (JST) > From: renay****@ybb***** > Subject: Re: [Linux-ha-jp] timeout値について > To: linux****@lists***** > Message-ID: <64998****@web20*****> > Content-Type: text/plain; charset=utf-8 > > 久慈さん > > こんにちは、山内です。 > > 念の為確認しましたが・・・・ > 2点、嘘の回答がありましたので、訂正させてください。 > >> > > 1.変数${OCF_RESKEY_timeout} = op ?で指定するtimeout値になるのでしょうか。 > > OCF_RESKEY_timeoutは、primitiveの<params>にtimeoutを設定した場合に入る値です。 > >> > > 2.変数$OCF_RESKEY_CRM_meta_timeoutとはどのようなパラメータなのでしょうか。 > > OCF_RESKEY_CRM_meta_timeoutが、opのtimeoutで、未設定の場合は、default_action_timeoutが設定されます。 > >> > 1.op stopで設定したtimeout値 >> > 2.anything_metaで設定されているtimeout値 >> > 3.stop_timeout=10 >> > 3.default-action-timeoutで設定したtimeout値 > > については、 > > 1.primitiveの<params>にtimeoutが設定してあれば、そのtimeout値 > 2.OCF_RESKEY_CRM_meta_timeoutが、opのtimeout > ※未設定なら、default_action_timeout値 > 3.stop_timeout=10 > > となります。 > 前のメールで、default_action_timeout値は関係しないような回答も忘れてください。 > > 大変失礼いたしました。 > > 以上です。 > > > > > > --- On Thu, 2014/6/12, renay****@ybb***** <renay****@ybb*****> wrote: > >> 久慈さん >> >> こんにちは、山内です。 >> >> >> > > ?$OCF_RESKEY_CRM_meta_timeoutは、anything_meta()で定義してある各opのtimeout値が、そのopがRAで実行される場合に、timeoutとしてRAに渡されます。 >> > 承知しました。ということは、anythingのstopアクションの場合は >> > >> > 1.op stopで設定したtimeout値 >> > 2.anything_metaで設定されているtimeout値 >> > 3.stop_timeout=10 >> > 3.default-action-timeoutで設定したtimeout値 >> > >> > の順で利用されるということですね。 >> >> 2.ですが、最新版では、以下ですので、OCF_RESKEY_CRM_meta_timeoutから算出した値になっているようです。 >> ? ? ? ? elif [ -n "$OCF_RESKEY_CRM_meta_timeout" ]; then >> ? ? ? ? ? ? ? ? # Allow 2/3 of the action timeout for the orderly shutdown >> ? ? ? ? ? ? ? ? # (The origin unit is ms, hence the conversion) >> ? ? ? ? ? ? ? ? stop_timeout=$((OCF_RESKEY_CRM_meta_timeout/1500)) >> >> > 3.default-action-timeoutで設定したtimeout値 >> >> これは、RA側には関係しないはずです。 >> たしか、$OCF_RESKEY_stop_timeoutに渡されてくるのは、opに書かれたtimeoutだけだったと記憶しています。 >> (間違っていたら、すいません。) >> >> >> > >> <action name="start"???timeout="20s" /> >> > >> <action name="stop"? ? timeout="20s" /> >> > >> <action name="monitor" depth="0"? timeout="20s" interval="10" /> >> > > >> > > については、推奨値として利用されているだけ(crmコマンドなどでリソース構成を流し込んだ時のチェックなど)のようです。 >> > > >> > > 基本的に、リソースのopにtimeoutを設定しなかった場合は、clusterプロパティの"default-action-timeout"(デフォルト値:20s)が利用されます。 >> > 承知しました。ありがとうございます。 >> > anythingの場合、stopアクションではスクリプトの中でtimeout値を使用していますが、start、statusアクション時は >> > 使用していないように見えます。 >> > これらのアクション時はスクリプト以外のところでtimeout値を使用しているのでしょうか。 >> > 使用している場合は具体的にどのように使用されているのでしょうか。 >> >> 各opのタイムアウト値については、anything(その他のRAを含む)を実行するプロセス側でのタイムアウトの管理に利用しています。 >> anything(その他のRAを含む)内で、timeout値を利用するかどうかはそのRAにゆだねられています。 >> >> ※start,monitor(status),stopはRAのプロセスで実行されるので、その実行タイムアウトは、RAのプロセス内では管理出来ないので、外で管理する必要があるということになりますね。 >> >> 以上です。 >>