Hi, On Fri, May 07, 2010 at 11:54:27AM +0200, JECH Ladislav wrote: > Hi, > > I finally make Pacemaker up and running on CentOS 5.4. Currently using > Heartbeat, but I want to switch to OpenAIS(Corosync). There were some > problems related to Python and XML, strace crm still try to open some > files which don't exist, I also did some symbolic links because of bad > paths. I will try to sumarize these problems in another thread. But now > both nodes of my Active/Passive cluster with shared storage running > OCFS2 as filesystem are online using following configuration. > > [r...@tidevfnkv1 python2.4]# cat /var/lib/heartbeat/crm/cib.xml > <cib validate-with="pacemaker-1.0" crm_feature_set="3.0.1" > have-quorum="1" dc-uuid="e7cf0526-5304-45f1-b9ee-0ee9fe69c834" > admin_epoch="0" epoch="29" num_updates="0" cib-last-written="Fri May 7 > 05:05:28 2010"> > <configuration> > <crm_config> > <cluster_property_set id="cib-bootstrap-options"> > <nvpair id="cib-bootstrap-options-dc-version" name="dc-version" > value="1.0.8-9881a7350d6182bae9e8e557cf20a3cc5dac3ee7"/> > <nvpair id="cib-bootstrap-options-cluster-infrastructure" > name="cluster-infrastructure" value="Heartbeat"/> > <nvpair id="cib-bootstrap-options-stonith-enabled" > name="stonith-enabled" value="false"/> > </cluster_property_set> > </crm_config> > <nodes> > <node type="normal" uname="tidevfnkv2" > id="e7cf0526-5304-45f1-b9ee-0ee9fe69c834"> > <instance_attributes > id="nodes-e7cf0526-5304-45f1-b9ee-0ee9fe69c834"> > <nvpair name="standby" > id="nodes-e7cf0526-5304-45f1-b9ee-0ee9fe69c834-standby" value="on"/> > </instance_attributes> > </node> > <node type="normal" uname="tidevfnkv1" > id="db65bdf6-ecd2-4bcb-9ef5-451681ec2906"> > <instance_attributes > id="nodes-db65bdf6-ecd2-4bcb-9ef5-451681ec2906"> > <nvpair name="standby" > id="nodes-db65bdf6-ecd2-4bcb-9ef5-451681ec2906-standby" value="off"/> > </instance_attributes> > </node> > </nodes> > <resources> > <group id="ip_fnkv_cluster"> > <primitive class="ocf" id="failover-ip" provider="heartbeat" > type="IPaddr"> > <instance_attributes id="failover-ip-instance_attributes"> > <nvpair id="failover-ip-instance_attributes-ip" name="ip" > value="172.28.140.113"/> > </instance_attributes> > <operations> > <op id="failover-ip-monitor-10s" interval="10s" > name="monitor"/> > </operations> > </primitive> > <primitive class="lsb" id="failover-apache" type="httpd"> > <operations> > <op id="failover-apache-monitor-15s" interval="15s" > name="monitor"/> > </operations> > </primitive> > </group> > <primitive class="ocf" id="pingd" provider="pacemaker" > type="pingd"> > <instance_attributes id="pingd-instance_attributes"> > <nvpair id="pingd-instance_attributes-host_list" > name="host_list" value="172.28.140.10"/> > <nvpair id="pingd-instance_attributes-multiplier" > name="multiplier" value="100"/> > </instance_attributes> > <operations> > <op id="pingd-monitor-15s" interval="15s" name="monitor" > timeout="5s"/> > </operations> > </primitive> > <primitive class="ocf" id="failover-oracle" provider="heartbeat" > type="oracle"> > <instance_attributes id="failover-oracle-instance_attributes"> > <nvpair id="failover-oracle-instance_attributes-sid" > name="sid" value="XE"/> > <nvpair id="failover-oracle-instance_attributes-home" > name="home" > value="/usr/lib/oracle/xe/app/oracle/product/10.2.0/server"/> > <nvpair id="failover-oracle-instance_attributes-user" > name="user" value="oracle"/> > </instance_attributes> > <operations> > <op id="failover-oracle-monitor-5s" interval="5s" > name="monitor" on-fail="restart" timeout="30s"/> > </operations> > </primitive> > </resources> > <constraints> > <rsc_location id="ip_fnkv_cluster_on_connected_node" > rsc="ip_fnkv_cluster"> > <rule boolean-op="or" > id="ip_fnkv_cluster_on_connected_node-rule" score="-INFINITY"> > <expression attribute="pingd" > id="ip_fnkv_cluster_on_connected_node-expression" > operation="not_defined"/> > <expression attribute="pind" > id="ip_fnkv_cluster_on_connected_node-expression-0" operation="lte" > value="0"/> > </rule> > </rsc_location> > </constraints> > <op_defaults/> > <rsc_defaults/> > </configuration>
Better use crm configure show to print the configuration. > Ok, output of crm_mon is following: > ============ > Last updated: Fri May 7 05:27:20 2010 > Stack: Heartbeat > Current DC: tidevfnkv2 (e7cf0526-5304-45f1-b9ee-0ee9fe69c834) - > partition with quorum > Version: 1.0.8-9881a7350d6182bae9e8e557cf20a3cc5dac3ee7 > 2 Nodes configured, unknown expected votes > 3 Resources configured. > ============ > > Online: [ tidevfnkv2 tidevfnkv1 ] > > Resource Group: ip_fnkv_cluster > failover-ip (ocf::heartbeat:IPaddr): Started > tidevfnkv2 > failover-apache (lsb:httpd): Started tidevfnkv2 > pingd (ocf::pacemaker:pingd): Started tidevfnkv1 > > Failed actions: > failover-oracle_start_0 (node=tidevfnkv2, call=18, rc=1, > status=complete): unknown error > failover-oracle_monitor_5000 (node=tidevfnkv1, call=42, rc=7, > status=complete): not running > failover-oracle_start_0 (node=tidevfnkv1, call=44, rc=1, > status=complete): unknown error > > And there is problem with starting up the Oracle Database. You should take a look at the logs and find out why the start action failed. > I have to say > I selected free Express edition, It was not my decision to select this > type of db, but this is reality. It seems like the resource agent > related to oracle is not ready to use with Express edition, but only > with full version of database. There is also second resource agent for > oracle listener. > > But, OraDB Express is installed with built-in scripts to start and stop > db. Just like any other oracle version I guess. > Each script start/stop both, the listener and instance. > I will provide here code of both scripts> > > startdb.sh> > #!/bin/bash > # > # svaggu 09/28/05 - Creation > # svaggu 11/09/05 - dba groupd check is added > # > > xsetroot -cursor_name watch > case $PATH in > "") PATH=/bin:/usr/bin:/sbin:/etc > export PATH ;; > esac > > SAVE_LLP=$LD_LIBRARY_PATH > > ORACLE_HOME=/usr/lib/oracle/xe/app/oracle/product/10.2.0/server > ORACLE_SID=XE > LSNR=$ORACLE_HOME/bin/lsnrctl > SQLPLUS=$ORACLE_HOME/bin/sqlplus > export ORACLE_HOME > export ORACLE_SID > LOG="$ORACLE_HOME_LISTNER/listener.log" > user=`/usr/bin/whoami` > group=`/usr/bin/groups $user | grep dba` > if test -z "$group" > then > xterm -T "Warning" -n "Warning" -hold -e "echo Operation failed. > $user is not a member of \'dba\' group." > else > # Starting Oracle Database 10g Express Edition instance and Listener > $SQLPLUS -s /nolog @$ORACLE_HOME/config/scripts/startdb.sql > > /dev/null 2>&1 > if [ ! `ps -ef | grep tns | cut -f1 -d" " | grep -q oracle` ] > then > $LSNR start > /dev/null 2>&1 > else > echo "" > fi > fi > xsetroot -cursor_name left_ptr > > startdb.sql> > connect / as sysdba > startup > exit > > stopdb.sh> > #!/bin/bash > # > # svaggu 09/28/05 - Creation > # svaggu 11/09/05 - dba groupd check is added > # > > xsetroot -cursor_name watch > > case $PATH in > "") PATH=/bin:/usr/bin:/sbin:/etc > export PATH ;; > esac > > SAVE_LLP=$LD_LIBRARY_PATH > > ORACLE_HOME=/usr/lib/oracle/xe/app/oracle/product/10.2.0/server > ORACLE_SID=XE > SQLPLUS=$ORACLE_HOME/bin/sqlplus > export ORACLE_HOME > export ORACLE_SID > user=`/usr/bin/whoami` > group=`/usr/bin/groups $user | grep dba` > if test -z "$group" > then > xterm -T "Warning" -n "Warning" -hold -e "echo Operation failed. > $user is not a member of \'dba\' group." > else > # Stop Oracle Database 10g Express Edition instance > $SQLPLUS -s /nolog @$ORACLE_HOME/config/scripts/stopdb.sql > > /dev/null 2>&1 > fi > > xsetroot -cursor_name left_ptr > > stopdb.sql> > connect / as sysdba > shutdown immediate > exit > > Ok, then my resource agent is located at > /usr/lib/ocf/resource.d/heartbeat/oracle, and here is what I want to do. > I want to create my own resource agent, let me name it "oraclexe", and > here are my questions> > 1.) Is it possible to create my own resource agent "oraclexe"(which will > start both listener and db instance) only with creating new shell file > in /usr/lib/ocf/resource.d/heartbeat/ directory? Not just like that. The script has to follow the OCF standard. > 2.) Is there a way to debug/trace resource agents in case the do not > work in expected way? Yes, you can use ocf-tester. Or run the script by hand: OCF_RESKEY_sid=XE /usr/lib/ocf/resource.d/heartbeat/oracle start > 3.) Do you have another aproach or solution to my issue? I'd strongly suggest to use the existing oracle RA. Thanks, Dejan > Thank you very much and anyway I have to say, that I went deeper into > documentation of Pacemaker, Corosync, OpenAIS, ClusterGlue, CRM and I > thing this is very good stuff. Thank you for your hard work. > > Best regards, > > Ladislav Jech > > _______________________________________________ > 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 _______________________________________________ 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