[Linux-ha-jp] 両ノードのDRBDがslaveのまま、primaryに昇格しません

Back to archive index

Junko IKEDA tsuki****@gmail*****
2011年 12月 2日 (金) 11:31:19 JST


中村様

hdpmaster38でクラスタを起動(service heartbeat start)する前に
namenode_hadoopとjobtracker_hadoopがすでに起動している
可能性はありませんか。

namenode RAとjobtracker RAはstart処理の最初に
monitor処理(monitor_jobtracker)を呼び出しています。
これは、すでにリソースが実行済みの場合は
start処理を省略するためです。

ha-log_ノード2.txtの160行目付近を確認すると
namenode_hadoopとjobtracker_hadoopの
monitor_0(start実行時に呼び出されるmonitor処理)が
rc=0(OCF_SUCCESS)となっているため、すでにリソースが起動している
可能性があります。
起動していない場合は、後続のip_hadoopやfs_hadoopのように
rc=7(OCF_NOT_RUNNING)が返ります。

Dec 01 18:42:29 hdpmaster38 crmd: [30290]: info: process_lrm_event:
LRM operation namenode_hadoop_monitor_0 (call=4, rc=0, cib-update=8,
confirmed=true) ok
Dec 01 18:42:29 hdpmaster38 crmd: [30290]: info: process_lrm_event:
LRM operation jobtracker_hadoop_monitor_0 (call=5, rc=0, cib-update=9,
confirmed=true) ok
Dec 01 18:42:29 hdpmaster38 crmd: [30290]: info: process_lrm_event:
LRM operation ip_hadoop_monitor_0 (call=3, rc=7, cib-update=10,
confirmed=true) not running
Dec 01 18:42:29 hdpmaster38 crmd: [30290]: info: process_lrm_event:
LRM operation fs_hadoop_monitor_0 (call=2, rc=7, cib-update=11,
confirmed=true) not running

一度、両ノードのクラスタを停止したあと
namenode_hadoopとjobtracker_hadoopの状態を確認してください。
また、OS起動時にプロセスが自動起動するような
設定になっていないか、なども確認してください。

なお、crmの設定ですが、rsc_defaultsに
resource-stickinessとmigration-thresholdを
設定することをお勧めします。

参考 http://linux-ha.sourceforge.jp/wp/archives/1657/3

resource-stickiness="INFINITY"は自動フェイルバックをオフにする設定です。

設定例
property \
        no-quorum-policy="ignore" \
        stonith-enabled="false" \
        startup-fencing="false" \
        crmd-transition-delay="2s"

rsc_defaults \
        resource-stickiness="INFINITY" \
        migration-threshold="1"


以上よろしくお願いいたします。

池田淳子


