Hi Keith

> So the master-ip is the virtual IP?

Yes.
If Master is switched, static IP is changed.
So it needs virtual IP or multiple instance_attributes.
http://clusterlabs.org/doc/en-US/Pacemaker/1.1/html/Pacemaker_Explained/_using_rules_to_control_resource_options.html

Regards,
Takatoshi MATSUO

2013/1/10 Keith Ouellette <keith.ouelle...@airgas.com>:
> Thank you again, So the master-ip is the virtual IP?  I was thinking that was 
> the IP address of the master database server. Thank you for this. I am going 
> to try this and see if I can get it to function.
>
> Thanks,
> Keith
>
>
> ________________________________________
> From: Takatoshi MATSUO [matsuo....@gmail.com]
> Sent: Wednesday, January 09, 2013 11:50 PM
> To: The Pacemaker cluster resource manager
> Subject: Re: [Pacemaker] Postresql streaming replication support
>
> Hi Keith
>
> Do you want to start "ClusterIP" on Slave ?
> It seems that ClusterIP is based on vip-slave of my sample configuration.
>
> If you would like to start it on Master, you need to customize "vip-master".
> And pgsql's master-ip parameter needs the IP of vip-master which
> combines with vip-rep.
>
> like this
> ----------------------------------------------------
> property \
>     no-quorum-policy="ignore" \
>     stonith-enabled="false" \
>     crmd-transition-delay="0s"
>
> rsc_defaults \
>     resource-stickiness="INFINITY" \
>     migration-threshold="1"
>
> ms msPostgresql pgsql \
>     meta \
>         master-max="1" \
>         master-node-max="1" \
>         clone-max="2" \
>         clone-node-max="1" \
>         notify="true"
>
> primitive ClusterIP ocf:heartbeat:IPaddr2 \
>     params \
>         ip="172.16.0.110" \
>         cidr_netmask="24" \
>     op start   timeout="60s" interval="0s"  on-fail="stop" \
>     op monitor timeout="60s" interval="10s" on-fail="restart" \
>     op stop    timeout="60s" interval="0s"  on-fail="block"
>
> primitive pgsql ocf:heartbeat:pgsql \
>     params \
>         pgctl="/opt/PostgreSQL/9.2/bin/pg_ctl" \
>         psql="/opt/PostgreSQL/9.2/bin/psql" \
>         pgdata="/opt/PostgreSQL/9.2/data/" \
>         start_opt="-p 5432" \
>         rep_mode="sync" \
>         node_list="test-db1 test-db2" \
>         restore_command="cp /opt/PostgreSQL/9.2/data/archive/%f %p" \
>         primary_conninfo_opt="keepalives_idle=60 keepalives_interval=5
> keepalives_count=5" \
>         master_ip="172.16.0.110" \
>         stop_escalate="0" \
>     op start   timeout="60s" interval="0s"  on-fail="restart" \
>     op monitor timeout="60s" interval="11s" on-fail="restart" \
>     op monitor timeout="60s" interval="10s"  on-fail="restart" role="Master" \
>     op promote timeout="60s" interval="0s"  on-fail="restart" \
>     op demote  timeout="60s" interval="0s"  on-fail="block" \
>     op stop    timeout="60s" interval="0s"  on-fail="block" \
>     op notify  timeout="60s" interval="0s"
>
> colocation rsc_colocation-1 inf: ClusterIP        msPostgresql:Master
>
> order rsc_order-1 0: msPostgresql:promote  ClusterIP:start   symmetrical=false
> order rsc_order-2 0: msPostgresql:demote   ClusterIP:stop    symmetrical=false
> ----------------------------------------------------
>
> Please see this to operate it.
> https://github.com/t-matsuo/resource-agents/wiki/Operation-examples-for-none-shared-wal-archives-environment
>
> --
> Takatoshi
>
> 2013/1/10 Keith Ouellette <keith.ouelle...@airgas.com>:
>> Thank you. I wish I could have seen the presentation. In my case, the two 
>> nodes are in two different US cities connected by a bridged VPN. I do not 
>> have the ability to have separate connection for pacemaker, replication and 
>> access.
>>
>>
>>
>> I tried to scale the configuration back to support one VIP, Here is the XML 
>> output of what I tried, but the service does not even come up.
>>
>> <resources>
>>       <primitive class="ocf" id="ClusterIP" provider="heartbeat" 
>> type="IPaddr2">
>>         <meta_attributes id="ClusterIP-meta_attributes">
>>           <nvpair id="ClusterIP-meta_attributes-target-role" 
>> name="target-role" value="Started"/>
>>         </meta_attributes>
>>         <operations id="ClusterIP-operations">
>>           <op id="ClusterIP-op-monitor-10s" interval="10s" name="monitor" 
>> timeout="20s"/>
>>         </operations>
>>         <instance_attributes id="ClusterIP-instance_attributes">
>>           <nvpair id="ClusterIP-instance_attributes-ip" name="ip" 
>> value="172.16.0.110"/>
>>           <nvpair id="ClusterIP-instance_attributes-cidr_netmask" 
>> name="cidr_netmask" value="24"/>
>>         </instance_attributes>
>>       </primitive>
>>       <primitive class="ocf" id="pgsql" provider="heartbeat" type="pgsql">
>>         <meta_attributes id="pgsql-meta_attributes">
>>           <nvpair id="pgsql-meta_attributes-target-role" name="target-role" 
>> value="Started"/>
>>         </meta_attributes>
>>         <operations id="pgsql-operations">
>>           <op id="pgsql-op-start-0" interval="0" name="start" 
>> on-fail="restart" timeout="120"/>
>>           <op id="pgsql-op-monitor-7" interval="7" name="monitor" 
>> on-fail="restart" timeout="60"/>
>>           <op id="pgsql-op-monitor-Master-60" interval="60" name="monitor" 
>> on-fail="restart" role="Master" timeout="30"/>
>>           <op id="pgsql-op-promote-0" interval="0" name="promote" 
>> on-fail="restart" timeout="60"/>
>>           <op id="pgsql-op-stop-0" interval="0" name="stop" on-fail="block" 
>> timeout="60"/>
>>           <op id="pgsql-op-demote-0" interval="0" name="demote" 
>> on-fail="block" timeout="60"/>
>>           <op id="pgsql-op-notify-0" interval="0" name="notify" 
>> timeout="60"/>
>>         </operations>
>>         <instance_attributes id="pgsql-instance_attributes">
>>           <nvpair id="pgsql-instance_attributes-pgctl" name="pgctl" 
>> value="/opt/PostgreSQL/9.2/bin/pg_ctl"/>
>>           <nvpair id="pgsql-instance_attributes-psql" name="psql" 
>> value="/opt/PostgreSQL/9.2/bin/psql"/>
>>           <nvpair id="pgsql-instance_attributes-pgdata" name="pgdata" 
>> value="/opt/PostgreSQL/9.2/data/"/>
>>           <nvpair id="pgsql-instance_attributes-start_opt" name="start_opt" 
>> value="-p 5432"/>
>>           <nvpair id="pgsql-instance_attributes-rep_mode" name="rep_mode" 
>> value="sync"/>
>>           <nvpair id="pgsql-instance_attributes-node_list" name="node_list" 
>> value="test-db1 test-db2"/>
>>           <nvpair id="pgsql-instance_attributes-restore_command" 
>> name="restore_command" value="cp /opt/PostgreSQL/9.2/data/archive/%f %p"/>
>>           <nvpair id="pgsql-instance_attributes-primary_conninfo_opt" 
>> name="primary_conninfo_opt" value="keepalives_idle=60 keepalives_interval=5 
>> keepalives_count=5"/>
>>           <nvpair id="pgsql-instance_attributes-master_ip" name="master_ip" 
>> value="172.16.0.111"/>
>>           <nvpair id="pgsql-instance_attributes-stop_escalate" 
>> name="stop_escalate" value="0"/>
>>         </instance_attributes>
>>       </primitive>
>>     </resources>
>> <constraints>
>>       <rsc_location id="rsc-location-1" rsc="ClusterIP">
>>         <rule id="rsc-location-1-rule" score="200">
>>           <expression attribute="pgsql-status" 
>> id="rsc-location-1-rule-pgsql-status" operation="eq" value="HS:sync"/>
>>         </rule>
>>         <rule id="rsc-location-1-rule-0" score="100">
>>           <expression attribute="pgsql-status" 
>> id="rsc-location-1-rule-0-pgsql-status" operation="eq" value="PRI"/>
>>         </rule>
>>         <rule id="rsc-location-1-rule-1" score="-INFINITY">
>>           <expression attribute="pgsql-status" 
>> id="rsc-location-1-rule-1-pgsql-status" operation="not_defined"/>
>>         </rule>
>>         <rule boolean-op="and" id="rsc-location-1-rule-2" score="-INFINITY">
>>           <expression attribute="pgsql-status" 
>> id="rsc-location-1-rule-2-pgsql-status" operation="ne" value="HS:sync"/>
>>           <expression attribute="pgsql-status" 
>> id="rsc-location-1-rule-2-pgsql-status-0" operation="ne" value="PRI"/>
>>         </rule>
>>       </rsc_location>
>>       <rsc_location id="rsc-location-2" rsc="pgsql">
>>         <rule id="rsc-location-2-rule" role="Master" score="200">
>>           <expression attribute="#uname" id="rsc-location-2-rule-.uname" 
>> operation="eq" value="test-db1"/>
>>         </rule>
>>         <rule id="rsc-location-2-rule-0" role="Master" score="100">
>>           <expression attribute="#uname" id="rsc-location-2-rule-0-.uname" 
>> operation="eq" value="test-db2"/>
>>         </rule>
>>         <rule id="rsc-location-2-rule-1" role="Master" score="-INFINITY">
>>           <expression attribute="fail-count-ClusterIP" 
>> id="rsc-location-2-rule-1-fail-count-ClusterIP" operation="defined"/>
>>         </rule>
>>         <rule boolean-op="or" id="rsc-location-2-rule-2" score="-INFINITY">
>>           <expression attribute="default_ping_set" 
>> id="rsc-location-2-rule-2-default_ping_set" operation="not_defined"/>
>>           <expression attribute="default_ping_set" 
>> id="rsc-location-2-rule-2-default_ping_set-0" operation="lt" value="100"/>
>>         </rule>
>>       </rsc_location>
>>       <rsc_colocation id="rsc_colo-1" rsc="pgsql" score="INFINITY" 
>> with-rsc="ClusterIP"/>
>>       <rsc_order first="ClusterIP" first-action="start" id="rsc_order_1" 
>> symmetrical="false" then="pgsql" then-action="promote"/>
>>     </constraints>
>> Any ideas?
>>
>> Thanks,
>> Keith
>>
>>
>> ________________________________________
>> From: Takatoshi MATSUO [matsuo....@gmail.com]
>> Sent: Wednesday, January 09, 2013 8:23 PM
>> To: The Pacemaker cluster resource manager
>> Subject: Re: [Pacemaker] Postresql streaming replication support
>>
>> Hi Keith
>>
>> I don't write detailed documentation.
>> But I spoke about it using this slide.
>>
>>    http://linux-ha.sourceforge.jp/wp/archives/3404
>>
>> Did you read it?
>>
>> I translated it into English.
>> Please click "English version is here : PG-study" to download it.
>> (Sorry for bad translation)
>>
>>
>> Regards,
>> Takatoshi MATSUO
>>
>>
>> 2013/1/10 Keith Ouellette <keith.ouelle...@airgas.com>
>>>
>>> Jesse,
>>>
>>>
>>>
>>>
>>>
>>>    Thank you for the quick response. Actually yes, the example given at the 
>>> link below shows several connections between the two (cross-overs).  We 
>>> only have one connection between the two nodes with a bridged VPN.
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>> The example has an S-LAN, D-LAN and an IC-LAN. I only have one LAN 
>>> available to me with a bridge VPN between the two routers. I tried to 
>>> skinny the configuration to a single virtual IP primitive called 
>>> "ClusterIP", but I think there are some other dependancies in the example 
>>> that I am not seeing as it did not work, meaning the resources did not 
>>> start.  Is there another place I can go that may provide more detailed 
>>> documentation that may help me with my configuration?
>>>
>>>
>>>
>>>
>>>
>>> Keith
>>>
>>> ________________________________
>>> From: Jesse Hathaway [jesse.hatha...@getbraintree.com]
>>> Sent: Wednesday, January 09, 2013 2:09 PM
>>> To: The Pacemaker cluster resource manager; Jesse Hathaway
>>> Subject: Re: [Pacemaker] Postresql streaming replication support
>>>
>>> On Wed, Jan 9, 2013 at 12:56 PM, Keith Ouellette 
>>> <keith.ouelle...@airgas.com> wrote:
>>>>
>>>>   Now I am trying to get that integrated with pacemaker. In my searches, I 
>>>> see that pacemaker with DRBD seems to be the prevelant implementation an 
>>>> most documentation was written around that. However, due to our network 
>>>> conditions, I am looking for information on doing this with WAL. I did 
>>>> find a resource agent that was wirtten for what I am doing 
>>>> (https://github.com/t-matsuo/resource-agents/wiki/Resource-Agent-for-PostgreSQL-9.1-streaming-replication).
>>>>  The issue is the example if complex with the explanation written only 
>>>> toward that example. Is there another place that I can get documentation  
>>>> on this resource agent? Is there another way that this could be 
>>>> accmoplished that someone has tried?
>>>
>>> Keith we are using the above resource agent in production with streaming 
>>> replication. Do you have any specific questions about its usage?
>>>
>>> --
>>> Jesse Hathaway, Systems Engineer
>>> Braintree
>>> 917-418-8423
>>>
>>> _______________________________________________
>>> Pacemaker mailing list: Pacemaker@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
>>>
>>
>> _______________________________________________
>> Pacemaker mailing list: Pacemaker@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
>> _______________________________________________
>> Pacemaker mailing list: Pacemaker@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
>
> _______________________________________________
> Pacemaker mailing list: Pacemaker@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
> _______________________________________________
> Pacemaker mailing list: Pacemaker@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

_______________________________________________
Pacemaker mailing list: Pacemaker@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

Reply via email to