Discussion:
Protocol compatibility of DLM/Corosync across versions
(too old to reply)
Jan Friesse
2016-12-20 10:21:35 UTC
Permalink
Hi (again),
Another question I have regarding DLM and Corosync (because Corosync is
required to use DLM): should I expect compatibility across versions?
I will add just Corosync information.

Corosync with same major version is compatible (ie 2.3.0 works with
2.4.0) but if major version differs it is incompatible (so no luck with
1.4.2 vs 2.3.0). In 3.x we plan to (finally) to implement protocol
(instead of sending 64-bit aligned C structures as it is now) so
backwards/forwards compatibility should improve (but it also means that
3.x is going to be incompatible with 2.x and 1.x).

For distribution versions. At least Fedora/RHEL has no extra patches for
Corosync (eventho we may backport some fixes/features but never breaks
compatibility with upstream). I believe most of other distro works
similar way. So as long as you keep Corosync versions close, Corosync works.
I did a quick test between distributions running different kernels (CentOS
6, Centos7 and Ubuntu 14) but rather close versions of Corosync, and that
test worked, but I am not sure if that was just luck. ;)
Cheers,
Jean-Marc
--
Linux-cluster mailing list
Linux-***@redhat.com
https://www.redhat.com/mailman/listinfo/linux-cluster
Jean-Marc Saffroy
2016-12-20 01:56:51 UTC
Permalink
Hi (again),
Another question I have regarding DLM and Corosync (because Corosync is
required to use DLM): should I expect compatibility across versions?
I did a quick test between distributions running different kernels (CentOS
6, Centos7 and Ubuntu 14) but rather close versions of Corosync, and that
test worked, but I am not sure if that was just luck. ;)
I can only speak for the dlm part of that. Between different
distributions, I'd call it luck :)
Ah, so that could be a serious problem for me. I hoped to be able to use
dlm across distributions without having to qualify each possible
combination...
Within the context of one distribution things shouldn't break if the
distribution is doing it's job.
Does that mean that, for example, I could expect dlm instances in RHEL6
and RHEL7 kernels to work together?
Upstream, with no distribution context, I'm certainly aware of when
compatibility breaks between dlm_controld and corosync and between
different dlm_controld versions on nodes. I try to avoid it, but there
are unpredictable reasons that it can break.
How could instances of dlm_controld interact badly? I thought they were
just glue between dlm and corosync, and never directly talk on the
network. Do they have network-visible side effects on dlm/corosync?

In the end, I need to work across distributions and their kernels, but I
could build from source a specific version of corosync and (the userland
part of) dlm. I expect that the kernel interface to dlm is stable
(right?), so the biggest risk would be incompatibilities in the dlm
protocol on the network. Is this protocol stable? With git I see that
DLM_HEADER_MAJOR/MINOR macros changed very rarely in recent years but I
can't tell if this is a good indicator.


Cheers,
JM
--
***@gmail.com
--
Linux-cluster mailing list
Linux-***@redhat.com
https://www.redhat.com/mailman/listinfo/linux-cluster
David Teigland
2016-12-20 15:13:54 UTC
Permalink
Post by Jean-Marc Saffroy
Ah, so that could be a serious problem for me. I hoped to be able to use
dlm across distributions without having to qualify each possible
combination...
Within the context of one distribution things shouldn't break if the
distribution is doing it's job.
Does that mean that, for example, I could expect dlm instances in RHEL6
and RHEL7 kernels to work together?
I'm not sure you're talking to the right person any more. In the history
of dlm in RHEL, the userland bits have usually only worked together within
one major release.
Post by Jean-Marc Saffroy
How could instances of dlm_controld interact badly? I thought they were
just glue between dlm and corosync, and never directly talk on the
network. Do they have network-visible side effects on dlm/corosync?
dlm_controld instances communicate using a protocol that could change.
This is for coordinating lockspace recovery, not performing locking.
Post by Jean-Marc Saffroy
In the end, I need to work across distributions and their kernels, but I
could build from source a specific version of corosync and (the userland
part of) dlm. I expect that the kernel interface to dlm is stable
(right?),
right
Post by Jean-Marc Saffroy
so the biggest risk would be incompatibilities in the dlm
protocol on the network. Is this protocol stable? With git I see that
DLM_HEADER_MAJOR/MINOR macros changed very rarely in recent years but I
can't tell if this is a good indicator.
It's quite stable. Your situation sounds very unique. If you can choose
and build userspace code yourself, they you don't need to worry about
distributions I guess.
Dave
--
Linux-cluster mailing list
Linux-***@redhat.com
https://www.redhat.com/mailman/listinfo/linux-cluster
Jean-Marc Saffroy
2016-12-20 10:33:59 UTC
Permalink
Thanks Jan for these details!


Cheers,
JM
--
***@gmail.com
--
Linux-cluster mailing list
Linux-***@redhat.com
https://www.redhat.com/mailman/listinfo/linux-cluster
Continue reading on narkive:
Loading...