2011年12月1日21:56 中村 圭太 <nakam****@jp*****>:
> 池田様
>
> お世話になっております。中村です。
> 多くのご助言をいただき、ありがとうございました。
>
>>> locationの設定ですが、groupではなくMaster/Slaveの
>>> スコア値を設定してみてください。
>>>
>>> location l_hadoop ms_drbd \
>>>         rule role=master  200: #uname eq hdpmaster30 \
>>>         rule role=master  100: #uname eq hdpmaster38
>
> 上記の設定により、解消できました。
> groupはmaster側で起動せるため、
> msありきとなり、
> locationはmsを設定するべきなのですね。
> 勉強になります。
>
> 続けて大変恐縮ですが、
> 以下に新しい質問をさせてください。
>
> <問題>
> 当方は、HAクラスタ上にHadoopを構築したいと考えております。
> rg_hadoopに「namenode_hadoop」および「jobtracker_hadoop」という
> リソースを追加したのですが、
> 縮退状態(片系のみheartbeatが起動)から、
> 相手ノードのheartbeatを起動させると、
> 上記の2リソースが再起動してしまいます。
>
> namenode_hadoopおよびjobtracker_hadooの挙動は以下の流れです。
>
> 縮退状態(ノード1のheartbeatのみ起動)からノード2のheartbeatを起動
> →ノード1でしか上記の2リソースが起動していないと思われるが、
>   両ノードで起動していると認識される(ログ1:166、169行目)
> →リソースを停止(ログ1:222、246行目)(ログ2:179、190行目)
> →ノード1でリソースを起動(ログ1:260、273行目)
>
> ログ1:ノード1のログ(元からheartbeatが起動していた)
> ログ2:ノード2のログ(後からheartbeatを起動した)
>
> なお、他のリソースは元のノードで起動したまま正常です。
>
> 縮退状態から停止していたノードをクラスタに復帰させても、
> 2リソースを元のノードで正常に起動したままとするには、
> 設定やRAに問題点がありますでしょうか。
>
> <備考>
> ・上記の2リソースが起動するノードは、
>  FilesystemやIPaddr2のリソースが起動している
>  ノードである必要があります。
>
> ・「Hadoop徹底入門」という書籍を参考にしており、
>  RAは書籍のサンプルを使用しています。
>
> ・ノード1とノード2の起動順を逆にしても同様の結果です。
>
> <添付>
> ・HA-log(ノード1&ノード2)
> ・namenodeのRA
> ・jobtrackerのRA
> ・設定ファイル類
>
> 大変お手数を頂きまして申し訳ありませんが、
> ご教授いただけますよう、よろしくお願いいたします。
>
> 以上です。
>
>
> (2011/12/01 11:02), Junko IKEDA wrote:
>> すみません。
>> 一部コピペミスです。
>>
>> 3行目のmonitor設定は削除忘れです。
>>
>>> primitive drbd_hadoop ocf:linbit:drbd \
>>>         params drbd_resource="r_hadoop" \
>>>         op monitor interval="10s" \ ★ この行は必要なし
>>>         op start interval="0s" timeout="240s" on-fail="restart" \
>>>         op monitor interval="10s" timeout="20s" on-fail="restart"
>>> role="Master" \
>>>         op monitor interval="20s" timeout="20s" on-fail="restart" role="Slave" \
>>>         op promote interval="0s" timeout="90s" on-fail="restart" \
>>>         op demote interval="0s" timeout="90s" on-fail="block" \
>>>         op stop interval="0s" timeout="100s" on-fail="block"
>>
>> 池田淳子
>>
>> 2011年12月1日10:56 Junko IKEDA<tsuki****@gmail*****>:
>>> 中村様
>>>
>>> NTTデータ先端技術の池田と申します。
>>>
>>>> 設定ファイルの類を添付させていただきます。
>>>> なお、DRBDのリソースエージェントは、drbd-8.4.0同梱のものを使用しています。
>>>
>>> crmの設定ではdrbd RAのproviderがheartbeatとなっていますが
>>> これは、DRBD 8.4.0のRAを
>>> /usr/lib/ocf/resource.d/heartbeat/
>>> にコピーされたということでしょうか。
>>> DRBDのRAはデフォルトでは
>>> /usr/lib/ocf/resource.d/linbit/
>>> にインストールされます。
>>>
>>> よって、drbd RAの設定では通常、providerにlinbitを指定します。
>>> /usr/lib/ocf/resource.d/heartbeat/
>>> にもdrbd RAは存在しますが、これはresource-agentsに含まれる古いRAです。
>>>
>>> また、Master/Slaveリソースのmonitor設定ですが
>>> MasterリソースとSlaveリソースのinterval値をそれぞれ
>>> 別の値として設定してください。
>>>
>>> drbd RAの設定例
>>>
>>> primitive drbd_hadoop ocf:linbit:drbd \
>>>         params drbd_resource="r_hadoop" \
>>>         op monitor interval="10s" \
>>>         op start interval="0s" timeout="240s" on-fail="restart" \
>>>         op monitor interval="10s" timeout="20s" on-fail="restart"
>>> role="Master" \
>>>         op monitor interval="20s" timeout="20s" on-fail="restart" role="Slave" \
>>>         op promote interval="0s" timeout="90s" on-fail="restart" \
>>>         op demote interval="0s" timeout="90s" on-fail="block" \
>>>         op stop interval="0s" timeout="100s" on-fail="block"
>>>
>>> locationの設定ですが、groupではなくMaster/Slaveの
>>> スコア値を設定してみてください。
>>>
>>> location l_hadoop ms_drbd \
>>>         rule role=master  200: #uname eq hdpmaster30 \
>>>         rule role=master  100: #uname eq hdpmaster38
>>>
>>> また、Pacemaker 1.0.11では、Master/Slaveの動作でバグが確認されています。
>>> 参考 http://linux-ha.sourceforge.jp/wp/archives/2468/2
>>>
>>> 上記のバグを回避するために、Master/Slaveだけではなく
>>> groupに含まれる各リソースにもlocationを設定してください。
>>>
>>> location l_hadoop ms_drbd \
>>>         rule role=master  200: #uname eq hdpmaster30 \
>>>         rule role=master  100: #uname eq hdpmaster38 \
>>>         rule role=master  -inf: defined fail-count-fs_hadoop \
>>>         rule role=master  -inf: defined fail-count-ip_hadoop
>>>
>>> なお、上記のバグはPacemaker 1.0.12では修正されています。
>>>
>>> 以上よろしくお願いいたします。
>>>
>>> 池田淳子
>>>
>>> 2011年11月30日21:11 中村 圭太<nakam****@jp*****>:
>>>> 中村と申します。
>>>> はじめて投稿させていただきます。
>>>> heartbeatおよびDRBDに関して、以下の問題で困っています。
>>>>
>>>> <問題>
>>>> Heartbeatを両ノードでほぼ同時に起動させると、DRBDが起動はするのですが、
>>>> 両ノード共にslaveの状態が続き、primaryに昇格しません。
>>>> ただし、片方のノードがHeartbeatにおけるONLINEの状態までなった後に、
>>>> 一方のノードを立ち上げると、DRBDが両方ともslaveになった後、
>>>> cib.xmlのlocationで指定したノードがprimaryに昇格します。
>>>>
>>>> <疑問点>
>>>> ・Heartbeatを起動させるノードについては、
>>>>   起動順番を意識する必要があるのでしょうか?
>>>> ・当方の設定に、上記問題の元となる箇所はありますでしょうか?
>>>>
>>>> <環境>
>>>> ・pacemaker-1.0.11
>>>> ・heartbeat-3.0.5
>>>> ・drbd-8.4.0
>>>>
>>>> 設定ファイルの類を添付させていただきます。
>>>> なお、DRBDのリソースエージェントは、drbd-8.4.0同梱のものを使用しています。
>>>>
>>>> ------- crm configure show -------
>>>> node $id="24606b2c-5a9d-4a86-9e83-a84ee941739d" hdpmaster38
>>>> node $id="57e51646-569b-4501-8073-61f06ec146bf" hdpmaster30
>>>> primitive drbd_hadoop ocf:heartbeat:drbd \
>>>> params drbd_resource="r_hadoop" \
>>>> op monitor interval="10s"
>>>> primitive fs_hadoop ocf:heartbeat:Filesystem \
>>>> params device="/dev/drbd0" directory="/hadoop/dfs/name" fstype="ext3"
>>>> options="noatime"
>>>> primitive ip_hadoop ocf:heartbeat:IPaddr2 \
>>>> params ip="10.171.208.87" nic="eth1" cidr_netmask="24" \
>>>> op monitor interval="10s"
>>>> group rg_hadoop fs_hadoop ip_hadoop
>>>> ms ms_drbd drbd_hadoop \
>>>> meta master-max="1" master-node-max="1" clone-max="2" clone-node-max="1"
>>>> notify="true"
>>>> location l_hadoop rg_hadoop 100: hdpmaster30
>>>> colocation c_hadoop inf: rg_hadoop ms_drbd:Master
>>>> order o_hadoop inf: ms_drbd:promote rg_hadoop:start
>>>> property $id="cib-bootstrap-options" \
>>>> dc-version="1.0.11-1554a83db0d3c3e546cfd3aaff6af1184f79ee87" \
>>>> cluster-infrastructure="Heartbeat" \
>>>> stonith-enabled="false" \
>>>> no-quorum-policy="ignore" \
>>>> default-resource-stickiness="200"
>>>>
>>>> 大変お手数ですが、どなたかご教授くださいますよう、お願いいたします。
>>>>
>>>> 以上です。
>>>>
>>>> _______________________________________________
>>>> 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