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 >