[Linux-ha-jp] PacemakerでDRBDリソース管理について

Back to archive index

K.Enomoto eno.j****@gmail*****
2012年 1月 10日 (火) 09:26:33 JST


松島 様

榎本です。
回答ありがとうございます。

これから、自分なりに試してみたいと思います。

kernelのWarningはRHEL6.2では修正されたとの記事を目にしましたので、
CentOS6.2 も、そのうち修正されると思いますので、この件は暫く様子を見ます。

以上、ありがとうございます

2012年1月10日8:57 Takehiro Matsushima <takeh****@gmail*****>:
> 榎本 様
>
> 松島です、遅くなりまして申し訳ございません。
> 両方に到達できなければF/Oするのでしたら、両方のpingdを1つにまとめてしまうのもありかもしれません。
> (すみません、よく検討していないので不都合があるかもしれません)
>
> kernel/sched.cのWarningですが、RHEL6.2のkernelの最新版で出たという報告を目にしました。
> Updateをしないか、修正版を待つのがよさそうですね。
>
>
>
> 2012年1月7日22:17 K.Enomoto <eno.j****@gmail*****>:
>> 松島 様
>>
>> 榎本です。
>> ありがとうございます。
>>
>> 両方に到達できなければF/Oをと考えています。
>>
>> 現在、なんとか環境的に起動できた状態で、動作検証はまだ何もしていません。
>> 良く理解していないので、時間がかかりそうです。
>>
>>
>>
>> 関係ありませんが気づいたら、あまり見たくないメッセージ
>> kernel: WARNING: at kernel/sched.c:5914 thread_return+0x232/0x79d()
>> (Not tainted)
>> が確認されました。
>>
>> 2012年1月6日21:39 Takehiro Matsushima <takeh****@gmail*****>:
>>> 榎本 様
>>>
>>> 松島です。
>>> 死活監視用の2つのIP addressがありますが、Fail-overする条件はどういったものでしょうか。
>>> 例えば、2つのうちどちらかに到達できなければF/Oとか両方に到達できなければF/Oなどです。
>>>
>>> pingdのprimitiveが2つありますが、nameパラメタを一意なものにしなければ後のlocationで
>>> 両者の区別ができなかったと思います(検証したことが無いですが)。
>>>
>>> pingdは「返事が得られたホストの数×multiplierで指定した数」の値を返します。
>>> この値を評価して、例えばDRBDのようなリソースを動かすノードを決定するのがlocationだと理解しています。
>>> リソースに対して"inf"を与えるとリソースは「必ず」そのノードで動き、"-inf"を与えるとそのノードを「避け」ます。
>>>
>>>>  rule $id="master-location_db-rule-1" $role="master" -inf: defined default_ping_set and  default_ping_set lt 100
>>> という部分は、drbd_dbの"master"ロールに対して"-inf"を与える条件になります。
>>> rule $id="master-location_db-rule-1" $role="master" -inf: not_defined
>>> default_ping_set or default_ping_set lt 100
>>> とすると、default_ping_setが無い場合かpingが1つ未満に対して成功した(つまりdefault_ping_set eq 0も等価)となります。
>>>
>>>
>>> 日本語で参考になるサイトですが、私はLinux-HA JapanとNovell社の「High Availability ガイド」をよく見ていました。
>>> 英語では、本家のPacemakerやHeartbeat、crmのマニュアルが参考になりました。
>>>
>>> 問題を取り違えていましたら申し訳ございません。
>>> 当たっているか外れているかわかりませんが、おかしな点がございましたらご指摘ください。
>>>
>>>
>>>
>>> 2012年1月6日13:08 K.Enomoto <eno.j****@gmail*****>:
>>>> 松島 様
>>>>
>>>> 榎本です。
>>>> ご指摘ありがとうございます。
>>>> #よく理解しないまま記述していました。(まだ理解していません)
>>>>
>>>> 定義したかったのは、死活監視用の2つのポートに対してping が失敗した場合だったので、
>>>> 見当違いですね。
>>>>
>>>>  rule $id="master-location_db-rule-1" $role="master" -inf: defined
>>>> default_ping_set and  default_ping_set
>>>> lt 100
>>>> にすれば良いのかも理解していません。
>>>>
>>>> 日本語で参考になるサイト等がありましたら、教えてください。
>>>>
>>>> 以上、よろしくお願いいたします。
>>>>
>>>> 2012年1月6日1:05 Takehiro Matsushima <takeh****@gmail*****>:
>>>>> 榎本 様
>>>>>
>>>>> 松島と申します。
>>>>>
>>>>>>  rule $id="master-location_db-rule-1" $role="master" -inf: defined default_ping_set or default_ping_set lt 100
>>>>> 勘違いでしたら申し訳ございません。
>>>>> この部分は、「"master"のロールに対してスコア"-inf"を与える: pingdが動いている または pingが通らない 時」
>>>>> だと思うのですが、pingdが動いていたらmasterに昇格できないという動作になりませんか?
>>>>> group_db-location も同様に見えます。
>>>>>
>>>>>
>>>>>
>>>>> 2012年1月5日15:37 K.Enomoto <eno.j****@gmail*****>:
>>>>>> 榎本です。
>>>>>> 申し訳ありません。
>>>>>>
>>>>>> drbd_resource で指定した値が、drbd で定義したresource名と違っていました。
>>>>>>> primitive drbd_db ocf:linbit:drbd    params drbd_resource="r0"
>>>>>> 私のミスです。
>>>>>>
>>>>>> これを修正したところ、下記のようになりました。
>>>>>> ============ ここから
>>>>>> Last updated: Thu Jan  5 15:27:59 2012
>>>>>> Stack: Heartbeat
>>>>>> Current DC: testdb02 (b5feda07-cd6d-4a74-8b5a-704021dc0841) -
>>>>>> partition with quor
>>>>>> um
>>>>>> Version: 1.0.11-1554a83db0d3c3e546cfd3aaff6af1184f79ee87
>>>>>> 2 Nodes configured, 2 expected votes
>>>>>> 4 Resources configured.
>>>>>> ============
>>>>>>
>>>>>> Online: [ testdb02 testdb01 ]
>>>>>>
>>>>>> pingd_web       (ocf::pacemaker:pingd): Started testdb02
>>>>>>  Master/Slave Set: ms_drbd_db
>>>>>>     Slaves: [ testdb01 testdb02 ]
>>>>>>  Clone Set: clnPingd_db
>>>>>>     Started: [ testdb01 testdb02 ]
>>>>>> ======= ここまで
>>>>>>
>>>>>> ただ、drbd のstatus を確認すると
>>>>>> drbd driver loaded OK; device status:
>>>>>> version: 8.4.1 (api:1/proto:86-100)
>>>>>> GIT-hash: 91b4c048c1a0e06777b5f65d312b38d47abaea80 build by
>>>>>> eno @ testdb01, 2011-12-27 17:22:50
>>>>>> m:res  cs         ro                   ds                 p  mounted  fstype
>>>>>> 0:r0   Connected  Secondary/Secondary  UpToDate/UpToDate  C
>>>>>>
>>>>>> と、なっています。
>>>>>> これに関しては、これから確認しますが、確認すべきポイントはありますか?
>>>>>>
>>>>>> 以上、よろしくお願いいたします。
>>>>>>
>>>>>>
>>>>>> 2012年1月5日14:25 岩崎@サードウェア <iwasa****@3ware*****>:
>>>>>>>  岩崎です
>>>>>>>
>>>>>>>  エラーログはどのように出てますか?
>>>>>>>  not installed のエラーが出ているので、drbd*系のコマンドが受け付けられていないか、
>>>>>>>  現状のOCFだとDRBDの8.4.xに対応できていないかもしれません。
>>>>>>>  こちらでも少し確認してみますー
>>>>>>>
>>>>>>>  On Thu, 5 Jan 2012 14:17:07 +0900, K.Enomoto wrote:
>>>>>>>> 榎本と申します。
>>>>>>>>
>>>>>>>> DRBD+Heartbeat3+Pacemaker+PostgreSQL という環境を構築しようと検証中なのでが、
>>>>>>>> 正常に動作させることができません。
>>>>>>>> 確認しなければならない事がありましたら、ご教授ください。
>>>>>>>>
>>>>>>>> 現状、下記のような状態です。
>>>>>>>> ============ここから
>>>>>>>> Last updated: Thu Jan  5 09:05:38 2012
>>>>>>>> Stack: Heartbeat
>>>>>>>> Current DC: testdb02 (b5feda07-cd6d-4a74-8b5a-704021dc0841) -
>>>>>>>> partition with quorum
>>>>>>>> Version: 1.0.11-1554a83db0d3c3e546cfd3aaff6af1184f79ee87
>>>>>>>> 2 Nodes configured, 2 expected votes
>>>>>>>> 4 Resources configured.
>>>>>>>> ============
>>>>>>>>
>>>>>>>> Online: [ testdb01 testdb02 ]
>>>>>>>>
>>>>>>>> pingd_web       (ocf::pacemaker:pingd): Started testdb01
>>>>>>>>  Master/Slave Set: ms_drbd_db
>>>>>>>>      drbd_db:0  (ocf::linbit:drbd):     Slave testdb02 (unmanaged)
>>>>>>>> FAILED
>>>>>>>>      drbd_db:1  (ocf::linbit:drbd):     Slave testdb01 (unmanaged)
>>>>>>>> FAILED
>>>>>>>>  Clone Set: clnPingd_db
>>>>>>>>      Started: [ testdb02 testdb01 ]
>>>>>>>>
>>>>>>>> Failed actions:
>>>>>>>>     drbd_db:0_start_0 (node=testdb02, call=8, rc=5, status=complete):
>>>>>>>> not installed
>>>>>>>>     drbd_db:0_stop_0 (node=testdb02, call=13, rc=5, status=complete):
>>>>>>>> not installed
>>>>>>>>     drbd_db:1_start_0 (node=testdb01, call=9, rc=5, status=complete):
>>>>>>>> not installed
>>>>>>>>     drbd_db:1_stop_0 (node=testdb01, call=15, rc=5, status=complete):
>>>>>>>> not installed
>>>>>>>> ===== ここまで
>>>>>>>>
>>>>>>>> ■環境
>>>>>>>> CentOS6.2(kernel 2.6.32-220.2.1.el6.x86_64)
>>>>>>>>
>>>>>>>> drbd 8.4.1
>>>>>>>>    http://oss.linbit.com/drbd/8.4/drbd-8.4.1.tar.gz を使用しrpmを作成しインストール
>>>>>>>>
>>>>>>>> Heartbeat 3.0.5-1.1
>>>>>>>> Pacemaker 1.0.11-1.2
>>>>>>>>   linux-haさんの [1-01] Pacemakerリポジトリパッケージ (RHEL6) (1.0.11-1.2.2) を使用
>>>>>>>>
>>>>>>>>
>>>>>>>> ■ 下記のCRM構成でpacemakerを設定しました。
>>>>>>>>
>>>>>>>> # crm configure show
>>>>>>>> node $id="0925fa33-b21f-4f81-8c5f-e2d377d2f235" testdb01
>>>>>>>> node $id="b5feda07-cd6d-4a74-8b5a-704021dc0841" testdb02
>>>>>>>> primitive drbd_db ocf:linbit:drbd \
>>>>>>>>         params drbd_resource="r0" \
>>>>>>>>         op start interval="0s" timeout="240s" on-fail="restart" \
>>>>>>>>         op monitor interval="11s" timeout="60s" on-fail="restart" \
>>>>>>>>         op monitor interval="10s" role="Master" timeout="60s"
>>>>>>>> on-fail="restart" \
>>>>>>>>         op stop interval="0s" timeout="100s" on-fail="block"
>>>>>>>> primitive fs_db ocf:heartbeat:Filesystem \
>>>>>>>>         params device="/dev/drbd0" directory="/databd" fstype="ext4"
>>>>>>>> \
>>>>>>>>         op start interval="0s" timeout="60s" on-fail="restart" \
>>>>>>>>         op monitor interval="10s" timeout="60s" on-fail="restart" \
>>>>>>>>         op stop interval="0s" timeout="60s" on-fail="block"
>>>>>>>> primitive ip_db ocf:heartbeat:IPaddr2 \
>>>>>>>>         params ip="192.168.33.75" nic="em1" cidr_netmask="24" \
>>>>>>>>         op start interval="0s" timeout="90s" on-fail="restart" \
>>>>>>>>         op monitor interval="10s" timeout="60s" on-fail="restart" \
>>>>>>>>         op stop interval="0s" timeout="100s" on-fail="block"
>>>>>>>> primitive pingd_db ocf:pacemaker:pingd \
>>>>>>>>         params name="default_ping_set" host_list="172.25.33.74"
>>>>>>>> multiplier="100" dampen="0" \
>>>>>>>>         meta migration-threshold="10" \
>>>>>>>>         op start interval="0s" timeout="90s" on-fail="restart" \
>>>>>>>>         op monitor interval="10s" timeout="60s" on-fail="restart" \
>>>>>>>>         op stop interval="0s" timeout="100s" on-fail="block"
>>>>>>>> primitive pingd_web ocf:pacemaker:pingd \
>>>>>>>>         params name="default_ping_set" host_list="192.168.100.1"
>>>>>>>> multiplier="100" dampen="0" \
>>>>>>>>         meta migration-threshold="10" \
>>>>>>>>         op start interval="0s" timeout="90s" on-fail="restart" \
>>>>>>>>         op monitor interval="10s" timeout="60s" on-fail="restart" \
>>>>>>>>         op stop interval="0s" timeout="100s" on-fail="block"
>>>>>>>> primitive postgresql ocf:heartbeat:pgsql \
>>>>>>>>         params pgctl="/usr/bin/pg_ctl" start_opt="-p 5432 -h
>>>>>>>> 127.0.0.1" psql="/usr/bin/psql" pgdata="/databb/pgsql"
>>>>>>>> pgdba="postgres" pgport="5432" pgdb="template1" \
>>>>>>>>         op start interval="0s" timeout="120s" on-fail="restart" \
>>>>>>>>         op monitor interval="10s" timeout="60s" on-fail="restart" \
>>>>>>>>         op stop interval="0s" timeout="120s" on-fail="block"
>>>>>>>> group group_db fs_db ip_db postgresql
>>>>>>>> ms ms_drbd_db drbd_db \
>>>>>>>>         meta master-max="1" master-node-max="1" clone-max="2"
>>>>>>>> clone-node-max="1" notify="true"
>>>>>>>> clone clnPingd_db pingd_db \
>>>>>>>>         meta clone-max="2" clone-node-max="1"
>>>>>>>> location group_db-location group_db \
>>>>>>>>         rule $id="group_db-location-rule" 200: #uname eq testdb01 \
>>>>>>>>         rule $id="group_db-location-rule-0" 100: #uname eq testdb02 \
>>>>>>>>         rule $id="group_db-location-rule-1" -inf: defined
>>>>>>>> default_ping_set or default_ping_set lt 100
>>>>>>>> location master-location_db ms_drbd_db \
>>>>>>>>         rule $id="master-location_db-rule" 200: #uname eq testdb01 \
>>>>>>>>         rule $id="master-location_db-rule-0" 100: #uname eq testdb02
>>>>>>>> \
>>>>>>>>         rule $id="master-location_db-rule-1" $role="master" -inf:
>>>>>>>> defined default_ping_set or default_ping_set lt 100
>>>>>>>> colocation clnPingd_db-colocation 1000: group_db clnPingd_db
>>>>>>>> colocation db_on_drbd inf: group_db ms_drbd_db:Master
>>>>>>>> order order_db_after_drbd inf: ms_drbd_db:promote group_db:start
>>>>>>>> property $id="cib-bootstrap-options" \
>>>>>>>>         cluster-infrastructure="Heartbeat" \
>>>>>>>>         expected-quorum-votes="2" \
>>>>>>>>         no-quorum-policy="ignore" \
>>>>>>>>         stonith-enabled="false" \
>>>>>>>>         startup-fencing="false" \
>>>>>>>>         dc-deadtime="20s" \
>>>>>>>>         dc-version="1.0.11-1554a83db0d3c3e546cfd3aaff6af1184f79ee87"
>>>>>>>> rsc_defaults $id="rsc-options" \
>>>>>>>>         resource-stickiness="INFINITY" \
>>>>>>>>         migration-threshold="1"
>>>>>>>> -----------------------------------------------------------------
>>>>>>>>  ocf:linbit:drbd が悪いのかと思い、/usr/lib/ocf/resource.d/linbit/drbd
>>>>>>>>  の存在は確認したしまた。
>>>>>>>>  drbd-pacemaker-8.4.1-1.el6.x86_64からインストールしました。
>>>>>>>>
>>>>>>>> 以上、よろしくお願いいたします。
>>>>>>>>
>>>>>>>> _______________________________________________
>>>>>>>> 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
>>>>>
>>>>>
>>>>>
>>>>> --
>>>>> ----
>>>>> Takehiro Matsushima
>>>>>
>>>>> _______________________________________________
>>>>> 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
>>>
>>>
>>>
>>> --
>>> ----
>>> Takehiro Matsushima
>>>
>>> _______________________________________________
>>> 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
>
>
>
> --
> ----
> Takehiro Matsushima
>
> _______________________________________________
> Linux-ha-japan mailing list
> Linux****@lists*****
> http://lists.sourceforge.jp/mailman/listinfo/linux-ha-japan





Linux-ha-japan メーリングリストの案内
Back to archive index