<div dir="ltr">Jan,<div><br></div><div>  Very appreciated on your help, I am getting further more, but still it looks very strange.</div><div><br></div><div>1. To use &quot;debug-promote&quot;, I upgrade pacemaker from 1.12 to 1.16, pcs to 0.9.160.</div><div><br></div><div>2. Recreate resource with below commands</div><div><div>pcs resource create ovndb_servers ocf:ovn:ovndb-servers \</div><div>  master_ip=192.168.0.99 \</div><div>  op monitor interval=&quot;10s&quot; \</div><div>  op monitor interval=&quot;11s&quot; role=Master</div><div>pcs resource master ovndb_servers-master ovndb_servers \</div><div>  meta notify=&quot;true&quot; master-max=&quot;1&quot; master-node-max=&quot;1&quot; clone-max=&quot;3&quot; clone-node-max=&quot;1&quot;</div><div>pcs resource create VirtualIP ocf:heartbeat:IPaddr2 ip=192.168.0.99 \</div><div>    op monitor interval=10s</div><div>pcs constraint colocation add VirtualIP with master ovndb_servers-master \</div><div>  score=INFINITY</div></div><div><br></div><div>3. pcs status</div><div><div> Master/Slave Set: ovndb_servers-master [ovndb_servers]</div><div>     Stopped: [ node-1.domain.tld node-2.domain.tld node-3.domain.tld ]</div><div> VirtualIP<span style="white-space:pre">        </span>(ocf::heartbeat:IPaddr2):<span style="white-space:pre">        </span>Stopped</div></div><div><br></div><div>4. Manually run &#39;debug-start&#39; on 3 nodes and &#39;debug-promote&#39; on one of nodes</div><div>run below on [ node-1.domain.tld node-2.domain.tld node-3.domain.tld ]<br></div><div># pcs resource debug-start ovndb_servers --full</div><div>run below on [ node-1.domain.tld ]</div><div># pcs resource debug-promote ovndb_servers --full</div><div><br></div><div>5. pcs status</div><div> Master/Slave Set: ovndb_servers-master [ovndb_servers]</div><div>     Stopped: [ node-1.domain.tld node-2.domain.tld node-3.domain.tld ]</div><div> VirtualIP<span style="white-space:pre">        </span>(ocf::heartbeat:IPaddr2):<span style="white-space:pre">        </span>Stopped</div><div><br></div><div>6. However I have seen that one of ovndb_servers has been indeed promoted as master, but pcs status still showed all &#39;stopped&#39;</div><div>what am I missing?</div><div><br></div><div> &gt;  stderr: + 17:45:59: ocf_log:327: __OCF_MSG=&#39;ovndb_servers: Promoting node-1.domain.tld as the master&#39;</div><div> &gt;  stderr: + 17:45:59: ocf_log:329: case &quot;${__OCF_PRIO}&quot; in</div><div> &gt;  stderr: + 17:45:59: ocf_log:333: __OCF_PRIO=INFO</div><div> &gt;  stderr: + 17:45:59: ocf_log:338: &#39;[&#39; INFO = DEBUG &#39;]&#39;</div><div> &gt;  stderr: + 17:45:59: ocf_log:341: ha_log &#39;INFO: ovndb_servers: Promoting node-1.domain.tld as the master&#39;</div><div> &gt;  stderr: + 17:45:59: ha_log:253: __ha_log &#39;INFO: ovndb_servers: Promoting node-1.domain.tld as the master&#39;</div><div> &gt;  stderr: + 17:45:59: __ha_log:185: local ignore_stderr=false</div><div> &gt;  stderr: + 17:45:59: __ha_log:186: local loglevel</div><div> &gt;  stderr: + 17:45:59: __ha_log:188: &#39;[&#39; &#39;xINFO: ovndb_servers: Promoting node-1.domain.tld as the master&#39; = x--ignore-stderr &#39;]&#39;</div><div> &gt;  stderr: + 17:45:59: __ha_log:190: &#39;[&#39; none = &#39;&#39; &#39;]&#39;</div><div> &gt;  stderr: + 17:45:59: __ha_log:192: tty</div><div> &gt;  stderr: + 17:45:59: __ha_log:193: &#39;[&#39; x = x0 -a x = xdebug &#39;]&#39;</div><div> &gt;  stderr: + 17:45:59: __ha_log:195: &#39;[&#39; false = true &#39;]&#39;</div><div> &gt;  stderr: + 17:45:59: __ha_log:199: &#39;[&#39; &#39;&#39; &#39;]&#39;</div><div> &gt;  stderr: + 17:45:59: __ha_log:202: echo &#39;INFO: ovndb_servers: Promoting node-1.domain.tld as the master&#39;</div><div> &gt;  stderr: INFO: ovndb_servers: Promoting node-1.domain.tld as the master</div><div> &gt;  stderr: + 17:45:59: __ha_log:204: return 0</div><div> &gt;  stderr: + 17:45:59: ovsdb_server_promote:378: /usr/sbin/crm_attribute --type crm_config --name OVN_REPL_INFO -s ovn_ovsdb_master_server -v node-1.domain.tld</div><div> &gt;  stderr: + 17:45:59: ovsdb_server_promote:379: ovsdb_server_master_update 8</div><div> &gt;  stderr: + 17:45:59: ovsdb_server_master_update:214: case $1 in</div><div> &gt;  stderr: + 17:45:59: ovsdb_server_master_update:218: /usr/sbin/crm_master -l reboot -v 10</div><div> &gt;  stderr: + 17:45:59: ovsdb_server_promote:380: return 0</div><div> &gt;  stderr: + 17:45:59: 458: rc=0</div><div> &gt;  stderr: + 17:45:59: 459: exit 0</div><div><br></div><div><div><br></div><div><pre style="white-space:pre-wrap;color:rgb(0,0,0)">On 23/11/17 23:52 +0800, Hui Xiang wrote:
&gt;<i> I am working on HA with 3-nodes, which has below configurations:
</i>&gt;<i> 
</i>&gt;<i> &quot;&quot;&quot;
</i>&gt;<i> pcs resource create ovndb_servers ocf:ovn:ovndb-servers \
</i>&gt;<i>   master_ip=168.254.101.2 \
</i>&gt;<i>   op monitor interval=&quot;10s&quot; \
</i>&gt;<i>   op monitor interval=&quot;11s&quot; role=Master
</i>&gt;<i> pcs resource master ovndb_servers-master ovndb_servers \
</i>&gt;<i>   meta notify=&quot;true&quot; master-max=&quot;1&quot; master-node-max=&quot;1&quot; clone-max=&quot;3&quot;
</i>&gt;<i> clone-node-max=&quot;1&quot;
</i>&gt;<i> pcs resource create VirtualIP ocf:heartbeat:IPaddr2 ip=168.254.101.2 \
</i>&gt;<i>     op monitor interval=10s
</i>&gt;<i> pcs constraint order promote ovndb_servers-master then VirtualIP
</i>&gt;<i> pcs constraint colocation add VirtualIP with master ovndb_servers-master \
</i>&gt;<i>   score=INFINITY
</i>&gt;<i> &quot;&quot;&quot;
</i>
(Out of curiosity, this looks like a mix of output from 
pcs config export pcs-commands [or clufter cib2pcscmd -s]
and manual editing.  Is this a good guess?)</pre><pre style="white-space:pre-wrap;color:rgb(0,0,0)">It&#39;s the output of &quot;pcs status&quot;.

