[Linux-cluster] CMAN across different datacenters

Székelyi Szabolcs szekelyi at niif.hu
Sun Jan 1 23:24:32 UTC 2012

On 2012. January 1. 17:04:54 Michel Nadeau wrote:
> I upgraded to Corosync 1.4.2 and cman 6.2.0, but when I add this to my
> cluster.conf :
> <cman expected_votes="1" two_node="1" *transport="udpu"*/>
> I get (when starting cman) :
>    Starting cman... Relax-NG validity error : Extra element cman in
> interleave
> tempfile:20: element cman: Relax-NG validity error : Element cluster failed
> to validate content
> Configuration fails to validate
> Any idea why?

I've fiddled around quite a lot with this. I wanted to keep multicasting, but 
change the TTL to more than 1 so that the nodes' packets can reach each other. 
It turned out that Corosync 1.4.1 that's included in Debian Backports, 
supports this feature, but I've figured out that this is not enough since you 
need a new cman to communicate the config to Corosync. Debian has cman 
3.0.12 which is unable to do this. The situation was strange, because it 
looked like I'm using the same version than people on this list, but this 
feature works for them but not for me. After further research, it turned out 
that there are two versions of 3.0.12 out there, 3.0.12 and Debian 
has the older one, which doesn't have this feature. The latter one came out 
long after the old one, and according to changelogs, has significant 
enhancements including the one in question. Looking at 
https://fedorahosted.org/releases/c/l/cluster/, here are the version numbers 
ordered by release dates:

3.0.11: 21-Apr-2010
3.0.12: 11-May-2010
3.0.13: 08-Jun-2010
3.0.14: 30-Jul-2010
3.0.15: 02-Sep-2010
3.0.16: 02-Sep-2010
3.0.17: 06-Oct-2010
3.1.0: 02-Dec-2010
3.1.1: 08-Mar-2011 27-May-2011
3.1.2: 16-Jun-2011

Wow, it looks like the cman guys have a strange idea on versioning... The size 
of changelogs is also very interesting.

Anyway, since Debian doesn't have the "new" 3.0.12, I worked around this 
problem by using multicast and some iptables magic to achieve what you need:

iptables -t mangle -A OUTPUT -d <multicast_address> -j TTL --ttl-set 8


More information about the Linux-cluster mailing list