[Linux-ha-jp] Linux-ha-japan まとめ読み, 140 巻, 4 号

アーカイブの一覧に戻る
西原健 ken.n****@hco*****
2019年 10月 21日 (月) 17:39:44 JST


山地様


西原です。


> 
なお、下記の登録方法にてリソース登録をし該当するnicをダウンさせたのですが、フェイルオーバーしませんでした。
>
> pcs resource create gw_ping ocf:pacemaker:ping dampen=5s 
multiplier=1000 host_list=***.***.***.*** op monitor interval=10s --clone
>
> 
情報は色々と調べたのですが、いずれもフェイルオーバーせず、pingリソースにつきまして、ご教授いただければ幸いです。


まず、念のためですが、フェイルオーバーしないリソースというのが
pingリソースではなく、何か他のリソースであると想定して回答します。
(上記のpcs設定ではpingリソースはclone設定しており、
両ノードでACT/ACTで起動しますので、
pingリソースそのものはフェイルオーバーはしません。)


pingリソースは
「nameパラメータで指定した属性名」に対し、
「host_list指定したIPアドレスのうち、pingが通ったアドレスの数×multiplierの数値」を設定するリソースという認識です。
(なお、nameパラメータを指定しないと
「pingd」という属性名がデフォルトになるようです。)


上記のpcs設定の場合、
・***.***.***.***にpingが通る場合は
 「pingd」という属性に"1000"という値が設定される
・***.***.***.***にpingが通らない場合は
 「pingd」という属性に"0"という値が設定される
ことになるかと思います。
(上記のpcs設定を行った状態でcrm_mon -fAを実行すると
pingd属性に1000が設定されている様子が見えるかと思います。)


あくまでpingリソースは属性名に値を設定するだけですので、
pingリソースの結果をもって他のリソースをフェイルオーバーさせるには
他のリソースに対し属性との制約を設定する必要があります。

例えば
dummyというリソースを上記pcs設定のpingリソースで
pingが通らなくなった場合にフェイルオーバーさせる制約は下記のようになるかと思います。

pcs constraint location dummy rule score=-INFINITY not_defined pingd or 
pingd lt 1000

(「pingd」という属性が設定されていないor値が1000未満の場合は
dummyの配置スコアを-INFINITYにし、そのノードで起動できないようにする)


以上です。
お答えになっているかわかりませんが、参考になれば幸いです。


[参考]
私の手元で試したpcs設定

pcs property set stonith-enabled=false
pcs resource defaults resource-stickiness=200 migration-threshold=1
pcs resource create dummy ocf:pacemaker:Dummy \
     op start timeout=60s on-fail=restart \
     op monitor interval=10s timeout=60s on-fail=restart \
     op stop timeout=60s on-fail=block
pcs resource create ping ocf:pacemaker:ping \
     host_list="10.0.4.200" \
     multiplier="1000" \
     dampen="5s" \
     op start timeout=60s on-fail=restart \
     op monitor interval=10s timeout=60s on-fail=restart \
     op stop timeout=60s on-fail=ignore
pcs resource clone ping
pcs constraint location dummy rule score=-INFINITY not_defined pingd or 
pingd lt 1000

この設定で片方のノードからpingリソースの監視先である
10.0.4.200にping疎通できなくすると、
そのノードではdummyリソースが起動できず、反対系にFOしました。