&gt;<i>   However, after setting it as above, the master is not being selected, all
</i>&gt;<i> are stopped, from pacemaker log, node-1 has been chosen as the master, I am
</i>&gt;<i> confuse where is wrong, can anybody give a help, it would be very
</i>&gt;<i> appreciated.
</i>&gt;<i> 
</i>&gt;<i> 
</i>&gt;<i>  Master/Slave Set: ovndb_servers-master [ovndb_servers]
</i>&gt;<i>      Stopped: [ node-1.domain.tld node-2.domain.tld node-3.domain.tld ]
</i>&gt;<i>  VirtualIP (ocf::heartbeat:IPaddr2): Stopped
</i>&gt;<i> 
</i>&gt;<i> 
</i>&gt;<i> # pacemaker log
</i>&gt;<i> Nov 23 23:06:03 [665246] node-1.domain.tld        cib:     info:
</i>&gt;<i> cib_perform_op: ++ /cib/configuration/resources:  &lt;primitive class=&quot;ocf&quot;
</i>&gt;<i> id=&quot;ovndb_servers&quot; provider=&quot;ovn&quot; type=&quot;ovndb-servers&quot;/&gt;
</i>&gt;<i> Nov 23 23:06:03 [665246] node-1.domain.tld        cib:     info:
</i>&gt;<i> cib_perform_op: ++                                  &lt;instance_attributes
</i>&gt;<i> id=&quot;ovndb_servers-instance_attributes&quot;&gt;
</i>&gt;<i> Nov 23 23:06:03 [665246] node-1.domain.tld        cib:     info:
</i>&gt;<i> cib_perform_op: ++                                    &lt;nvpair
</i>&gt;<i> id=&quot;ovndb_servers-instance_attributes-master_ip&quot; name=&quot;master_ip&quot;
</i>&gt;<i> value=&quot;168.254.101.2&quot;/&gt;
</i>&gt;<i> Nov 23 23:06:03 [665246] node-1.domain.tld        cib:     info:
</i>&gt;<i> cib_perform_op: ++                                  &lt;/instance_attributes&gt;
</i>&gt;<i> Nov 23 23:06:03 [665246] node-1.domain.tld        cib:     info:
</i>&gt;<i> cib_perform_op: ++                                  &lt;operations&gt;
</i>&gt;<i> Nov 23 23:06:03 [665246] node-1.domain.tld        cib:     info:
</i>&gt;<i> cib_perform_op: ++                                    &lt;op
</i>&gt;<i> id=&quot;ovndb_servers-start-timeout-30s&quot; interval=&quot;0s&quot; name=&quot;start&quot;
</i>&gt;<i> timeout=&quot;30s&quot;/&gt;
</i>&gt;<i> Nov 23 23:06:03 [665246] node-1.domain.tld        cib:     info:
</i>&gt;<i> cib_perform_op: ++                                    &lt;op
</i>&gt;<i> id=&quot;ovndb_servers-stop-timeout-20s&quot; interval=&quot;0s&quot; name=&quot;stop&quot;
</i>&gt;<i> timeout=&quot;20s&quot;/&gt;
</i>&gt;<i> Nov 23 23:06:03 [665246] node-1.domain.tld        cib:     info:
</i>&gt;<i> cib_perform_op: ++                                    &lt;op
</i>&gt;<i> id=&quot;ovndb_servers-promote-timeout-50s&quot; interval=&quot;0s&quot; name=&quot;promote&quot;
</i>&gt;<i> timeout=&quot;50s&quot;/&gt;
</i>&gt;<i> Nov 23 23:06:03 [665246] node-1.domain.tld        cib:     info:
</i>&gt;<i> cib_perform_op: ++                                    &lt;op
</i>&gt;<i> id=&quot;ovndb_servers-demote-timeout-50s&quot; interval=&quot;0s&quot; name=&quot;demote&quot;
</i>&gt;<i> timeout=&quot;50s&quot;/&gt;
</i>&gt;<i> Nov 23 23:06:03 [665246] node-1.domain.tld        cib:     info:
</i>&gt;<i> cib_perform_op: ++                                    &lt;op
</i>&gt;<i> id=&quot;ovndb_servers-monitor-interval-10s&quot; interval=&quot;10s&quot; name=&quot;monitor&quot;/&gt;
</i>&gt;<i> Nov 23 23:06:03 [665246] node-1.domain.tld        cib:     info:
</i>&gt;<i> cib_perform_op: ++                                    &lt;op
</i>&gt;<i> id=&quot;ovndb_servers-monitor-interval-11s-role-Master&quot; interval=&quot;11s&quot;
</i>&gt;<i> name=&quot;monitor&quot; role=&quot;Master&quot;/&gt;
</i>&gt;<i> Nov 23 23:06:03 [665246] node-1.domain.tld        cib:     info:
</i>&gt;<i> cib_perform_op: ++                                  &lt;/operations&gt;
</i>&gt;<i> Nov 23 23:06:03 [665246] node-1.domain.tld        cib:     info:
</i>&gt;<i> cib_perform_op: ++                                &lt;/primitive&gt;
</i>&gt;<i> 
</i>&gt;<i> Nov 23 23:06:03 [665249] node-1.domain.tld      attrd:     info:
</i>&gt;<i> attrd_peer_update: Setting master-ovndb_servers[node-1.domain.tld]: (null)
</i>&gt;<i> -&gt; 5 from node-1.domain.tld
</i>
If it&#39;s probable your ocf:ovn:ovndb-servers agent in master mode can
run something like &quot;attrd_updater -n master-ovndb_servers -U 5&quot;, then
it was indeed launched OK, and if it does not continue to run as
expected, there may be a problem with the agent itself.
<br></pre><pre style="white-space:pre-wrap;color:rgb(0,0,0)">no change.</pre><pre style="white-space:pre-wrap;color:rgb(0,0,0)">You can try running &quot;pcs resource debug-promote ovndb_servers --full&quot;
to examine the executation details (assuming the agent responds to
OCF_TRACE_RA=1 environment variable, which is what shell-based
agents built on top ocf-shellfuncs sourcable shell library from
resource-agents project, hence incl. also agents it ships,
customarily do).</pre><pre style="white-space:pre-wrap;color:rgb(0,0,0)">Yes, thank, it&#39;s helpful.

