This project has been on my bucket list for a long time with a higher priority than say visiting Japan :)
For the last several days, I've been knee deep in XCP, OCFS2, Samba, CTDB and Pacemaker; trying to get all these technologies to coalesce into one solution, and I think I'm at the last mile. 
I finally have two debian squeeze VMs (BIM AND BAM) on XCP 1.0 that are running Samba 3.6 in an HA configuration! But I have one small problem.. when I connect to a share on the cluster IP (pacemaker IPaddr2 resource), I get an access denied and an error in log.ctdb:

 Could not add client IP 172.24.100.202. This is not a public address.


Here is my smb.conf on pastebin:

http://pastebin.com/raw.php?i=Jdks4UmK

Here is my crm configure show:

node BAM 
node BIM
primitive ctdb ocf:heartbeat:CTDB \
        params ctdb_recovery_lock="/mnt/ctdb.lock" ctdb_manages_samba="yes" ctdb_manages_winbind="yes" ctdb_start_as_disabled="no" \
        op monitor interval="10" timeout="30" \
        op start interval="0" timeout="90" \
        op stop interval="0" timeout="100"
primitive dlm ocf:pacemaker:controld \
        op monitor interval="120s"
primitive ip ocf:heartbeat:IPaddr2 \
        params ip="172.24.100.202" clusterip_hash="sourceip-sourceport" \
        op monitor interval="60s"
primitive o2cb ocf:pacemaker:o2cb \
        op monitor interval="120s"
primitive sharedFS ocf:heartbeat:Filesystem \
        params options="acl,localalloc=16,atime_quantum=86400" device="/dev/xvdc1" directory="/mnt" fstype="ocfs2" \
        op start interval="0" timeout="60" \
        op stop interval="0" timeout="60"
clone ctdb-clone ctdb \
        meta globally-unique="false" interleave="true" target-role="Started"
clone dlm-clone dlm \
        meta globally-unique="false" interleave="true"
clone ip-clone ip \
        meta globally-unique="true" target-role="Started"
clone o2cb-clone o2cb \
        meta globally-unique="false" interleave="true" target-role="Started"
clone sharedFS-clone sharedFS \
        meta globally-unique="false" interleave="true" target-role="Started"
colocation ip-with-ctdb inf: ip-clone ctdb-clone
colocation o2cb-with-dlm inf: o2cb-clone dlm-clone
order start-ctdb-after-sharedFS inf: sharedFS-clone ctdb-clone
order start-ip-after-ctdb inf: ctdb-clone ip-clone
order start-o2cb-after-dlm inf: dlm-clone o2cb-clone
order start-sharedFS-after-o2cb inf: o2cb-clone sharedFS-clone
property $id="cib-bootstrap-options" \
        no-quorum-policy="ignore" \
        stonith-enabled="false" \
        dc-version="1.1.6-9971ebba4494012a93c03b40a2c58ec0eb60f50c" \
        cluster-infrastructure="openais" \
        expected-quorum-votes="2" \
        last-lrm-refresh="1333632988"

Here is the result of crm resource show:

 Clone Set: dlm-clone [dlm]
     Started: [ BIM BAM ]
 Clone Set: o2cb-clone [o2cb]
     Started: [ BIM BAM ]
 Clone Set: sharedFS-clone [sharedFS]
     Started: [ BAM BIM ]
 Clone Set: ctdb-clone [ctdb]
     Started: [ BAM BIM ]
 Clone Set: ip-clone [ip] (unique)
     ip:0       (ocf::heartbeat:IPaddr2) Started
     ip:1       (ocf::heartbeat:IPaddr2) Started


Here is the result of ctdb status:


Number of nodes:2
pnn:0 172.24.100.201   OK
pnn:1 172.24.100.200   OK (THIS NODE)
Generation:927649812
Size:2
hash:0 lmaster:0
hash:1 lmaster:1
Recovery mode:NORMAL (0)
Recovery master:0


When I set public_addresses in /etc/ctdb - that sends the system into a tail spin:

2012/04/05 09:20:35.888882 [recoverd:17432]: We are still serving a public address '172.24.100.202' that we should not be serving.
2012/04/05 09:20:35.888945 [recoverd:17432]: Trigger takeoverrun
2012/04/05 09:20:35.892438 [17356]: server/ctdb_takeover.c:813 release_ip of IP 172.24.100.202 is known to the kernel, but we have no interface assigned, has someone manually configured it? Ignore for now.

Any thoughts? I'm so close (I think)!
