[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 3.0.12.1. 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
3.0.12.1: 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
Cheers,
--
cc
More information about the Linux-cluster
mailing list