[Pacemaker] Two-node cluster, able to function with only a single-node?

Reid, Mike MBReid at thepei.com
Mon Dec 12 17:40:58 EST 2011


I've been doing a lot of testing while I've been learning Pacemaker/Heartbeat, DRBD, OCFS2, etc (Nginx, PHP-FPM, Apache…)  Below I've attached my working CIB, but I worry I am missing something obvious (or perhaps going about it incorrectly altogether): It seems I cannot start the cluster as a single node, and sometimes if the other node is having issues, the functioning node does not mount the file system, etc….…until I've set the other node to "Standby", restart, etc. Shouldn't I be able to run on a single node with HA? I presume I've not configured something correctly, possibly I'm using "clone" incorrectly based on my needs?

Basically, for this two-node web server cluster, I'm running a OCFS2 Primary/Primary DRBD, with Nginx + PHP-FPM / Apache. I need a little help confirming if the CIB configuration below is the appropriate way to handle this: As long as one of the node's DRBD is UpToDate (Primary), then ideally I'd be able to mount the OCFS2 Filesystem (resFS), start PHP-FPM (resPHP), start NGINX (resPROXY), and then Apache (resAPACHE) and handle web traffic. Don't worry, not storing any access logs or sessions in DRBD, I'm using local disk + memcached for that.

Is my usage of clone / order correct here, or is that perhaps what's blocking me from running on a single node more reliably? …I've been able to do it by going from a working cluster to setting one node the "standby" or simulating a power fault, however I haven't been able to simply start a single node and have work as described above.

Software:
OS: Ubuntu 10.10 (Maverick) / Kernel: 2.6.35
Corosync 1.2.1
DRBD 8.3.10
OCFS2: v1.5.0


Pacemakr config / CIB:

node MACHINE1 \
        attributes standby="off"
node MACHINE2 \
        attributes standby="off"
primitive resAPACHE ocf:heartbeat:apache \
        params configfile="/usr/local/apache/conf/httpd.conf" \
        op monitor interval="1min" \
        op start interval="0" timeout="40" \
        op stop interval="0" timeout="60"
primitive resDLM ocf:pacemaker:controld \
        op monitor interval="120s"
primitive resDRBD ocf:linbit:drbd \
        params drbd_resource="repdata" \
        operations $id="resDRBD-operations" \
        op monitor interval="20s" role="Master" timeout="120s" \
        op monitor interval="30s" role="Slave" timeout="120s"
primitive resFS ocf:heartbeat:Filesystem \
        params device="/dev/drbd/by-res/repdata" directory="/data" fstype="ocfs2" \
        op monitor interval="120s"
primitive resO2CB ocf:pacemaker:o2cb \
        op monitor interval="120s"
primitive resPHP ocf:heartbeat:anything \
        params binfile="/usr/local/sbin/php-fpm" cmdline_options="--fpm-config /usr/local/etc/php-fpm.conf" pidfile="/var/run/php-fpm.pid" \
        op start interval="0" timeout="20" \
        op stop interval="0" timeout="30" \
        op monitor interval="20" \
        meta target-role="Started"
primitive resPROXY ocf:heartbeat:nginx \
        params conffile="/etc/nginx/nginx.conf" \
        op monitor interval="60s" \
        op start interval="0" timeout="40" \
        op stop interval="0" timeout="60"
primitive resST-NULL stonith:null \
        params hostlist="MACHINE1 MACHINE2"
ms msDRBD resDRBD \
        meta resource-stickines="100" notify="true" master-max="2" interleave="true"
clone cloneDLM resDLM \
        meta globally-unique="false" interleave="true"
clone cloneFS resFS \
        meta interleave="true" ordered="true" target-role="Started"
clone cloneHTTPD resAPACHE \
        meta globally-unique="false" interleave="true" ordered="true" target-role="Started"
clone cloneO2CB resO2CB \
        meta globally-unique="false" interleave="true"
clone clonePHP resPHP \
        meta globally-unique="false" interleave="true" ordered="true" target-role="Started"
clone clonePROXY resPROXY \
        meta globally-unique="false" interleave="true" ordered="true" target-role="Started"
clone fencing resST-NULL
colocation colDLMDRBD inf: cloneDLM msDRBD:Master
colocation colFSO2CB inf: cloneFS cloneO2CB
colocation colO2CBDLM inf: cloneO2CB cloneDLM
order ordDLMO2CB inf: cloneDLM cloneO2CB
order ordDRBDDLM inf: msDRBD:promote cloneDLM
order ordO2CBFS inf: cloneO2CB cloneFS
order ordPHP inf: cloneFS clonePHP
order ordPROXY inf: clonePHP clonePROXY
order ordWEB inf: cloneFS cloneHTTPD
property $id="cib-bootstrap-options" \
        dc-version="1.0.9-unknown" \
        cluster-infrastructure="openais" \
        stonith-enabled="true" \
        no-quorum-policy="ignore" \
        expected-quorum-votes="2"




NOTE: Please disregard stonith:null usage in this example…


Any feedback or suggestions would be highly appreciated!
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.clusterlabs.org/pipermail/pacemaker/attachments/20111212/5061993c/attachment-0002.html>


More information about the Pacemaker mailing list