[Pacemaker] Question about multiple instance_attributes

Kazunori INOUE kazunori.inoue3 at gmail.com
Tue Apr 14 09:54:07 UTC 2015


2015-04-13 19:53 GMT+09:00 Andrei Borzenkov <arvidjaar at gmail.com>:
> On Mon, Apr 13, 2015 at 12:32 PM, Kazunori INOUE
> <kazunori.inoue3 at gmail.com> wrote:
>> 2015-04-10 15:09 GMT+09:00 Andrei Borzenkov <arvidjaar at gmail.com>:
>>> On Fri, Apr 10, 2015 at 8:22 AM, Kazunori INOUE
>>> <kazunori.inoue3 at gmail.com> wrote:
>>>> Hi,
>>>>
>>>> I defined multiple instance_attributes [*].
>>>>  * http://clusterlabs.org/doc/en-US/Pacemaker/1.1-pcs/html/Pacemaker_Explained/_using_rules_to_control_resource_options.html
>>>> Although it expected that start_opt="-p 5441 ..." would be used on vm1
>>>> and vm2, it wasn't so.
>>>>
>>>> # pacemakerd -F
>>>> Pacemaker 1.1.12 (Build: 3e93bc1)
>>>>
>>>> # cibadmin -Q
>>>>     <primitive id="prmPostgreSQLDB" class="ocf" provider="heartbeat"
>>>> type="pgsql">
>>>>       <instance_attributes id="prmPostgreSQLDB-instance_attributes">
>>>>         <rule score="3" boolean-op="or"
>>>> id="prmPostgreSQLDB-instance_attributes-rule">
>>>>           <expression attribute="#uname" operation="eq" value="vm1"
>>>> id="prmPostgreSQLDB-instance_attributes-rule-expression"/>
>>>>           <expression attribute="#uname" operation="eq" value="vm2"
>>>> id="prmPostgreSQLDB-instance_attributes-rule-expression-0"/>
>>>>         </rule>
>>>>         <nvpair name="start_opt" value="-p 5441 -h 192.168.201.140"
>>>> id="prmPostgreSQLDB-instance_attributes-start_opt"/>
>>>>         <nvpair name="pgport" value="5441"
>>>> id="prmPostgreSQLDB-instance_attributes-pgport"/>
>>>>       </instance_attributes>
>>>>       <instance_attributes id="prmPostgreSQLDB-instance_attributes-0">
>>>>         <nvpair name="start_opt" value="-p 5449 -h 192.168.201.140"
>>>> id="prmPostgreSQLDB-instance_attributes-0-start_opt"/>
>>>>         <nvpair name="pgport" value="5449"
>>>> id="prmPostgreSQLDB-instance_attributes-0-pgport"/>
>>>>       (snip)
>>>>
>>>> # hostname
>>>> vm1
>>>> # ps -ax | grep postgres
>>>> 28591 ?    S    0:00 /usr/pgsql-9.4/bin/postgres (snip) -p 5449 -h
>>>> 192.168.201.140
>>>>
>>>> Is it a design that boolean-op of "rule" doesn't function?
>>>>
>>>
>>> I suspect that your second rule is simply unconditionally applied
>>> because it does not have any rules to evaluate.
>>>
>> That is, is 'boolean-op="or"' invalid?
>>
>
> That's not what I said. Your second rule does not have any expressions
> (sorry, I meant that) so it is always applied unconditionally.
>

I had mistaken the position which writes score="3". I obtained the
result expected by the next config.

    <primitive id="prmPostgreSQLDB" class="ocf" provider="heartbeat"
type="pgsql">
      <instance_attributes score="3" id="prmPostgreSQLDB-instance_attributes">
        <rule score="INFINITY" boolean-op="or"
id="prmPostgreSQLDB-instance_attributes-rule">
          <expression attribute="#uname" operation="eq" value="vm1"
id="prmPostgreSQLDB-instance_attributes-rule-expression"/>
          <expression attribute="#uname" operation="eq" value="vm2"
id="prmPostgreSQLDB-instance_attributes-rule-expression-0"/>
        </rule>
        <nvpair name="start_opt" value="-p 5441 -h 192.168.201.140"
id="prmPostgreSQLDB-instance_attributes-start_opt"/>
        <nvpair name="pgport" value="5441"
id="prmPostgreSQLDB-instance_attributes-pgport"/>
      </instance_attributes>
      <instance_attributes id="prmPostgreSQLDB-instance_attributes-0">
        <nvpair name="start_opt" value="-p 5449 -h 192.168.201.140"
id="prmPostgreSQLDB-instance_attributes-0-start_opt"/>

Thanks.

> _______________________________________________
> Pacemaker mailing list: Pacemaker at oss.clusterlabs.org
> http://oss.clusterlabs.org/mailman/listinfo/pacemaker
>
> Project Home: http://www.clusterlabs.org
> Getting started: http://www.clusterlabs.org/doc/Cluster_from_Scratch.pdf
> Bugs: http://bugs.clusterlabs.org




More information about the Pacemaker mailing list