&gt;<i> Nov 23 23:06:03 [665251] node-1.domain.tld       crmd:   notice:
</i>&gt;<i> process_lrm_event: Operation ovndb_servers_monitor_0: ok
</i>&gt;<i> (node=node-1.domain.tld, call=185, rc=0, cib-update=88, confirmed=true)
</i>&gt;<i> &lt;29&gt;Nov 23 23:06:03 node-1 crmd[665251]:   notice: process_lrm_event:
</i>&gt;<i> Operation ovndb_servers_monitor_0: ok (node=node-1.domain.tld, call=185,
</i>&gt;<i> rc=0, cib-update=88, confirmed=true)
</i>&gt;<i> Nov 23 23:06:03 [665246] node-1.domain.tld        cib:     info:
</i>&gt;<i> cib_perform_op: Diff: --- 0.630.2 2
</i>&gt;<i> Nov 23 23:06:03 [665246] node-1.domain.tld        cib:     info:
</i>&gt;<i> cib_perform_op: Diff: +++ 0.630.3 (null)
</i>&gt;<i> Nov 23 23:06:03 [665246] node-1.domain.tld        cib:     info:
</i>&gt;<i> cib_perform_op: +  /cib:  @num_updates=3
</i>&gt;<i> Nov 23 23:06:03 [665246] node-1.domain.tld        cib:     info:
</i>&gt;<i> cib_perform_op: ++
</i>&gt;<i> /cib/status/node_state[@id=&#39;1&#39;]/transient_attributes[@id=&#39;1&#39;]/instance_attributes[@id=&#39;status-1&#39;]:
</i>&gt;<i> &lt;nvpair id=&quot;status-1-master-ovndb_servers&quot; name=&quot;master-ovndb_servers&quot;
</i>&gt;<i> value=&quot;5&quot;/&gt;
</i>&gt;<i> Nov 23 23:06:03 [665246] node-1.domain.tld        cib:     info:
</i>&gt;<i> cib_process_request: Completed cib_modify operation for section status: OK
</i>&gt;<i> (rc=0, origin=node-3.domain.tld/attrd/80, version=0.630.3)
</i>
Also depends if there&#39;s anything interesting after this point...

-- 
Jan (Poki)</pre></div></div></div>