<div style="line-height:1.7;color:#000000;font-size:14px;font-family:Arial"><br><pre>&gt;Also, I forgot about the undocumented/unsupported start-delay operation
&gt;attribute, that you can put on the status operation to delay the first
&gt;monitor. That may give you the behavior you want.</pre><div>I have try to add "start-delay=60s" to monitor operation. The first monitor was really delayed as 60s. But in the 60s, it will block other resources too! The result is the same to sleeping in monitor.<br>So, I think the best method for me,&nbsp; is to judge whether need to return success in monitor function by timestamp.<br>Thank you very much!<br></div><br><br><br><div style="position:relative;zoom:1"></div><div id="divNeteaseMailCard"></div><br><pre><br>At 2017-11-06 21:53:53, "Ken Gaillot" &lt;kgaillot@redhat.com&gt; wrote:
&gt;On Sat, 2017-11-04 at 22:46 +0800, lkxjtu wrote:
&gt;&gt; 
&gt;&gt; 
&gt;&gt; &gt;Another possibility would be to have the start return immediately,
&gt;&gt; and
&gt;&gt; &gt;make the monitor artificially return success for the first 10
&gt;&gt; minutes
&gt;&gt; &gt;after starting. It's hacky, and it depends on your situation whether
&gt;&gt; &gt;the behavior is acceptable.
&gt;&gt; I tried to put the sleep into the monitor function,( I add a “sleep
&gt;&gt; 60” at the monitor entry for debug),&nbsp; the start function returns
&gt;&gt; immediately. I found an interesting thing that is, at the first time
&gt;&gt; of monitor after start, it will block other resource too, but from
&gt;&gt; the second time, it won't block other resources! Is this normal?
&gt;
&gt;Yes, the first result is for an unknown status, but after that, the
&gt;cluster assumes the resource is OK unless/until the monitor says
&gt;otherwise.
&gt;
&gt;However, I wasn't suggesting putting a sleep inside the monitor -- I
&gt;was just thinking of having the monitor check the time, and if it's
&gt;within 10 minutes of start, return success.
&gt;
&gt;&gt; &gt;My first thought on how to implement this
&gt;&gt; &gt;would be to have the start action set a private node attribute
&gt;&gt; &gt;(attrd_updater -p) with a timestamp. When the monitor runs, it could
&gt;&gt; do
&gt;&gt; &gt;its usual check, and if it succeeds, remove that node attribute, but
&gt;&gt; if
&gt;&gt; &gt;it fails, check the node attribute to see whether it's within the
&gt;&gt; &gt;desired delay.
&gt;&gt; This means that if it is in the desired delay, monitor should return
&gt;&gt; success even if healthcheck failed?
&gt;&gt; I think this can solve my problem except "crm status" show
&gt;
&gt;Yes, that's what I had in mind. The status would show "running", which
&gt;may or may not be what you want in this case.
&gt;
&gt;Also, I forgot about the undocumented/unsupported start-delay operation
&gt;attribute, that you can put on the status operation to delay the first
&gt;monitor. That may give you the behavior you want.
&gt;
&gt;&gt; At 2017-11-01 21:20:50, "Ken Gaillot" &lt;kgaillot@redhat.com&gt; wrote:
&gt;&gt; &gt;On Sat, 2017-10-28 at 01:11 +0800, lkxjtu wrote:
&gt;&gt; &gt;&gt;&nbsp;
&gt;&gt; &gt;&gt; Thank you for your response! This means that there shoudn't be
&gt;&gt; long
&gt;&gt; &gt;&gt; "sleep" in ocf script.
&gt;&gt; &gt;&gt; If my service takes 10 minite from service starting to healthcheck
&gt;&gt; &gt;&gt; normally, then what shoud I do?
&gt;&gt; &gt;
&gt;&gt; &gt;That is a tough situation with no great answer.
&gt;&gt; &gt;
&gt;&gt; &gt;You can leave it as it is, and live with the delay. Note that it
&gt;&gt; only
&gt;&gt; &gt;happens if a resource fails after the slow resource has already
&gt;&gt; begun
&gt;&gt; &gt;starting ... if they fail at the same time (as with a node failure),
&gt;&gt; &gt;the cluster will schedule recovery for both at the same time.
&gt;&gt; &gt;
&gt;&gt; &gt;Another possibility would be to have the start return immediately,
&gt;&gt; and
&gt;&gt; &gt;make the monitor artificially return success for the first 10
&gt;&gt; minutes
&gt;&gt; &gt;after starting. It's hacky, and it depends on your situation whether
&gt;&gt; &gt;the behavior is acceptable. My first thought on how to implement
&gt;&gt; this
&gt;&gt; &gt;would be to have the start action set a private node attribute
&gt;&gt; &gt;(attrd_updater -p) with a timestamp. When the monitor runs, it could
&gt;&gt; do
&gt;&gt; &gt;its usual check, and if it succeeds, remove that node attribute, but
&gt;&gt; if
&gt;&gt; &gt;it fails, check the node attribute to see whether it's within the
&gt;&gt; &gt;desired delay.
&gt;&gt; &gt;
&gt;&gt; &gt;&gt; Thank you very much!
&gt;&gt; &gt;&gt; &nbsp;
&gt;&gt; &gt;&gt; &gt; Hi,
&gt;&gt; &gt;&gt; &gt; If I remember correctly, any pending actions from a previous
&gt;&gt; &gt;&gt; transition
&gt;&gt; &gt;&gt; &gt; must be completed before a new transition can be calculated.
&gt;&gt; &gt;&gt; Otherwise,
&gt;&gt; &gt;&gt; &gt; there's the possibility that the pending action could change the
&gt;&gt; &gt;&gt; state
&gt;&gt; &gt;&gt; &gt; in a way that makes the second transition's decisions harmful.
&gt;&gt; &gt;&gt; &gt; Theoretically (and ideally), pacemaker could figure out whether
&gt;&gt; &gt;&gt; some of
&gt;&gt; &gt;&gt; &gt; the actions in the second transition would be needed regardless
&gt;&gt; of
&gt;&gt; &gt;&gt; &gt; whether the pending actions succeeded or failed, but in
&gt;&gt; practice,
&gt;&gt; &gt;&gt; that
&gt;&gt; &gt;&gt; &gt; would be difficult to implement (and possibly take more time to
&gt;&gt; &gt;&gt; &gt; calculate than is desirable in a recovery situation).
&gt;&gt; &gt;&gt; &nbsp;
&gt;&gt; &gt;&gt; &gt; On Fri, 2017-10-27 at 23:54 +0800, lkxjtu wrote:
&gt;&gt; &gt;&gt;&nbsp;
&gt;&gt; &gt;&gt; &gt; I have two clone resources in my corosync/pacemaker cluster.
&gt;&gt; They
&gt;&gt; &gt;&gt; are
&gt;&gt; &gt;&gt; &gt; fm_mgt and logserver. Both of their RA is ocf. fm_mgt takes 1
&gt;&gt; &gt;&gt; minute
&gt;&gt; &gt;&gt; &gt; to start the
&gt;&gt; &gt;&gt; &gt; service(calling ocf start function for 1 minite). Configured as
&gt;&gt; &gt;&gt; &gt; below:
&gt;&gt; &gt;&gt; &gt; # crm configure show
&gt;&gt; &gt;&gt; &gt; node 168002177: 192.168.2.177
&gt;&gt; &gt;&gt; &gt; node 168002178: 192.168.2.178
&gt;&gt; &gt;&gt; &gt; node 168002179: 192.168.2.179
&gt;&gt; &gt;&gt; &gt; primitive fm_mgt fm_mgt \
&gt;&gt; &gt;&gt; &gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; op monitor interval=20s timeout=120s \
&gt;&gt; &gt;&gt; &gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; op stop interval=0 timeout=120s on-fail=restart \
&gt;&gt; &gt;&gt; &gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; op start interval=0 timeout=120s on-fail=restart \
&gt;&gt; &gt;&gt; &gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; meta target-role=Started
&gt;&gt; &gt;&gt; &gt; primitive logserver logserver \
&gt;&gt; &gt;&gt; &gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; op monitor interval=20s timeout=120s \
&gt;&gt; &gt;&gt; &gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; op stop interval=0 timeout=120s on-fail=restart \
&gt;&gt; &gt;&gt; &gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; op start interval=0 timeout=120s on-fail=restart \
&gt;&gt; &gt;&gt; &gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; meta target-role=Started
&gt;&gt; &gt;&gt; &gt; clone fm_mgt_replica fm_mgt
&gt;&gt; &gt;&gt; &gt; clone logserver_replica logserver
&gt;&gt; &gt;&gt; &gt; property cib-bootstrap-options: \
&gt;&gt; &gt;&gt; &gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; have-watchdog=false \
&gt;&gt; &gt;&gt; &gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; dc-version=1.1.13-10.el7-44eb2dd \
&gt;&gt; &gt;&gt; &gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; cluster-infrastructure=corosync \
&gt;&gt; &gt;&gt; &gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; stonith-enabled=false \
&gt;&gt; &gt;&gt; &gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; start-failure-is-fatal=false
&gt;&gt; &gt;&gt; &gt; When I kill fm_mgt service on one node,pacemaker will
&gt;&gt; immediately
&gt;&gt; &gt;&gt; &gt; recover it after monitor failed. This looks perfectly normal.
&gt;&gt; But
&gt;&gt; &gt;&gt; in
&gt;&gt; &gt;&gt; &gt; this 1 minite
&gt;&gt; &gt;&gt; &gt; of fm_mgt starting, if I kill logserver service on any node, the
&gt;&gt; &gt;&gt; &gt; monitor will catch the fail normally too,but pacemaker will not
&gt;&gt; &gt;&gt; &gt; restart it
&gt;&gt; &gt;&gt; &gt; immediately but waiting for fm_mgt starting finished. After
&gt;&gt; fm_mgt
&gt;&gt; &gt;&gt; &gt; starting finished, pacemaker begin restarting logserver. It
&gt;&gt; seems
&gt;&gt; &gt;&gt; &gt; that there are
&gt;&gt; &gt;&gt; &gt; some dependency between pacemaker resource.
&gt;&gt; &gt;&gt; &gt; # crm status
&gt;&gt; &gt;&gt; &gt; Last updated: Thu Oct 26 06:40:24 2017&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Last change: Thu
&gt;&gt; &gt;&gt; Oct
&gt;&gt; &gt;&gt; &gt; 26&nbsp;&nbsp;&nbsp;&nbsp; 06:36:33 2017 by root via crm_resource on 192.168.2.177
&gt;&gt; &gt;&gt; &gt; Stack: corosync
&gt;&gt; &gt;&gt; &gt; Current DC: 192.168.2.179 (version 1.1.13-10.el7-44eb2dd) -
&gt;&gt; &gt;&gt; partition
&gt;&gt; &gt;&gt; &gt; with quorum
&gt;&gt; &gt;&gt; &gt; 3 nodes and 6 resources configured
&gt;&gt; &gt;&gt; &gt; Online: [ 192.168.2.177 192.168.2.178 192.168.2.179 ]
&gt;&gt; &gt;&gt; &gt; Full list of resources:
&gt;&gt; &gt;&gt; &gt;&nbsp; Clone Set: logserver_replica [logserver]
&gt;&gt; &gt;&gt; &gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; logserver&nbsp; (ocf::heartbeat:logserver):&nbsp;&nbsp;&nbsp;&nbsp; FAILED
&gt;&gt; &gt;&gt; 192.168.2.177
&gt;&gt; &gt;&gt; &gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Started: [ 192.168.2.178 192.168.2.179 ]
&gt;&gt; &gt;&gt; &gt;&nbsp; Clone Set: fm_mgt_replica [fm_mgt]
&gt;&gt; &gt;&gt; &gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Started: [ 192.168.2.178 192.168.2.179 ]
&gt;&gt; &gt;&gt; &gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Stopped: [ 192.168.2.177 ]
&gt;&gt; &gt;&gt; &gt; I am confusing very much. Is there something wrong
&gt;&gt; configure?Thank
&gt;&gt; &gt;&gt; &gt; you very much!
&gt;&gt; &gt;&gt; &gt; James
&gt;&gt; &gt;&gt; &gt; best regards
&gt;&gt; &gt;&gt; &nbsp;
&gt;&gt; &gt;&gt;&nbsp;
&gt;&gt; &gt;&gt;&nbsp;
&gt;&gt; &gt;&gt; 【网易自营】好吃到爆!鲜香弹滑加热即食,经典13香/麻辣小龙虾仅75元3斤&gt;&gt; &nbsp; &nbsp; &nbsp;
&gt;&gt; &gt;&gt;&nbsp;
&gt;&gt; &gt;&gt;&nbsp;
&gt;&gt; &gt;&gt; 【网易自营】好吃到爆!鲜香弹滑加热即食,经典13香/麻辣小龙虾仅75元3斤&gt;&gt; &nbsp; &nbsp; &nbsp;
&gt;&gt; &gt;&gt;&nbsp;
&gt;&gt; &gt;&gt;&nbsp;
&gt;&gt; &gt;&gt; 【网易自营|30天无忧退货】仅售同款价1/4!MUJI制造商“2017秋冬舒适家居拖鞋系列”限时仅34.9元&gt;&gt; &nbsp; &nbsp; &nbsp;
&gt;&gt; &gt;--&nbsp;
&gt;&gt; &gt;Ken Gaillot &lt;kgaillot@redhat.com&gt;
&gt;&gt; 
&gt;&gt; 
&gt;&gt; &nbsp;
&gt;-- 
&gt;Ken Gaillot &lt;kgaillot@redhat.com&gt;
</pre></div><br><br><span title="neteasefooter"><p>&nbsp;</p></span>