> 西原様
> 
> ご返信ありがとうございます。山地です。
> 
>> ただ、そもそも想定されているフェイルオーバーのシチュエーションとして
>> サーバ1⇒サーバ2へのping通信が出来ない状態で、
>> サーバ2⇒サーバ1へのping通信は可能
>> のように、片ノードからだけping通信が可能となる状況自体が考えにくいように感じられました。
> 
> 確かにおっしゃるとおりでございます。
> 
> 想定としては、GWへのPING通信と、DRBD同期用の2つのPINGリソースを登録し、それぞれ通信不可だった場合、フェイルオーバーさせたいと思っております。
> この場合はpcsコマンドでリソース登録は可能でしょうか?
> 
> なお、下記の登録方法にてリソース登録をし該当するnicをダウンさせたのですが、フェイルオーバーしませんでした。
> 
> pcs resource create gw_ping ocf:pacemaker:ping dampen=5s multiplier=1000 host_list=***.***.***.*** op monitor interval=10s --clone
> 
> 情報は色々と調べたのですが、いずれもフェイルオーバーせず、pingリソースにつきまして、ご教授いただければ幸いです。
> 
> お手数おかけしますが、よろしくお願いいたします。
> 
> 山地
> 
> -----Original Message-----
> From: Linux-ha-japan <linux****@lists*****> On Behalf Of linux****@lists*****
> Sent: Monday, October 21, 2019 12:00 PM
> To: linux****@lists*****
> Subject: Linux-ha-japan まとめ読み, 140 巻, 4 号
> 
> Linux-ha-japan
> メーリングリストへの投稿は以下のアドレスに送ってください.
> 
> 	linux****@lists*****
> 
> Webブラウザを使って入退会するには以下のURLにどうぞ.
> 
> 	https://jpn01.safelinks.protection.outlook.com/?url=https%3A%2F%2Flists.osdn.me%2Fmailman%2Flistinfo%2Flinux-ha-japan&data=01%7C01%7Cmasato.yamaji%40stream.co.jp%7Cfde447806fec4ab3835008d755d2c534%7Cd32651690d0c4f368098aab53dc8766b%7C1&sdata=E1MEm8yyg9SKp8RJ6s27SVZ2ttQTuxa8yKtK6ySOnuw%3D&reserved=0
> メールを使う場合,件名(Subject:)または本文に help
> と書いて以下の アドレスに送信してください.
> 	linux****@lists*****
> 
> メーリングリストの管理者への連絡は,以下のアドレスにお願いします.
> 
> 	linux****@lists*****
> 
> 返信する場合,件名を書き直して内容がわかるようにしてください.
> そのままだと,以下のようになってしまいます.
> "Re: Linux-ha-japan まとめ読み, XX 巻 XX 号"
> 
> 
> 本日の話題:
> 
>     1. Re:  リソースの設定についてご質問
>        (mizuki_rio_20180****@yahoo*****)
> 
> 
> ----------------------------------------------------------------------
> 
> Message: 1
> Date: Sun, 20 Oct 2019 21:09:49 +0900 (JST)
> From: mizuki_rio_20180****@yahoo*****
> To: "linux****@lists*****" <linux****@lists*****>
> Subject: Re: [Linux-ha-jp]  リソースの設定についてご質問
> Message-ID:
> 	<61899****@mail*****>
> Content-Type: text/plain; charset=UTF-8
> 
> 山地様
> 
> 
> 西原と申します。
> 
> 
>> GW への Ping 死活監視登録については、下記の様にcloneオプションを使い、アクティブ、スタンバイ共に死活監視が可能かとおもいますが、
>>
>> pcs resource create gw_ping ocf:pacemaker:ping dampen=5s multiplier=1000
>> host_list=***.***.***.*** op monitor interval=10s --clone
>>
>> アクティブ、スタンバイ双方でIPアドレスが違うリソース登録は可能なのでしょうか?
> 
> 
> いくつか方法はあるかと思いますが、
> 例えば下記のようなリソース設定を行うことでGWへのPing死活監視のようなイメージで
> アクティブ、スタンバイ双方で監視IPアドレスが違うpingリソースを登録することが可能かと思います。
> https://jpn01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fclusterlabs.org%2Fpacemaker%2Fdoc%2Fen-US%2FPacemaker%2F1.1%2Fhtml%2FPacemaker_Explained%2F_using_rules_to_control_resource_options.html&data=01%7C01%7Cmasato.yamaji%40stream.co.jp%7Cfde447806fec4ab3835008d755d2c534%7Cd32651690d0c4f368098aab53dc8766b%7C1&sdata=REmB3fmaB3suT4oqu7pmfTZ%2FYR4KrbaeCzqBFwwHOik%3D&reserved=0
> 
>> 手元のRHEL8.0で下記のようなcibを試してみましたが、
> Node-01側では10.0.4.102にpingを送り、
> Node-02側では10.0.4.101にpingを送るようになりました。
> 
> (なお、pcsコマンドでの設定方法はわかりませんでした。cibを直接編集するしかないかもしれません。)
> 
> 
> [root @ Node-01 ~]# pcs cluster cib scope=resources
> <resources>
>    <primitive class="ocf" id="dummy" provider="pacemaker" type="Dummy">
>      <operations>
>        <op id="dummy-migrate_from-interval-0s" interval="0s" name="migrate_from" timeout="20s"/>
>        <op id="dummy-migrate_to-interval-0s" interval="0s" name="migrate_to" timeout="20s"/>
>        <op id="dummy-monitor-interval-10s" interval="10s" name="monitor" on-fail="restart" timeout="60s"/>
>        <op id="dummy-reload-interval-0s" interval="0s" name="reload" timeout="20s"/>
>        <op id="dummy-start-interval-0s" interval="0s" name="start" on-fail="restart" timeout="60s"/>
>        <op id="dummy-stop-interval-0s" interval="0s" name="stop" on-fail="block" timeout="60s"/>
>      </operations>
>    </primitive>
>    <clone id="ping-clone">
>      <primitive class="ocf" id="ping" provider="pacemaker" type="ping">
>        <instance_attributes id="ping-instance_attributes-01" score="3">
>          <rule id="Node-01-parms" score="INFINITY">
>            <expression id="node-is-Node-01" attribute="#uname" operation="eq" value="Node-01"/>
>          </rule>
>          <nvpair id="ping-instance_attributes-host_list_Node-01" name="host_list" value="10.0.4.102"/>
>        </instance_attributes>
>        <instance_attributes id="ping-instance_attributes-02" score="2">
>          <rule id="Node-02-parms" score="INFINITY">
>            <expression id="node-is-Node-02" attribute="#uname" operation="eq" value="Node-02"/>
>          </rule>
>          <nvpair id="ping-instance_attributes-host_list_Node-02" name="host_list" value="10.0.4.101"/>
>        </instance_attributes>
>        <instance_attributes id="defaults" score="1">
>          <nvpair id="ping-instance_attributes-attempts" name="attempts" value="2"/>
>          <nvpair id="ping-instance_attributes-debug" name="debug" value="true"/>
>          <nvpair id="ping-instance_attributes-name" name="name" value="ping-status"/>
>          <nvpair id="ping-instance_attributes-timeout" name="timeout" value="2"/>
>        </instance_attributes>
>        <operations>
>          <op id="ping-monitor-interval-10s" interval="10s" name="monitor" on-fail="restart" timeout="60s"/>
>          <op id="ping-start-interval-0s" interval="0s" name="start" on-fail="restart" timeout="60s"/>
>          <op id="ping-stop-interval-0s" interval="0s" name="stop" on-fail="ignore" timeout="60s"/>
>        </operations>
>      </primitive>
>    </clone>
> </resources>
> 
> 
> 
> ……ただ、そもそも想定されているフェイルオーバーのシチュエーションとして
> サーバ1⇒サーバ2へのping通信が出来ない状態で、
> サーバ2⇒サーバ1へのping通信は可能
> のように、片ノードからだけping通信が可能となる状況自体が考えにくいように感じられました。
> 
> 
> ネットワーク障害が発生したような場合には
> ・サーバ1⇒サーバ2のping通信
> ・サーバ2⇒サーバ1のping通信
> のどちらも不可となることが多いのではないでしょうか。
> 
> この場合想定されている設定を行っても
> 両ノードともpingが通じず、結局フェイルオーバー出来ないことになります。
> (ある意味ping監視してもしていなくても一緒とも考えられます。)
> 
> 
> まずはサーバ1/サーバ2相互にping監視を行うことの必要性について
> 再検討いただくほうがよいかもしれません。
> 
> 
> 以上です。
> 
> 
>>
>> お世話になります。
>>
>> リソースの設定についてご質問させてください。
>>
>> 利用バージョン
>> DRBD version: 9.0.16-1
>> PCS 0.9.167
>> Corosync  2.4.3
>> Pacemaker 1.1.20-5.el7_7.1
>>
>>
>> eth1とは別にeth2を用意し、そちらをDRBD同期用に使っております。
>>
>> DRBD同期用 NiC
>> サーバ1 eth2 10.199.199.10
>> サーバ2 eth2 10.199.199.20
>>
>> 想定としては、
>> サーバ1はサーバ2のeth2(10.199.199.20)へpingを送り、通信が出来ない場合フェイルオーバー
>> サーバ2はサーバ1のeth2(10.199.199.10)へpingを送り、通信が出来ない場合フェイルオーバー
>>
>> 上記のようにリソース登録したいのですが、これは可能でしょうか?
>>
>>
>> GW への Ping 死活監視登録については、下記の様にcloneオプションを使い、アクティブ、スタンバイ共に死活監視が可能かとおもいますが、
>>
>> pcs resource create gw_ping ocf:pacemaker:ping dampen=5s multiplier=1000
>> host_list=***.***.***.*** op monitor interval=10s --clone
>>
>> アクティブ、スタンバイ双方でIPアドレスが違うリソース登録は可能なのでしょうか?
>> また、ネットワークの死活監視リソースは複数登録する事が可能でしょうか?
>>
>> お手数おかけしますが、ご確認よろしくお願いいたします。
>>
>> 山地
>>
>> _______________________________________________
>> Linux-ha-japan mailing list
>> Linux****@lists*****
>> https://jpn01.safelinks.protection.outlook.com/?url=https%3A%2F%2Flists.osdn.me%2Fmailman%2Flistinfo%2Flinux-ha-japan&data=01%7C01%7Cmasato.yamaji%40stream.co.jp%7Cfde447806fec4ab3835008d755d2c534%7Cd32651690d0c4f368098aab53dc8766b%7C1&sdata=E1MEm8yyg9SKp8RJ6s27SVZ2ttQTuxa8yKtK6ySOnuw%3D&reserved=0
>>
> 
> 
> 
> ------------------------------
> 
> Subject: まとめ読みフッタ
> 
> _______________________________________________
> Linux-ha-japan mailing list
> Linux****@lists*****
> https://jpn01.safelinks.protection.outlook.com/?url=https%3A%2F%2Flists.osdn.me%2Fmailman%2Flistinfo%2Flinux-ha-japan&data=01%7C01%7Cmasato.yamaji%40stream.co.jp%7Cfde447806fec4ab3835008d755d2c534%7Cd32651690d0c4f368098aab53dc8766b%7C1&sdata=E1MEm8yyg9SKp8RJ6s27SVZ2ttQTuxa8yKtK6ySOnuw%3D&reserved=0
> 
> 
> ------------------------------
> 
> 以上: Linux-ha-japan まとめ読み, 140 巻, 4 号
> ******************************************************
> _______________________________________________
> Linux-ha-japan mailing list
> Linux****@lists*****
> https://lists.osdn.me/mailman/listinfo/linux-ha-japan
> 



Linux-ha-japan メーリングリストの案内
アーカイブの一覧に戻る